cloud-config: schema drop deprecated dict user.groups value type
Align with latest cloud-init schema avoid using depracated value types for users. groups definitions in cloud-config. Also fix get_users_and_groups to return a list instead of dict as all call sites expected it to return a list.
This commit is contained in:
parent
df1a5adf0b
commit
62ad68bd76
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
from typing import List
|
||||||
|
|
||||||
log = logging.getLogger('subiquity.common.resources')
|
log = logging.getLogger('subiquity.common.resources')
|
||||||
|
|
||||||
|
@ -26,7 +27,7 @@ def resource_path(relative_path):
|
||||||
return os.path.join(os.environ.get("SUBIQUITY_ROOT", "."), relative_path)
|
return os.path.join(os.environ.get("SUBIQUITY_ROOT", "."), relative_path)
|
||||||
|
|
||||||
|
|
||||||
def get_users_and_groups(chroot_prefix=[]):
|
def get_users_and_groups(chroot_prefix=[]) -> List:
|
||||||
# prevent import when calling just resource_path
|
# prevent import when calling just resource_path
|
||||||
from subiquitycore.utils import run_command
|
from subiquitycore.utils import run_command
|
||||||
|
|
||||||
|
@ -43,5 +44,4 @@ def get_users_and_groups(chroot_prefix=[]):
|
||||||
for line in cp.stdout.splitlines():
|
for line in cp.stdout.splitlines():
|
||||||
target_groups.add(line.split(':')[0])
|
target_groups.add(line.split(':')[0])
|
||||||
|
|
||||||
groups = target_groups.intersection(groups)
|
return list(target_groups.intersection(groups))
|
||||||
return groups
|
|
||||||
|
|
|
@ -262,7 +262,7 @@ class SubiquityModel:
|
||||||
'gecos': user.realname,
|
'gecos': user.realname,
|
||||||
'passwd': user.password,
|
'passwd': user.password,
|
||||||
'shell': '/bin/bash',
|
'shell': '/bin/bash',
|
||||||
'groups': groups,
|
'groups': ','.join(sorted(groups)),
|
||||||
'lock_passwd': False,
|
'lock_passwd': False,
|
||||||
}
|
}
|
||||||
if self.ssh.authorized_keys:
|
if self.ssh.authorized_keys:
|
||||||
|
|
|
@ -196,6 +196,10 @@ class TestSubiquityModel(unittest.TestCase):
|
||||||
cloud_init_config = model._cloud_init_config()
|
cloud_init_config = model._cloud_init_config()
|
||||||
self.assertEqual(len(cloud_init_config['users']), 2)
|
self.assertEqual(len(cloud_init_config['users']), 2)
|
||||||
self.assertEqual(cloud_init_config['users'][0]['name'], 'mainuser')
|
self.assertEqual(cloud_init_config['users'][0]['name'], 'mainuser')
|
||||||
|
self.assertEqual(
|
||||||
|
cloud_init_config['users'][0]['groups'],
|
||||||
|
'adm,cdrom,dip,lxd,plugdev,sudo'
|
||||||
|
)
|
||||||
self.assertEqual(cloud_init_config['users'][1]['name'], 'user2')
|
self.assertEqual(cloud_init_config['users'][1]['name'], 'user2')
|
||||||
|
|
||||||
with self.subTest('Secondary user only'):
|
with self.subTest('Secondary user only'):
|
||||||
|
|
Loading…
Reference in New Issue