Merge "identity: Don't pass unset options when creating user"
This commit is contained in:
commit
2f790c319d
@ -249,26 +249,44 @@ class CreateUser(command.ShowOne):
|
||||
def take_action(self, parsed_args):
|
||||
identity_client = self.app.client_manager.sdk_connection.identity
|
||||
|
||||
kwargs = {}
|
||||
|
||||
domain_id = None
|
||||
if parsed_args.domain:
|
||||
domain_id = identity_client.find_domain(
|
||||
name_or_id=parsed_args.domain,
|
||||
parsed_args.domain,
|
||||
ignore_missing=False,
|
||||
).id
|
||||
kwargs['domain_id'] = domain_id
|
||||
|
||||
if parsed_args.project:
|
||||
project_domain_id = None
|
||||
if parsed_args.project_domain:
|
||||
project_domain_id = identity_client.find_domain(
|
||||
parsed_args.project_domain,
|
||||
ignore_missing=False,
|
||||
).id
|
||||
kwargs['default_project_id'] = identity_client.find_project(
|
||||
parsed_args.project,
|
||||
ignore_missing=False,
|
||||
domain_id=project_domain_id,
|
||||
).id
|
||||
|
||||
project_id = None
|
||||
if parsed_args.project:
|
||||
project_id = identity_client.find_project(
|
||||
name_or_id=parsed_args.project,
|
||||
ignore_missing=False,
|
||||
domain_id=domain_id,
|
||||
).id
|
||||
if parsed_args.description:
|
||||
kwargs['description'] = parsed_args.description
|
||||
|
||||
if parsed_args.email:
|
||||
kwargs['email'] = parsed_args.email
|
||||
|
||||
is_enabled = True
|
||||
if parsed_args.disable:
|
||||
is_enabled = False
|
||||
if parsed_args.password_prompt:
|
||||
parsed_args.password = utils.get_password(self.app.stdin)
|
||||
|
||||
password = None
|
||||
if parsed_args.password:
|
||||
password = parsed_args.password
|
||||
elif parsed_args.password_prompt:
|
||||
password = utils.get_password(self.app.stdin)
|
||||
|
||||
if not parsed_args.password:
|
||||
LOG.warning(
|
||||
@ -278,24 +296,26 @@ class CreateUser(command.ShowOne):
|
||||
)
|
||||
)
|
||||
options = _get_options_for_user(identity_client, parsed_args)
|
||||
if options:
|
||||
kwargs['options'] = options
|
||||
|
||||
try:
|
||||
user = identity_client.create_user(
|
||||
default_project_id=project_id,
|
||||
description=parsed_args.description,
|
||||
domain_id=domain_id,
|
||||
email=parsed_args.email,
|
||||
is_enabled=is_enabled,
|
||||
name=parsed_args.name,
|
||||
password=parsed_args.password,
|
||||
options=options,
|
||||
password=password,
|
||||
**kwargs,
|
||||
)
|
||||
except sdk_exc.ConflictException:
|
||||
if parsed_args.or_show:
|
||||
kwargs = {}
|
||||
if domain_id:
|
||||
kwargs['domain_id'] = domain_id
|
||||
|
||||
user = identity_client.find_user(
|
||||
name_or_id=parsed_args.name,
|
||||
domain_id=domain_id,
|
||||
parsed_args.name,
|
||||
ignore_missing=False,
|
||||
**kwargs,
|
||||
)
|
||||
LOG.info(_('Returning existing user %s'), user.name)
|
||||
else:
|
||||
|
@ -91,11 +91,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'options': {},
|
||||
'is_enabled': True,
|
||||
'password': None,
|
||||
}
|
||||
@ -127,11 +122,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'options': {},
|
||||
'is_enabled': True,
|
||||
'password': 'secret',
|
||||
}
|
||||
@ -165,11 +155,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'options': {},
|
||||
'is_enabled': True,
|
||||
'password': 'abc123',
|
||||
}
|
||||
@ -200,12 +185,8 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': 'barney@example.com',
|
||||
'is_enabled': True,
|
||||
'options': {},
|
||||
'password': None,
|
||||
}
|
||||
self.identity_sdk_client.create_user.assert_called_with(**kwargs)
|
||||
@ -236,11 +217,7 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': self.project.id,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {},
|
||||
'password': None,
|
||||
}
|
||||
self.identity_sdk_client.create_user.assert_called_with(**kwargs)
|
||||
@ -284,14 +261,13 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': self.project.id,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'options': {},
|
||||
'is_enabled': True,
|
||||
'password': None,
|
||||
}
|
||||
self.identity_sdk_client.create_user.assert_called_with(**kwargs)
|
||||
self.identity_sdk_client.create_user.assert_called_once_with(**kwargs)
|
||||
self.identity_sdk_client.find_domain.assert_called_once_with(
|
||||
self.project.domain_id, ignore_missing=False
|
||||
)
|
||||
|
||||
self.assertEqual(self.columns, columns)
|
||||
datalist = (
|
||||
@ -328,11 +304,7 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': self.domain.id,
|
||||
'email': None,
|
||||
'options': {},
|
||||
'is_enabled': True,
|
||||
'password': None,
|
||||
}
|
||||
@ -361,11 +333,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'options': {},
|
||||
'is_enabled': True,
|
||||
'password': None,
|
||||
}
|
||||
@ -394,11 +361,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'options': {},
|
||||
'is_enabled': False,
|
||||
'password': None,
|
||||
}
|
||||
@ -428,10 +390,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {'ignore_lockout_failure_attempts': True},
|
||||
'password': None,
|
||||
@ -462,10 +420,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {'ignore_lockout_failure_attempts': False},
|
||||
'password': None,
|
||||
@ -496,10 +450,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {'ignore_password_expiry': True},
|
||||
'password': None,
|
||||
@ -530,10 +480,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {'ignore_password_expiry': False},
|
||||
'password': None,
|
||||
@ -564,10 +510,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {'ignore_change_password_upon_first_use': True},
|
||||
'password': None,
|
||||
@ -598,10 +540,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {'ignore_change_password_upon_first_use': False},
|
||||
'password': None,
|
||||
@ -632,10 +570,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {'lock_password': True},
|
||||
'password': None,
|
||||
@ -666,10 +600,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {'lock_password': False},
|
||||
'password': None,
|
||||
@ -700,10 +630,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {'multi_factor_auth_enabled': True},
|
||||
'password': None,
|
||||
@ -734,10 +660,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {'multi_factor_auth_enabled': False},
|
||||
'password': None,
|
||||
@ -774,10 +696,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {
|
||||
'multi_factor_auth_rules': [["password", "totp"], ["password"]]
|
||||
@ -815,10 +733,6 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
|
||||
# Set expected values
|
||||
kwargs = {
|
||||
'name': self.user.name,
|
||||
'default_project_id': None,
|
||||
'description': None,
|
||||
'domain_id': None,
|
||||
'email': None,
|
||||
'is_enabled': True,
|
||||
'options': {
|
||||
'ignore_password_expiry': True,
|
||||
|
Loading…
x
Reference in New Issue
Block a user