Skip to content

Commit 02a4f16

Browse files
author
Steve Martinelli
committed
Add domain and description to user for v3 identity
* splitting the changes seen in 27142 to a few new patches * this one will just update v3 user to have description and domain Change-Id: I9b4c365703da27e26ddc702f37cf5928e19cebdc
1 parent 016a0b3 commit 02a4f16

1 file changed

Lines changed: 41 additions & 4 deletions

File tree

‎openstackclient/identity/v3/user.py‎

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,16 @@ def get_parser(self, prog_name):
5353
metavar='<project>',
5454
help='New default project name or ID',
5555
)
56+
parser.add_argument(
57+
'--domain',
58+
metavar='<domain>',
59+
help='New default domain name or ID',
60+
)
61+
parser.add_argument(
62+
'--description',
63+
metavar='<description>',
64+
help='Description for new user',
65+
)
5666
enable_group = parser.add_mutually_exclusive_group()
5767
enable_group.add_argument(
5868
'--enable',
@@ -72,17 +82,27 @@ def get_parser(self, prog_name):
7282
def take_action(self, parsed_args):
7383
self.log.debug('take_action(%s)' % parsed_args)
7484
identity_client = self.app.client_manager.identity
85+
7586
if parsed_args.project:
7687
project_id = utils.find_resource(
7788
identity_client.projects, parsed_args.project).id
7889
else:
7990
project_id = None
91+
92+
if parsed_args.domain:
93+
domain_id = utils.find_resource(
94+
identity_client.domains, parsed_args.domain).id
95+
else:
96+
domain_id = None
97+
8098
user = identity_client.users.create(
8199
parsed_args.name,
100+
domain_id,
101+
project_id,
82102
parsed_args.password,
83103
parsed_args.email,
84-
project_id=project_id,
85-
enabled=parsed_args.enabled,
104+
parsed_args.description,
105+
parsed_args.enabled
86106
)
87107

88108
info = {}
@@ -138,7 +158,8 @@ def get_parser(self, prog_name):
138158
def take_action(self, parsed_args):
139159
self.log.debug('take_action(%s)' % parsed_args)
140160
if parsed_args.long:
141-
columns = ('ID', 'Name', 'Project Id', 'Email', 'Enabled')
161+
columns = ('ID', 'Name', 'Project Id', 'Domain Id',
162+
'Description', 'Email', 'Enabled')
142163
else:
143164
columns = ('ID', 'Name')
144165
data = self.app.client_manager.identity.users.list()
@@ -177,10 +198,20 @@ def get_parser(self, prog_name):
177198
metavar='<user-email>',
178199
help='New user email address',
179200
)
201+
parser.add_argument(
202+
'--domain',
203+
metavar='<domain>',
204+
help='New domain name or ID',
205+
)
180206
parser.add_argument(
181207
'--project',
182208
metavar='<project>',
183-
help='New default project name or ID',
209+
help='New project name or ID',
210+
)
211+
parser.add_argument(
212+
'--description',
213+
metavar='<description>',
214+
help='New description',
184215
)
185216
enable_group = parser.add_mutually_exclusive_group()
186217
enable_group.add_argument(
@@ -208,10 +239,16 @@ def take_action(self, parsed_args):
208239
kwargs['name'] = parsed_args.name
209240
if parsed_args.email:
210241
kwargs['email'] = parsed_args.email
242+
if parsed_args.description:
243+
kwargs['description'] = parsed_args.description
211244
if parsed_args.project:
212245
project_id = utils.find_resource(
213246
identity_client.projects, parsed_args.project).id
214247
kwargs['projectId'] = project_id
248+
if parsed_args.domain:
249+
domain_id = utils.find_resource(
250+
identity_client.domains, parsed_args.domain).id
251+
kwargs['domainId'] = domain_id
215252
if 'enabled' in parsed_args:
216253
kwargs['enabled'] = parsed_args.enabled
217254

0 commit comments

Comments
 (0)