~ubuntu-branches/ubuntu/quantal/cloud-init/quantal

« back to all changes in this revision

Viewing changes to cloudinit/config/cc_ssh_authkey_fingerprints.py

  • Committer: Package Import Robot
  • Author(s): Scott Moser
  • Date: 2012-09-30 14:29:04 UTC
  • Revision ID: package-import@ubuntu.com-20120930142904-nq8fkve62i0xytqz
* add CloudStack to DataSources listed by dpkg-reconfigure (LP: #1002155)
* New upstream snapshot.
  * 0440 permissions on /etc/sudoers.d files rather than 0644
  * get host ssh keys to the console (LP: #1055688)
  * MAAS DataSource adjust timestamp in oauth header to one based on the
    timestamp in the response of a 403.  This accounts for a bad local
    clock. (LP: #978127)
  * re-start the salt daemon rather than start to ensure config changes
    are taken.
  * allow for python unicode types in yaml that is loaded.
  * cleanup in how config modules get at users and groups.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
from prettytable import PrettyTable
23
23
 
 
24
# Ensure this is aliased to a name not 'distros'
 
25
# since the module attribute 'distros'
 
26
# is a list of distros that are supported, not a sub-module
 
27
from cloudinit import distros as ds
 
28
 
24
29
from cloudinit import ssh_util
25
30
from cloudinit import util
26
31
 
40
45
        hasher = hashlib.new(hash_meth)
41
46
        hasher.update(base64.b64decode(b64_text))
42
47
        return ":".join(_split_hash(hasher.hexdigest()))
43
 
    except TypeError:
 
48
    except (TypeError, ValueError):
44
49
        # Raised when b64 not really b64...
 
50
        # or when the hash type is not really
 
51
        # a known/supported hash type...
45
52
        return '?'
46
53
 
47
54
 
89
96
        log.debug(("Skipping module named %s, "
90
97
                   "logging of ssh fingerprints disabled"), name)
91
98
 
92
 
    user_name = util.get_cfg_option_str(cfg, "user", "ubuntu")
93
99
    hash_meth = util.get_cfg_option_str(cfg, "authkey_hash", "md5")
94
 
    extract = ssh_util.extract_authorized_keys
95
 
    (auth_key_fn, auth_key_entries) = extract(user_name, cloud.paths)
96
 
    _pprint_key_entries(user_name, auth_key_fn, auth_key_entries, hash_meth)
 
100
    extract_func = ssh_util.extract_authorized_keys
 
101
    (users, _groups) = ds.normalize_users_groups(cfg, cloud.distro)
 
102
    for (user_name, _cfg) in users.items():
 
103
        (auth_key_fn, auth_key_entries) = extract_func(user_name, cloud.paths)
 
104
        _pprint_key_entries(user_name, auth_key_fn,
 
105
                            auth_key_entries, hash_meth)