Skip to content

Commit c385180

Browse files
author
Dean Troyer
committed
Remove tenant round 2 - Identity API
Rename everything in the Identity v2 code including the file and classes. * role, tenant, user Change-Id: I0b99c60a24f5875120136d2f216aa3b6bce1c641
1 parent 0aa3c20 commit c385180

4 files changed

Lines changed: 205 additions & 116 deletions

File tree

Lines changed: 73 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,10 @@
1313
# under the License.
1414
#
1515

16-
"""Tenant action implementations"""
16+
"""Identity v2 Project action implementations"""
1717

1818
import logging
1919
import six
20-
import sys
2120

2221
from cliff import command
2322
from cliff import lister
@@ -26,82 +25,90 @@
2625
from openstackclient.common import utils
2726

2827

29-
class CreateTenant(show.ShowOne):
30-
"""Create tenant command"""
28+
class CreateProject(show.ShowOne):
29+
"""Create new project"""
3130

32-
log = logging.getLogger(__name__ + '.CreateTenant')
31+
log = logging.getLogger(__name__ + '.CreateProject')
3332

3433
def get_parser(self, prog_name):
35-
parser = super(CreateTenant, self).get_parser(prog_name)
34+
parser = super(CreateProject, self).get_parser(prog_name)
3635
parser.add_argument(
37-
'tenant_name',
38-
metavar='<tenant-name>',
39-
help='New tenant name')
36+
'project_name',
37+
metavar='<project-name>',
38+
help='New project name',
39+
)
4040
parser.add_argument(
4141
'--description',
42-
metavar='<tenant-description>',
43-
help='New tenant description')
42+
metavar='<project-description>',
43+
help='New project description',
44+
)
4445
enable_group = parser.add_mutually_exclusive_group()
4546
enable_group.add_argument(
4647
'--enable',
4748
dest='enabled',
4849
action='store_true',
4950
default=True,
50-
help='Enable tenant')
51+
help='Enable project',
52+
)
5153
enable_group.add_argument(
5254
'--disable',
5355
dest='enabled',
5456
action='store_false',
55-
help='Disable tenant')
57+
help='Disable project',
58+
)
5659
return parser
5760

5861
def take_action(self, parsed_args):
5962
self.log.debug('take_action(%s)' % parsed_args)
6063
identity_client = self.app.client_manager.identity
61-
tenant = identity_client.tenants.create(
62-
parsed_args.tenant_name,
64+
project = identity_client.tenants.create(
65+
parsed_args.project_name,
6366
description=parsed_args.description,
6467
enabled=parsed_args.enabled)
6568

6669
info = {}
67-
info.update(tenant._info)
70+
info.update(project._info)
6871
return zip(*sorted(six.iteritems(info)))
6972

7073

71-
class DeleteTenant(command.Command):
72-
"""Delete tenant command"""
74+
class DeleteProject(command.Command):
75+
"""Delete project"""
7376

74-
log = logging.getLogger(__name__ + '.DeleteTenant')
77+
log = logging.getLogger(__name__ + '.DeleteProject')
7578

7679
def get_parser(self, prog_name):
77-
parser = super(DeleteTenant, self).get_parser(prog_name)
80+
parser = super(DeleteProject, self).get_parser(prog_name)
7881
parser.add_argument(
79-
'tenant',
80-
metavar='<tenant>',
81-
help='Name or ID of tenant to delete')
82+
'project',
83+
metavar='<project>',
84+
help='Project to delete (name or ID)',
85+
)
8286
return parser
8387

8488
def take_action(self, parsed_args):
8589
self.log.debug('take_action(%s)' % parsed_args)
8690
identity_client = self.app.client_manager.identity
87-
tenant = utils.find_resource(identity_client.tenants,
88-
parsed_args.tenant)
89-
identity_client.tenants.delete(tenant.id)
91+
project = utils.find_resource(
92+
identity_client.tenants,
93+
parsed_args.project,
94+
)
95+
identity_client.tenants.delete(project.id)
9096
return
9197

9298

93-
class ListTenant(lister.Lister):
94-
"""List tenant command"""
99+
class ListProject(lister.Lister):
100+
"""List projects"""
95101

96-
log = logging.getLogger(__name__ + '.ListTenant')
102+
log = logging.getLogger(__name__ + '.ListProject')
97103

98104
def get_parser(self, prog_name):
99-
parser = super(ListTenant, self).get_parser(prog_name)
105+
parser = super(ListProject, self).get_parser(prog_name)
100106
parser.add_argument(
101107
'--long',
102108
action='store_true',
103109
default=False,
104-
help='Additional fields are listed in output')
110+
help='List additional fields in output',
111+
)
105112
return parser
106113

