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

« back to all changes in this revision

Viewing changes to cloudinit/config/cc_ssh_import_id.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:
18
18
#    You should have received a copy of the GNU General Public License
19
19
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
20
 
 
21
# Ensure this is aliased to a name not 'distros'
 
22
# since the module attribute 'distros'
 
23
# is a list of distros that are supported, not a sub-module
 
24
from cloudinit import distros as ds
 
25
 
21
26
from cloudinit import util
22
27
import pwd
23
28
 
39
44
        return
40
45
 
41
46
    # import for cloudinit created users
 
47
    (users, _groups) = ds.normalize_users_groups(cfg, cloud.distro)
42
48
    elist = []
43
 
    for user_cfg in cfg['users']:
44
 
        user = None
 
49
    for (user, user_cfg) in users.items():
45
50
        import_ids = []
46
 
 
47
 
        if isinstance(user_cfg, str) and user_cfg == "default":
48
 
            user = cloud.distro.get_default_user()
49
 
            if not user:
50
 
                continue
51
 
 
 
51
        if user_cfg['default']:
52
52
            import_ids = util.get_cfg_option_list(cfg, "ssh_import_id", [])
53
 
 
54
 
        elif isinstance(user_cfg, dict):
55
 
            user = None
56
 
            import_ids = []
57
 
 
 
53
        else:
58
54
            try:
59
 
                user = user_cfg['name']
60
55
                import_ids = user_cfg['ssh_import_id']
61
 
 
62
 
                if import_ids and isinstance(import_ids, str):
63
 
                    import_ids = str(import_ids).split(',')
64
 
 
65
56
            except:
66
 
                log.debug("user %s is not configured for ssh_import" % user)
 
57
                log.debug("User %s is not configured for ssh_import_id", user)
67
58
                continue
68
59
 
 
60
        try:
 
61
            import_ids = util.uniq_merge(import_ids)
 
62
            import_ids = [str(i) for i in import_ids]
 
63
        except:
 
64
            log.debug("User %s is not correctly configured for ssh_import_id",
 
65
                      user)
 
66
            continue
 
67
 
69
68
        if not len(import_ids):
70
69
            continue
71
70