summaryrefslogtreecommitdiff
path: root/cloudinit/config/cc_users_groups.py
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit/config/cc_users_groups.py')
-rw-r--r--cloudinit/config/cc_users_groups.py24
1 files changed, 16 insertions, 8 deletions
diff --git a/cloudinit/config/cc_users_groups.py b/cloudinit/config/cc_users_groups.py
index 1e241623..418f3330 100644
--- a/cloudinit/config/cc_users_groups.py
+++ b/cloudinit/config/cc_users_groups.py
@@ -38,19 +38,17 @@ def handle(name, cfg, cloud, log, _args):
if 'users' in cfg:
user_zero = None
- for name, user_config in cfg['users'].iteritems():
- if not user_zero:
- user_zero = name
+ for user_config in cfg['users']:
# Handle the default user creation
- if name == "default" and user_config:
+ if 'default' in user_config:
log.info("Creating default user")
# Create the default user if so defined
try:
cloud.distro.add_default_user()
- if user_zero == name:
+ if not user_zero:
user_zero = cloud.distro.get_default_user()
except NotImplementedError:
@@ -60,11 +58,21 @@ def handle(name, cfg, cloud, log, _args):
log.warn("Distro has not implemented default user "
"creation. No default user will be created")
- else:
+
+ elif isinstance(user_config, dict) and 'name' in user_config:
+
+ name = user_config['name']
+ if not user_zero:
+ user_zero = name
+
# Make options friendly for distro.create_user
new_opts = {}
if isinstance(user_config, dict):
for opt in user_config:
- new_opts[opt.replace('-', '')] = user_config[opt]
+ new_opts[opt.replace('-', '_')] = user_config[opt]
+
+ cloud.distro.create_user(**new_opts)
- cloud.distro.create_user(name, **new_opts)
+ else:
+ # create user with no configuration
+ cloud.distro.create_user(user_config)