107114
def take_action(self, parsed_args):
@@ -118,44 +125,51 @@ def take_action(self, parsed_args):
118125
) for s in data))
119126

120127

121-
class SetTenant(command.Command):
122-
"""Set tenant command"""
128+
class SetProject(command.Command):
129+
"""Set project properties"""
123130

124-
log = logging.getLogger(__name__ + '.SetTenant')
131+
log = logging.getLogger(__name__ + '.SetProject')
125132

126133
def get_parser(self, prog_name):
127-
parser = super(SetTenant, self).get_parser(prog_name)
134+
parser = super(SetProject, self).get_parser(prog_name)
128135
parser.add_argument(
129-
'tenant',
130-
metavar='<tenant>',
131-
help='Name or ID of tenant to change')
136+
'project',
137+
metavar='<project>',
138+
help='Project to change (name or ID)',
139+
)
132140
parser.add_argument(
133141
'--name',
134-
metavar='<new-tenant-name>',
135-
help='New tenant name')
142+
metavar='<new-project-name>',
143+
help='New project name',
144+
)
136145
parser.add_argument(
137146
'--description',
138-
metavar='<tenant-description>',
139-
help='New tenant description')
147+
metavar='<project-description>',
148+
help='New project description',
149+
)
140150
enable_group = parser.add_mutually_exclusive_group()
141151
enable_group.add_argument(
142152
'--enable',
143153
dest='enabled',
144154
action='store_true',
145155
default=True,
146-
help='Enable tenant (default)')
156+
help='Enable project (default)',
157+
)
147158
enable_group.add_argument(
148159
'--disable',
149160
dest='enabled',
150161
action='store_false',
151-
help='Disable tenant')
162+
help='Disable project',
163+
)
152164
return parser
153165

154166
def take_action(self, parsed_args):
155167
self.log.debug('take_action(%s)' % parsed_args)
156168
identity_client = self.app.client_manager.identity
157-
tenant = utils.find_resource(identity_client.tenants,
158-
parsed_args.tenant)
169+
project = utils.find_resource(
170+
identity_client.tenants,
171+
parsed_args.project,
172+
)
159173
kwargs = {}
160174
if parsed_args.name:
161175
kwargs['name'] = parsed_args.name
@@ -164,32 +178,31 @@ def take_action(self, parsed_args):
164178
if 'enabled' in parsed_args:
165179
kwargs['enabled'] = parsed_args.enabled
166180

167-
if kwargs == {}:
168-
sys.stdout.write("Tenant not updated, no arguments present")
169-
return 0
170-
tenant.update(**kwargs)
181+
project.update(**kwargs)
171182
return
172183

173184

174-
class ShowTenant(show.ShowOne):
175-
"""Show tenant command"""
185+
class ShowProject(show.ShowOne):
186+
"""Show project details"""
176187

177-
log = logging.getLogger(__name__ + '.ShowTenant')
188+
log = logging.getLogger(__name__ + '.ShowProject')
178189

179190
def get_parser(self, prog_name):
180-
parser = super(ShowTenant, self).get_parser(prog_name)
191+
parser = super(ShowProject, self).get_parser(prog_name)
181192
parser.add_argument(
182-
'tenant',
183-
metavar='<tenant>',
184-
help='Name or ID of tenant to display')
193+
'project',
194+
metavar='<project>',
195+
help='Project to display (name or ID)')
185196
return parser
186197

187198
def take_action(self, parsed_args):
188199
self.log.debug('take_action(%s)' % parsed_args)
189200
identity_client = self.app.client_manager.identity
190-
tenant = utils.find_resource(identity_client.tenants,
191-
parsed_args.tenant)
201+
project = utils.find_resource(
202+
identity_client.tenants,
203+
parsed_args.project,
204+
)
192205

193206
info = {}
194-
info.update(tenant._info)
207+
info.update(project._info)
195208
return zip(*sorted(six.iteritems(info)))

‎openstackclient/identity/v2_0/role.py‎

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# under the License.
1414
#
1515

16-
"""Role action implementations"""
16+
"""Identity v2 Role action implementations"""
1717

1818
import logging
1919
import six
@@ -26,7 +26,7 @@
2626

2727

2828
class AddRole(show.ShowOne):
29-
"""Add role to tenant:user"""
29+
"""Add role to project:user"""
3030

3131
log = logging.getLogger(__name__ + '.AddRole')
3232

