python-openstackclient 8.3.0__py3-none-any.whl → 9.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openstackclient/common/module.py +1 -1
- openstackclient/common/quota.py +31 -17
- openstackclient/compute/v2/server.py +2 -2
- openstackclient/identity/common.py +31 -0
- openstackclient/identity/v2_0/service.py +3 -1
- openstackclient/identity/v3/federation_protocol.py +39 -40
- openstackclient/identity/v3/limit.py +85 -84
- openstackclient/identity/v3/project.py +181 -112
- openstackclient/identity/v3/registered_limit.py +82 -99
- openstackclient/identity/v3/tag.py +0 -11
- openstackclient/image/v2/image.py +2 -1
- openstackclient/tests/functional/identity/v3/test_limit.py +47 -0
- openstackclient/tests/functional/image/v2/test_metadef_objects.py +69 -0
- openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +46 -132
- openstackclient/tests/unit/common/test_quota.py +59 -0
- openstackclient/tests/unit/compute/v2/test_server.py +6 -8
- openstackclient/tests/unit/identity/v3/test_limit.py +197 -145
- openstackclient/tests/unit/identity/v3/test_project.py +831 -512
- openstackclient/tests/unit/identity/v3/test_protocol.py +97 -88
- openstackclient/tests/unit/identity/v3/test_registered_limit.py +355 -220
- openstackclient/tests/unit/image/v2/test_image.py +5 -5
- openstackclient/tests/unit/volume/v2/test_consistency_group.py +8 -2
- openstackclient/tests/unit/volume/v2/test_volume.py +7 -6
- openstackclient/tests/unit/volume/v3/test_volume.py +34 -12
- openstackclient/volume/v2/consistency_group.py +8 -8
- openstackclient/volume/v2/consistency_group_snapshot.py +2 -2
- openstackclient/volume/v2/qos_specs.py +2 -2
- openstackclient/volume/v2/volume.py +12 -5
- openstackclient/volume/v2/volume_backup.py +2 -2
- openstackclient/volume/v2/volume_snapshot.py +2 -2
- openstackclient/volume/v2/volume_transfer_request.py +2 -2
- openstackclient/volume/v2/volume_type.py +5 -5
- openstackclient/volume/v3/volume.py +14 -7
- openstackclient/volume/v3/volume_backup.py +2 -2
- openstackclient/volume/v3/volume_snapshot.py +2 -2
- openstackclient/volume/v3/volume_transfer_request.py +2 -2
- openstackclient/volume/v3/volume_type.py +5 -5
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/METADATA +1 -1
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/RECORD +45 -44
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/licenses/AUTHORS +5 -0
- python_openstackclient-9.0.0.dist-info/pbr.json +1 -0
- python_openstackclient-8.3.0.dist-info/pbr.json +0 -1
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/entry_points.txt +0 -0
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/licenses/LICENSE +0 -0
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-9.0.0.dist-info}/top_level.txt +0 -0
|
@@ -10,72 +10,79 @@
|
|
|
10
10
|
# License for the specific language governing permissions and limitations
|
|
11
11
|
# under the License.
|
|
12
12
|
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
from
|
|
13
|
+
from openstack import exceptions as sdk_exc
|
|
14
|
+
from openstack.identity.v3 import region as _region
|
|
15
|
+
from openstack.identity.v3 import registered_limit as _registered_limit
|
|
16
|
+
from openstack.identity.v3 import service as _service
|
|
17
|
+
from openstack.test import fakes as sdk_fakes
|
|
16
18
|
from osc_lib import exceptions
|
|
17
19
|
|
|
18
20
|
from openstackclient.identity.v3 import registered_limit
|
|
19
|
-
from openstackclient.tests.unit import fakes
|
|
20
21
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
21
22
|
|
|
22
23
|
|
|
23
|
-
class
|
|
24
|
+
class TestRegisteredLimitCreate(identity_fakes.TestIdentityv3):
|
|
24
25
|
def setUp(self):
|
|
25
26
|
super().setUp()
|
|
26
27
|
|
|
27
|
-
self.
|
|
28
|
-
|
|
29
|
-
self.services_mock = self.identity_client.services
|
|
30
|
-
self.services_mock.reset_mock()
|
|
31
|
-
|
|
32
|
-
self.regions_mock = self.identity_client.regions
|
|
33
|
-
self.regions_mock.reset_mock()
|
|
28
|
+
self.service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
29
|
+
self.region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
34
30
|
|
|
31
|
+
self.description = 'default limit of foobars'
|
|
32
|
+
self.default_limit = 10
|
|
33
|
+
self.resource_name = 'foobars'
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
super().setUp()
|
|
35
|
+
self.identity_sdk_client.find_service.return_value = self.service
|
|
36
|
+
self.identity_sdk_client.get_region.return_value = self.region
|
|
39
37
|
|
|
40
|
-
self.
|
|
41
|
-
|
|
38
|
+
self.registered_limit = sdk_fakes.generate_fake_resource(
|
|
39
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
40
|
+
description=None,
|
|
41
|
+
region_id=None,
|
|
42
|
+
service_id=self.service.id,
|
|
43
|
+
default_limit=self.default_limit,
|
|
44
|
+
resource_name=self.resource_name,
|
|
42
45
|
)
|
|
43
|
-
self.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
self.registered_limit_with_options = sdk_fakes.generate_fake_resource(
|
|
47
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
48
|
+
description=self.description,
|
|
49
|
+
region_id=self.region.id,
|
|
50
|
+
service_id=self.service.id,
|
|
51
|
+
default_limit=self.default_limit,
|
|
52
|
+
resource_name=self.resource_name,
|
|
47
53
|
)
|
|
48
|
-
self.regions_mock.get.return_value = self.region
|
|
49
54
|
|
|
50
55
|
self.cmd = registered_limit.CreateRegisteredLimit(self.app, None)
|
|
51
56
|
|
|
52
57
|
def test_registered_limit_create_without_options(self):
|
|
53
|
-
self.
|
|
54
|
-
|
|
58
|
+
self.identity_sdk_client.create_registered_limit.return_value = (
|
|
59
|
+
self.registered_limit
|
|
55
60
|
)
|
|
56
61
|
|
|
57
|
-
resource_name = identity_fakes.registered_limit_resource_name
|
|
58
|
-
default_limit = identity_fakes.registered_limit_default_limit
|
|
59
62
|
arglist = [
|
|
60
63
|
'--service',
|
|
61
|
-
|
|
64
|
+
self.service.id,
|
|
62
65
|
'--default-limit',
|
|
63
|
-
|
|
64
|
-
resource_name,
|
|
66
|
+
str(self.default_limit),
|
|
67
|
+
self.resource_name,
|
|
65
68
|
]
|
|
66
69
|
|
|
67
70
|
verifylist = [
|
|
68
|
-
('service',
|
|
69
|
-
('default_limit', default_limit),
|
|
70
|
-
('resource_name', resource_name),
|
|
71
|
+
('service', self.service.id),
|
|
72
|
+
('default_limit', self.default_limit),
|
|
73
|
+
('resource_name', self.resource_name),
|
|
71
74
|
]
|
|
72
75
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
73
76
|
|
|
74
77
|
columns, data = self.cmd.take_action(parsed_args)
|
|
75
78
|
|
|
76
|
-
kwargs = {
|
|
77
|
-
|
|
78
|
-
self.
|
|
79
|
+
kwargs = {
|
|
80
|
+
'service_id': self.service.id,
|
|
81
|
+
'default_limit': self.default_limit,
|
|
82
|
+
'resource_name': self.resource_name,
|
|
83
|
+
}
|
|
84
|
+
self.identity_sdk_client.create_registered_limit.assert_called_with(
|
|
85
|
+
**kwargs
|
|
79
86
|
)
|
|
80
87
|
|
|
81
88
|
collist = (
|
|
@@ -89,51 +96,52 @@ class TestRegisteredLimitCreate(TestRegisteredLimit):
|
|
|
89
96
|
|
|
90
97
|
self.assertEqual(collist, columns)
|
|
91
98
|
datalist = (
|
|
92
|
-
|
|
99
|
+
self.default_limit,
|
|
93
100
|
None,
|
|
94
|
-
|
|
101
|
+
self.registered_limit.id,
|
|
95
102
|
None,
|
|
96
|
-
|
|
97
|
-
|
|
103
|
+
self.resource_name,
|
|
104
|
+
self.service.id,
|
|
98
105
|
)
|
|
99
106
|
self.assertEqual(datalist, data)
|
|
100
107
|
|
|
101
108
|
def test_registered_limit_create_with_options(self):
|
|
102
|
-
self.
|
|
103
|
-
|
|
104
|
-
copy.deepcopy(identity_fakes.REGISTERED_LIMIT_OPTIONS),
|
|
105
|
-
loaded=True,
|
|
109
|
+
self.identity_sdk_client.create_registered_limit.return_value = (
|
|
110
|
+
self.registered_limit_with_options
|
|
106
111
|
)
|
|
107
112
|
|
|
108
|
-
resource_name = identity_fakes.registered_limit_resource_name
|
|
109
|
-
default_limit = identity_fakes.registered_limit_default_limit
|
|
110
|
-
description = identity_fakes.registered_limit_description
|
|
111
113
|
arglist = [
|
|
112
114
|
'--region',
|
|
113
|
-
|
|
115
|
+
self.region.id,
|
|
114
116
|
'--description',
|
|
115
|
-
description,
|
|
117
|
+
self.description,
|
|
116
118
|
'--service',
|
|
117
|
-
|
|
119
|
+
self.service.id,
|
|
118
120
|
'--default-limit',
|
|
119
|
-
|
|
120
|
-
resource_name,
|
|
121
|
+
str(self.default_limit),
|
|
122
|
+
self.resource_name,
|
|
121
123
|
]
|
|
122
124
|
|
|
123
125
|
verifylist = [
|
|
124
|
-
('region',
|
|
125
|
-
('description', description),
|
|
126
|
-
('service',
|
|
127
|
-
('default_limit', default_limit),
|
|
128
|
-
('resource_name', resource_name),
|
|
126
|
+
('region', self.region.id),
|
|
127
|
+
('description', self.description),
|
|
128
|
+
('service', self.service.id),
|
|
129
|
+
('default_limit', self.default_limit),
|
|
130
|
+
('resource_name', self.resource_name),
|
|
129
131
|
]
|
|
130
132
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
131
133
|
|
|
132
134
|
columns, data = self.cmd.take_action(parsed_args)
|
|
133
135
|
|
|
134
|
-
kwargs = {
|
|
135
|
-
|
|
136
|
-
self.
|
|
136
|
+
kwargs = {
|
|
137
|
+
'description': self.description,
|
|
138
|
+
'region_id': self.region.id,
|
|
139
|
+
'service_id': self.service.id,
|
|
140
|
+
'default_limit': self.default_limit,
|
|
141
|
+
'resource_name': self.resource_name,
|
|
142
|
+
}
|
|
143
|
+
self.identity_sdk_client.create_registered_limit.assert_called_with(
|
|
144
|
+
**kwargs
|
|
137
145
|
)
|
|
138
146
|
|
|
139
147
|
collist = (
|
|
@@ -147,41 +155,44 @@ class TestRegisteredLimitCreate(TestRegisteredLimit):
|
|
|
147
155
|
|
|
148
156
|
self.assertEqual(collist, columns)
|
|
149
157
|
datalist = (
|
|
150
|
-
|
|
151
|
-
description,
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
158
|
+
self.default_limit,
|
|
159
|
+
self.description,
|
|
160
|
+
self.registered_limit_with_options.id,
|
|
161
|
+
self.region.id,
|
|
162
|
+
self.resource_name,
|
|
163
|
+
self.service.id,
|
|
156
164
|
)
|
|
157
165
|
self.assertEqual(datalist, data)
|
|
158
166
|
|
|
159
167
|
|
|
160
|
-
class TestRegisteredLimitDelete(
|
|
168
|
+
class TestRegisteredLimitDelete(identity_fakes.TestIdentityv3):
|
|
161
169
|
def setUp(self):
|
|
162
170
|
super().setUp()
|
|
163
171
|
|
|
164
172
|
self.cmd = registered_limit.DeleteRegisteredLimit(self.app, None)
|
|
165
173
|
|
|
166
174
|
def test_registered_limit_delete(self):
|
|
167
|
-
self.
|
|
175
|
+
self.registered_limit = sdk_fakes.generate_fake_resource(
|
|
176
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
177
|
+
)
|
|
178
|
+
self.identity_sdk_client.delete_registered_limit.return_value = None
|
|
168
179
|
|
|
169
|
-
arglist = [
|
|
170
|
-
verifylist = [
|
|
171
|
-
('registered_limits', [identity_fakes.registered_limit_id])
|
|
172
|
-
]
|
|
180
|
+
arglist = [self.registered_limit.id]
|
|
181
|
+
verifylist = [('registered_limits', [self.registered_limit.id])]
|
|
173
182
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
174
183
|
|
|
175
184
|
result = self.cmd.take_action(parsed_args)
|
|
176
185
|
|
|
177
|
-
self.
|
|
178
|
-
|
|
186
|
+
self.identity_sdk_client.delete_registered_limit.assert_called_with(
|
|
187
|
+
self.registered_limit.id,
|
|
188
|
+
ignore_missing=False,
|
|
179
189
|
)
|
|
180
190
|
self.assertIsNone(result)
|
|
181
191
|
|
|
182
192
|
def test_registered_limit_delete_with_exception(self):
|
|
183
|
-
|
|
184
|
-
|
|
193
|
+
self.identity_sdk_client.delete_registered_limit.side_effect = (
|
|
194
|
+
sdk_exc.ResourceNotFound
|
|
195
|
+
)
|
|
185
196
|
|
|
186
197
|
arglist = ['fake-registered-limit-id']
|
|
187
198
|
verifylist = [('registered_limits', ['fake-registered-limit-id'])]
|
|
@@ -196,27 +207,52 @@ class TestRegisteredLimitDelete(TestRegisteredLimit):
|
|
|
196
207
|
)
|
|
197
208
|
|
|
198
209
|
|
|
199
|
-
class TestRegisteredLimitShow(
|
|
210
|
+
class TestRegisteredLimitShow(identity_fakes.TestIdentityv3):
|
|
200
211
|
def setUp(self):
|
|
201
212
|
super().setUp()
|
|
202
213
|
|
|
203
|
-
self.
|
|
204
|
-
|
|
214
|
+
self.service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
215
|
+
self.region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
216
|
+
|
|
217
|
+
self.description = 'default limit of foobars'
|
|
218
|
+
self.default_limit = 10
|
|
219
|
+
self.resource_name = 'foobars'
|
|
220
|
+
|
|
221
|
+
self.identity_sdk_client.find_service.return_value = self.service
|
|
222
|
+
self.identity_sdk_client.get_region.return_value = self.region
|
|
223
|
+
|
|
224
|
+
self.registered_limit = sdk_fakes.generate_fake_resource(
|
|
225
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
226
|
+
description=None,
|
|
227
|
+
region_id=None,
|
|
228
|
+
service_id=self.service.id,
|
|
229
|
+
default_limit=self.default_limit,
|
|
230
|
+
resource_name=self.resource_name,
|
|
231
|
+
)
|
|
232
|
+
self.registered_limit_with_options = sdk_fakes.generate_fake_resource(
|
|
233
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
234
|
+
description=self.description,
|
|
235
|
+
region_id=self.region.id,
|
|
236
|
+
service_id=self.service.id,
|
|
237
|
+
default_limit=self.default_limit,
|
|
238
|
+
resource_name=self.resource_name,
|
|
205
239
|
)
|
|
206
240
|
|
|
207
241
|
self.cmd = registered_limit.ShowRegisteredLimit(self.app, None)
|
|
208
242
|
|
|
209
243
|
def test_registered_limit_show(self):
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
244
|
+
self.identity_sdk_client.get_registered_limit.return_value = (
|
|
245
|
+
self.registered_limit
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
arglist = [self.registered_limit.id]
|
|
249
|
+
verifylist = [('registered_limit_id', self.registered_limit.id)]
|
|
214
250
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
215
251
|
|
|
216
252
|
columns, data = self.cmd.take_action(parsed_args)
|
|
217
253
|
|
|
218
|
-
self.
|
|
219
|
-
|
|
254
|
+
self.identity_sdk_client.get_registered_limit.assert_called_with(
|
|
255
|
+
self.registered_limit.id
|
|
220
256
|
)
|
|
221
257
|
|
|
222
258
|
collist = (
|
|
@@ -229,50 +265,107 @@ class TestRegisteredLimitShow(TestRegisteredLimit):
|
|
|
229
265
|
)
|
|
230
266
|
self.assertEqual(collist, columns)
|
|
231
267
|
datalist = (
|
|
232
|
-
|
|
268
|
+
self.default_limit,
|
|
233
269
|
None,
|
|
234
|
-
|
|
270
|
+
self.registered_limit.id,
|
|
235
271
|
None,
|
|
236
|
-
|
|
237
|
-
|
|
272
|
+
self.resource_name,
|
|
273
|
+
self.service.id,
|
|
274
|
+
)
|
|
275
|
+
self.assertEqual(datalist, data)
|
|
276
|
+
|
|
277
|
+
def test_registered_limit_show_with_options(self):
|
|
278
|
+
self.identity_sdk_client.get_registered_limit.return_value = (
|
|
279
|
+
self.registered_limit_with_options
|
|
280
|
+
)
|
|
281
|
+
|
|
282
|
+
arglist = [self.registered_limit_with_options.id]
|
|
283
|
+
verifylist = [
|
|
284
|
+
('registered_limit_id', self.registered_limit_with_options.id)
|
|
285
|
+
]
|
|
286
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
287
|
+
|
|
288
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
289
|
+
|
|
290
|
+
self.identity_sdk_client.get_registered_limit.assert_called_with(
|
|
291
|
+
self.registered_limit_with_options.id
|
|
292
|
+
)
|
|
293
|
+
|
|
294
|
+
collist = (
|
|
295
|
+
'default_limit',
|
|
296
|
+
'description',
|
|
297
|
+
'id',
|
|
298
|
+
'region_id',
|
|
299
|
+
'resource_name',
|
|
300
|
+
'service_id',
|
|
301
|
+
)
|
|
302
|
+
self.assertEqual(collist, columns)
|
|
303
|
+
datalist = (
|
|
304
|
+
self.default_limit,
|
|
305
|
+
self.description,
|
|
306
|
+
self.registered_limit_with_options.id,
|
|
307
|
+
self.region.id,
|
|
308
|
+
self.resource_name,
|
|
309
|
+
self.service.id,
|
|
238
310
|
)
|
|
239
311
|
self.assertEqual(datalist, data)
|
|
240
312
|
|
|
241
313
|
|
|
242
|
-
class TestRegisteredLimitSet(
|
|
314
|
+
class TestRegisteredLimitSet(identity_fakes.TestIdentityv3):
|
|
243
315
|
def setUp(self):
|
|
244
316
|
super().setUp()
|
|
317
|
+
|
|
318
|
+
self.service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
319
|
+
self.region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
320
|
+
|
|
321
|
+
self.default_limit = 10
|
|
322
|
+
self.resource_name = 'foobars'
|
|
323
|
+
|
|
324
|
+
self.identity_sdk_client.find_service.return_value = self.service
|
|
325
|
+
self.identity_sdk_client.get_region.return_value = self.region
|
|
326
|
+
|
|
327
|
+
self.registered_limit = sdk_fakes.generate_fake_resource(
|
|
328
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
329
|
+
description=None,
|
|
330
|
+
region_id=None,
|
|
331
|
+
service_id=self.service.id,
|
|
332
|
+
default_limit=self.default_limit,
|
|
333
|
+
resource_name=self.resource_name,
|
|
334
|
+
)
|
|
335
|
+
|
|
245
336
|
self.cmd = registered_limit.SetRegisteredLimit(self.app, None)
|
|
246
337
|
|
|
247
338
|
def test_registered_limit_set_description(self):
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
339
|
+
updated_description = 'default limit of foobars'
|
|
340
|
+
updated_registered_limit = sdk_fakes.generate_fake_resource(
|
|
341
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
342
|
+
id=self.registered_limit.id,
|
|
343
|
+
description=updated_description,
|
|
344
|
+
region_id=None,
|
|
345
|
+
service_id=self.service.id,
|
|
346
|
+
default_limit=self.default_limit,
|
|
347
|
+
resource_name=self.resource_name,
|
|
251
348
|
)
|
|
252
|
-
self.
|
|
253
|
-
|
|
349
|
+
self.identity_sdk_client.update_registered_limit.return_value = (
|
|
350
|
+
updated_registered_limit
|
|
254
351
|
)
|
|
255
352
|
|
|
256
353
|
arglist = [
|
|
257
354
|
'--description',
|
|
258
|
-
|
|
259
|
-
|
|
355
|
+
updated_description,
|
|
356
|
+
self.registered_limit.id,
|
|
260
357
|
]
|
|
261
358
|
verifylist = [
|
|
262
|
-
('description',
|
|
263
|
-
('registered_limit_id',
|
|
359
|
+
('description', updated_description),
|
|
360
|
+
('registered_limit_id', self.registered_limit.id),
|
|
264
361
|
]
|
|
265
362
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
266
363
|
|
|
267
364
|
columns, data = self.cmd.take_action(parsed_args)
|
|
268
365
|
|
|
269
|
-
self.
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
resource_name=None,
|
|
273
|
-
default_limit=None,
|
|
274
|
-
description=identity_fakes.registered_limit_description,
|
|
275
|
-
region=None,
|
|
366
|
+
self.identity_sdk_client.update_registered_limit.assert_called_with(
|
|
367
|
+
self.registered_limit.id,
|
|
368
|
+
description=updated_description,
|
|
276
369
|
)
|
|
277
370
|
|
|
278
371
|
collist = (
|
|
@@ -285,43 +378,46 @@ class TestRegisteredLimitSet(TestRegisteredLimit):
|
|
|
285
378
|
)
|
|
286
379
|
self.assertEqual(collist, columns)
|
|
287
380
|
datalist = (
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
381
|
+
self.default_limit,
|
|
382
|
+
updated_description,
|
|
383
|
+
self.registered_limit.id,
|
|
291
384
|
None,
|
|
292
|
-
|
|
293
|
-
|
|
385
|
+
self.resource_name,
|
|
386
|
+
self.service.id,
|
|
294
387
|
)
|
|
295
388
|
self.assertEqual(datalist, data)
|
|
296
389
|
|
|
297
390
|
def test_registered_limit_set_default_limit(self):
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
None,
|
|
391
|
+
updated_default_limit = 20
|
|
392
|
+
updated_registered_limit = sdk_fakes.generate_fake_resource(
|
|
393
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
394
|
+
id=self.registered_limit.id,
|
|
395
|
+
description=None,
|
|
396
|
+
region_id=None,
|
|
397
|
+
service_id=self.service.id,
|
|
398
|
+
default_limit=updated_default_limit,
|
|
399
|
+
resource_name=self.resource_name,
|
|
400
|
+
)
|
|
401
|
+
self.identity_sdk_client.update_registered_limit.return_value = (
|
|
402
|
+
updated_registered_limit
|
|
303
403
|
)
|
|
304
404
|
|
|
305
405
|
arglist = [
|
|
306
406
|
'--default-limit',
|
|
307
|
-
str(
|
|
308
|
-
|
|
407
|
+
str(updated_default_limit),
|
|
408
|
+
self.registered_limit.id,
|
|
309
409
|
]
|
|
310
410
|
verifylist = [
|
|
311
|
-
('default_limit',
|
|
312
|
-
('registered_limit_id',
|
|
411
|
+
('default_limit', updated_default_limit),
|
|
412
|
+
('registered_limit_id', self.registered_limit.id),
|
|
313
413
|
]
|
|
314
414
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
315
415
|
|
|
316
416
|
columns, data = self.cmd.take_action(parsed_args)
|
|
317
417
|
|
|
318
|
-
self.
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
resource_name=None,
|
|
322
|
-
default_limit=default_limit,
|
|
323
|
-
description=None,
|
|
324
|
-
region=None,
|
|
418
|
+
self.identity_sdk_client.update_registered_limit.assert_called_with(
|
|
419
|
+
self.registered_limit.id,
|
|
420
|
+
default_limit=updated_default_limit,
|
|
325
421
|
)
|
|
326
422
|
|
|
327
423
|
collist = (
|
|
@@ -334,43 +430,46 @@ class TestRegisteredLimitSet(TestRegisteredLimit):
|
|
|
334
430
|
)
|
|
335
431
|
self.assertEqual(collist, columns)
|
|
336
432
|
datalist = (
|
|
337
|
-
|
|
433
|
+
updated_default_limit,
|
|
338
434
|
None,
|
|
339
|
-
|
|
435
|
+
self.registered_limit.id,
|
|
340
436
|
None,
|
|
341
|
-
|
|
342
|
-
|
|
437
|
+
self.resource_name,
|
|
438
|
+
self.service.id,
|
|
343
439
|
)
|
|
344
440
|
self.assertEqual(datalist, data)
|
|
345
441
|
|
|
346
442
|
def test_registered_limit_set_resource_name(self):
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
None,
|
|
443
|
+
updated_resource_name = 'volumes'
|
|
444
|
+
updated_registered_limit = sdk_fakes.generate_fake_resource(
|
|
445
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
446
|
+
id=self.registered_limit.id,
|
|
447
|
+
description=None,
|
|
448
|
+
region_id=None,
|
|
449
|
+
service_id=self.service.id,
|
|
450
|
+
default_limit=self.default_limit,
|
|
451
|
+
resource_name=updated_resource_name,
|
|
452
|
+
)
|
|
453
|
+
self.identity_sdk_client.update_registered_limit.return_value = (
|
|
454
|
+
updated_registered_limit
|
|
352
455
|
)
|
|
353
456
|
|
|
354
457
|
arglist = [
|
|
355
458
|
'--resource-name',
|
|
356
|
-
|
|
357
|
-
|
|
459
|
+
updated_resource_name,
|
|
460
|
+
self.registered_limit.id,
|
|
358
461
|
]
|
|
359
462
|
verifylist = [
|
|
360
|
-
('resource_name',
|
|
361
|
-
('registered_limit_id',
|
|
463
|
+
('resource_name', updated_resource_name),
|
|
464
|
+
('registered_limit_id', self.registered_limit.id),
|
|
362
465
|
]
|
|
363
466
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
364
467
|
|
|
365
468
|
columns, data = self.cmd.take_action(parsed_args)
|
|
366
469
|
|
|
367
|
-
self.
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
resource_name=resource_name,
|
|
371
|
-
default_limit=None,
|
|
372
|
-
description=None,
|
|
373
|
-
region=None,
|
|
470
|
+
self.identity_sdk_client.update_registered_limit.assert_called_with(
|
|
471
|
+
self.registered_limit.id,
|
|
472
|
+
resource_name=updated_resource_name,
|
|
374
473
|
)
|
|
375
474
|
|
|
376
475
|
collist = (
|
|
@@ -383,40 +482,43 @@ class TestRegisteredLimitSet(TestRegisteredLimit):
|
|
|
383
482
|
)
|
|
384
483
|
self.assertEqual(collist, columns)
|
|
385
484
|
datalist = (
|
|
386
|
-
|
|
485
|
+
self.default_limit,
|
|
387
486
|
None,
|
|
388
|
-
|
|
487
|
+
self.registered_limit.id,
|
|
389
488
|
None,
|
|
390
|
-
|
|
391
|
-
|
|
489
|
+
updated_resource_name,
|
|
490
|
+
self.service.id,
|
|
392
491
|
)
|
|
393
492
|
self.assertEqual(datalist, data)
|
|
394
493
|
|
|
395
494
|
def test_registered_limit_set_service(self):
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
495
|
+
updated_service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
496
|
+
self.identity_sdk_client.find_service.return_value = updated_service
|
|
497
|
+
updated_registered_limit = sdk_fakes.generate_fake_resource(
|
|
498
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
499
|
+
id=self.registered_limit.id,
|
|
500
|
+
description=None,
|
|
501
|
+
region_id=None,
|
|
502
|
+
service_id=updated_service.id,
|
|
503
|
+
default_limit=self.default_limit,
|
|
504
|
+
resource_name=self.resource_name,
|
|
505
|
+
)
|
|
506
|
+
self.identity_sdk_client.update_registered_limit.return_value = (
|
|
507
|
+
updated_registered_limit
|
|
401
508
|
)
|
|
402
|
-
self.services_mock.get.return_value = service
|
|
403
509
|
|
|
404
|
-
arglist = ['--service',
|
|
510
|
+
arglist = ['--service', updated_service.id, self.registered_limit.id]
|
|
405
511
|
verifylist = [
|
|
406
|
-
('service',
|
|
407
|
-
('registered_limit_id',
|
|
512
|
+
('service', updated_service.id),
|
|
513
|
+
('registered_limit_id', self.registered_limit.id),
|
|
408
514
|
]
|
|
409
515
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
410
516
|
|
|
411
517
|
columns, data = self.cmd.take_action(parsed_args)
|
|
412
518
|
|
|
413
|
-
self.
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
resource_name=None,
|
|
417
|
-
default_limit=None,
|
|
418
|
-
description=None,
|
|
419
|
-
region=None,
|
|
519
|
+
self.identity_sdk_client.update_registered_limit.assert_called_with(
|
|
520
|
+
self.registered_limit.id,
|
|
521
|
+
service_id=updated_service.id,
|
|
420
522
|
)
|
|
421
523
|
|
|
422
524
|
collist = (
|
|
@@ -429,42 +531,43 @@ class TestRegisteredLimitSet(TestRegisteredLimit):
|
|
|
429
531
|
)
|
|
430
532
|
self.assertEqual(collist, columns)
|
|
431
533
|
datalist = (
|
|
432
|
-
|
|
534
|
+
self.default_limit,
|
|
433
535
|
None,
|
|
434
|
-
|
|
536
|
+
self.registered_limit.id,
|
|
435
537
|
None,
|
|
436
|
-
|
|
437
|
-
|
|
538
|
+
self.resource_name,
|
|
539
|
+
updated_service.id,
|
|
438
540
|
)
|
|
439
541
|
self.assertEqual(datalist, data)
|
|
440
542
|
|
|
441
543
|
def test_registered_limit_set_region(self):
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
544
|
+
updated_region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
545
|
+
self.identity_sdk_client.get_region.return_value = updated_region
|
|
546
|
+
updated_registered_limit = sdk_fakes.generate_fake_resource(
|
|
547
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
548
|
+
id=self.registered_limit.id,
|
|
549
|
+
description=None,
|
|
550
|
+
region_id=updated_region.id,
|
|
551
|
+
service_id=self.service.id,
|
|
552
|
+
default_limit=self.default_limit,
|
|
553
|
+
resource_name=self.resource_name,
|
|
554
|
+
)
|
|
555
|
+
self.identity_sdk_client.update_registered_limit.return_value = (
|
|
556
|
+
updated_registered_limit
|
|
449
557
|
)
|
|
450
|
-
self.regions_mock.get.return_value = region
|
|
451
558
|
|
|
452
|
-
arglist = ['--region',
|
|
559
|
+
arglist = ['--region', updated_region.id, self.registered_limit.id]
|
|
453
560
|
verifylist = [
|
|
454
|
-
('region',
|
|
455
|
-
('registered_limit_id',
|
|
561
|
+
('region', updated_region.id),
|
|
562
|
+
('registered_limit_id', self.registered_limit.id),
|
|
456
563
|
]
|
|
457
564
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
458
565
|
|
|
459
566
|
columns, data = self.cmd.take_action(parsed_args)
|
|
460
567
|
|
|
461
|
-
self.
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
resource_name=None,
|
|
465
|
-
default_limit=None,
|
|
466
|
-
description=None,
|
|
467
|
-
region=region,
|
|
568
|
+
self.identity_sdk_client.update_registered_limit.assert_called_with(
|
|
569
|
+
self.registered_limit.id,
|
|
570
|
+
region_id=updated_region.id,
|
|
468
571
|
)
|
|
469
572
|
|
|
470
573
|
collist = (
|
|
@@ -477,54 +580,86 @@ class TestRegisteredLimitSet(TestRegisteredLimit):
|
|
|
477
580
|
)
|
|
478
581
|
self.assertEqual(collist, columns)
|
|
479
582
|
datalist = (
|
|
480
|
-
|
|
583
|
+
self.default_limit,
|
|
481
584
|
None,
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
585
|
+
self.registered_limit.id,
|
|
586
|
+
updated_region.id,
|
|
587
|
+
self.resource_name,
|
|
588
|
+
self.service.id,
|
|
486
589
|
)
|
|
487
590
|
self.assertEqual(datalist, data)
|
|
488
591
|
|
|
489
592
|
|
|
490
|
-
class TestRegisteredLimitList(
|
|
593
|
+
class TestRegisteredLimitList(identity_fakes.TestIdentityv3):
|
|
491
594
|
def setUp(self):
|
|
492
595
|
super().setUp()
|
|
493
596
|
|
|
494
|
-
self.
|
|
495
|
-
|
|
496
|
-
)
|
|
597
|
+
self.service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
598
|
+
self.region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
497
599
|
|
|
498
|
-
self.
|
|
600
|
+
self.description = 'default limit of foobars'
|
|
601
|
+
self.default_limit = 10
|
|
602
|
+
self.resource_name = 'foobars'
|
|
499
603
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
604
|
+
self.identity_sdk_client.find_service.return_value = self.service
|
|
605
|
+
self.identity_sdk_client.get_region.return_value = self.region
|
|
606
|
+
|
|
607
|
+
self.registered_limit = sdk_fakes.generate_fake_resource(
|
|
608
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
609
|
+
description=None,
|
|
610
|
+
region_id=None,
|
|
611
|
+
service_id=self.service.id,
|
|
612
|
+
default_limit=self.default_limit,
|
|
613
|
+
resource_name=self.resource_name,
|
|
614
|
+
)
|
|
615
|
+
self.registered_limit_with_options = sdk_fakes.generate_fake_resource(
|
|
616
|
+
resource_type=_registered_limit.RegisteredLimit,
|
|
617
|
+
description=self.description,
|
|
618
|
+
region_id=self.region.id,
|
|
619
|
+
service_id=self.service.id,
|
|
620
|
+
default_limit=self.default_limit,
|
|
621
|
+
resource_name=self.resource_name,
|
|
622
|
+
)
|
|
623
|
+
self.identity_sdk_client.registered_limits.return_value = [
|
|
624
|
+
self.registered_limit,
|
|
625
|
+
self.registered_limit_with_options,
|
|
504
626
|
]
|
|
627
|
+
|
|
628
|
+
self.cmd = registered_limit.ListRegisteredLimit(self.app, None)
|
|
629
|
+
|
|
630
|
+
def test_registered_limit_list(self):
|
|
631
|
+
arglist = []
|
|
632
|
+
verifylist = []
|
|
505
633
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
506
634
|
|
|
507
635
|
columns, data = self.cmd.take_action(parsed_args)
|
|
508
636
|
|
|
509
|
-
self.
|
|
510
|
-
identity_fakes.registered_limit_id
|
|
511
|
-
)
|
|
512
|
-
|
|
637
|
+
self.identity_sdk_client.registered_limits.assert_called_with()
|
|
513
638
|
collist = (
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
639
|
+
"ID",
|
|
640
|
+
"Service ID",
|
|
641
|
+
"Resource Name",
|
|
642
|
+
"Default Limit",
|
|
643
|
+
"Description",
|
|
644
|
+
"Region ID",
|
|
520
645
|
)
|
|
521
646
|
self.assertEqual(collist, columns)
|
|
522
647
|
datalist = (
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
648
|
+
(
|
|
649
|
+
self.registered_limit.id,
|
|
650
|
+
self.service.id,
|
|
651
|
+
self.resource_name,
|
|
652
|
+
self.default_limit,
|
|
653
|
+
None,
|
|
654
|
+
None,
|
|
655
|
+
),
|
|
656
|
+
(
|
|
657
|
+
self.registered_limit_with_options.id,
|
|
658
|
+
self.service.id,
|
|
659
|
+
self.resource_name,
|
|
660
|
+
self.default_limit,
|
|
661
|
+
self.description,
|
|
662
|
+
self.region.id,
|
|
663
|
+
),
|
|
664
|
+
)
|
|
665
|
+
self.assertEqual(datalist, tuple(data))
|