@@ -37,10 +37,11 @@ def get_parser(self, prog_name):
3737
metavar='<role>',
3838
help='Role name or ID to add to user')
3939
parser.add_argument(
40-
'--tenant',
41-
metavar='<tenant>',
40+
'--project',
41+
metavar='<project>',
4242
required=True,
43-
help='Name or ID of tenant to include')
43+
help='Include project (name or ID)',
44+
)
4445
parser.add_argument(
4546
'--user',
4647
metavar='<user>',
@@ -52,13 +53,15 @@ def take_action(self, parsed_args):
5253
self.log.debug('take_action(%s)' % parsed_args)
5354
identity_client = self.app.client_manager.identity
5455
role = utils.find_resource(identity_client.roles, parsed_args.role)
55-
tenant = utils.find_resource(identity_client.tenants,
56-
parsed_args.tenant)
56+
project = utils.find_resource(
57+
identity_client.tenants,
58+
parsed_args.project,
59+
)
5760
user = utils.find_resource(identity_client.users, parsed_args.user)
5861
role = identity_client.roles.add_user_role(
5962
user,
6063
role,
61-
tenant)
64+
project)
6265

6366
info = {}
6467
info.update(role._info)
@@ -138,34 +141,43 @@ def get_parser(self, prog_name):
138141
nargs='?',
139142
help='Name or ID of user to include')
140143
parser.add_argument(
141-
'--tenant',
142-
metavar='<tenant>',
143-
help='Name or ID of tenant to include')
144+
'--project',
145+
metavar='<project>',
146+
help='Include project (name or ID)',
147+
)
144148
return parser
145149

146150
def take_action(self, parsed_args):
147151
self.log.debug('take_action(%s)' % parsed_args)
148-
columns = ('ID', 'Name', 'Tenant ID', 'User ID')
149152
identity_client = self.app.client_manager.identity
150153

151154
# user-only roles are not supported in KSL so we are
152-
# required to have a user and tenant; default to the
155+
# required to have a user and project; default to the
153156
# values used for authentication if not specified
154-
if not parsed_args.tenant:
155-
parsed_args.tenant = identity_client.auth_tenant_id
157+
if not parsed_args.project:
158+
parsed_args.project = identity_client.auth_tenant_id
156159
if not parsed_args.user:
157160
parsed_args.user = identity_client.auth_user_id
158161

159-
tenant = utils.find_resource(identity_client.tenants,
160-
parsed_args.tenant)
162+
project = utils.find_resource(
163+
identity_client.tenants,
164+
parsed_args.project,
165+
)
161166
user = utils.find_resource(identity_client.users, parsed_args.user)
162167

163-
data = identity_client.roles.roles_for_user(user.id, tenant.id)
168+
data = identity_client.roles.roles_for_user(user.id, project.id)
169+
170+
columns = (
171+
'ID',
172+
'Name',
173+
'Project',
174+
'User',
175+
)
164176

165177
# Add the names to the output even though they will be constant
166178
for role in data:
167-
role.user_id = user.name
168-
role.tenant_id = tenant.name
179+
role.user = user.name
180+
role.project = project.name
169181

170182
return (columns,
171183
(utils.get_item_properties(
@@ -175,7 +187,7 @@ def take_action(self, parsed_args):
175187

176188

177189
class RemoveRole(command.Command):
178-
"""Remove role from tenant:user"""
190+
"""Remove role from project:user"""
179191

180192
log = logging.getLogger(__name__ + '.RemoveRole')
181193

@@ -186,10 +198,11 @@ def get_parser(self, prog_name):
186198
metavar='<role>',
187199
help='Role name or ID to remove from user')
188200
parser.add_argument(
189-
'--tenant',
190-
metavar='<tenant>',
201+
'--project',
202+
metavar='<project>',
191203
required=True,
192-
help='Name or ID of tenant')
204+
help='Project to include (name or ID)',
205+
)
193206
parser.add_argument(
194207
'--user',
195208
metavar='<user>',
@@ -201,13 +214,15 @@ def take_action(self, parsed_args):
201214
self.log.debug('take_action(%s)' % parsed_args)
202215
identity_client = self.app.client_manager.identity
203216
role = utils.find_resource(identity_client.roles, parsed_args.role)
204-
tenant = utils.find_resource(identity_client.tenants,
205-
parsed_args.tenant)
217+
project = utils.find_resource(
218+
identity_client.tenants,
219+
parsed_args.project,
220+
)
206221
user = utils.find_resource(identity_client.users, parsed_args.user)
207222
identity_client.roles.remove_user_role(
208223
user.id,
209224
role.id,
210-
tenant.id)
225+
project.id)
211226

212227

213228
class ShowRole(show.ShowOne):

0 commit comments

Comments
 (0)