python-openstackclient 7.2.0__py3-none-any.whl → 7.3.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/clientmanager.py +6 -1
- openstackclient/common/limits.py +1 -1
- openstackclient/common/quota.py +7 -2
- openstackclient/compute/v2/server.py +38 -22
- openstackclient/compute/v2/usage.py +2 -2
- openstackclient/identity/common.py +22 -34
- openstackclient/identity/v3/credential.py +45 -28
- openstackclient/identity/v3/limit.py +15 -0
- openstackclient/identity/v3/region.py +23 -22
- openstackclient/identity/v3/registered_limit.py +18 -0
- openstackclient/identity/v3/role.py +287 -117
- openstackclient/identity/v3/role_assignment.py +1 -1
- openstackclient/identity/v3/service_provider.py +95 -45
- openstackclient/identity/v3/trust.py +114 -75
- openstackclient/image/v2/image.py +3 -0
- openstackclient/network/v2/network.py +33 -0
- openstackclient/network/v2/network_flavor_profile.py +1 -17
- openstackclient/network/v2/port.py +73 -19
- openstackclient/tests/functional/compute/v2/test_server.py +87 -1
- openstackclient/tests/functional/identity/v3/common.py +1 -1
- openstackclient/tests/functional/identity/v3/test_application_credential.py +2 -1
- openstackclient/tests/functional/identity/v3/test_role.py +24 -0
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +8 -0
- openstackclient/tests/functional/identity/v3/test_service_provider.py +1 -5
- openstackclient/tests/functional/network/v2/test_port.py +28 -1
- openstackclient/tests/unit/compute/v2/fakes.py +0 -304
- openstackclient/tests/unit/compute/v2/test_aggregate.py +40 -31
- openstackclient/tests/unit/compute/v2/test_console.py +7 -3
- openstackclient/tests/unit/compute/v2/test_hypervisor.py +60 -53
- openstackclient/tests/unit/compute/v2/test_keypair.py +57 -69
- openstackclient/tests/unit/compute/v2/test_server.py +63 -5
- openstackclient/tests/unit/compute/v2/test_server_group.py +99 -105
- openstackclient/tests/unit/compute/v2/test_server_volume.py +12 -5
- openstackclient/tests/unit/compute/v2/test_service.py +83 -37
- openstackclient/tests/unit/compute/v2/test_usage.py +12 -7
- openstackclient/tests/unit/identity/v2_0/test_catalog.py +3 -6
- openstackclient/tests/unit/identity/v2_0/test_role.py +1 -2
- openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +2 -1
- openstackclient/tests/unit/identity/v2_0/test_token.py +6 -20
- openstackclient/tests/unit/identity/v3/test_catalog.py +2 -5
- openstackclient/tests/unit/identity/v3/test_credential.py +74 -63
- openstackclient/tests/unit/identity/v3/test_project.py +1 -3
- openstackclient/tests/unit/identity/v3/test_region.py +74 -96
- openstackclient/tests/unit/identity/v3/test_role.py +679 -603
- openstackclient/tests/unit/identity/v3/test_role_assignment.py +263 -1
- openstackclient/tests/unit/identity/v3/test_service_provider.py +159 -209
- openstackclient/tests/unit/identity/v3/test_token.py +5 -20
- openstackclient/tests/unit/identity/v3/test_trust.py +137 -155
- openstackclient/tests/unit/image/v2/test_image.py +6 -0
- openstackclient/tests/unit/network/v2/fakes.py +3 -0
- openstackclient/tests/unit/network/v2/test_network.py +25 -0
- openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +0 -35
- openstackclient/tests/unit/network/v2/test_port.py +129 -16
- openstackclient/tests/unit/utils.py +8 -2
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +31 -13
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +34 -13
- openstackclient/volume/v2/volume_backup.py +11 -2
- openstackclient/volume/v3/volume_backup.py +13 -2
- {python_openstackclient-7.2.0.dist-info → python_openstackclient-7.3.0.dist-info}/AUTHORS +2 -0
- {python_openstackclient-7.2.0.dist-info → python_openstackclient-7.3.0.dist-info}/METADATA +14 -16
- {python_openstackclient-7.2.0.dist-info → python_openstackclient-7.3.0.dist-info}/RECORD +66 -66
- {python_openstackclient-7.2.0.dist-info → python_openstackclient-7.3.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-7.2.0.dist-info → python_openstackclient-7.3.0.dist-info}/entry_points.txt +0 -1
- python_openstackclient-7.3.0.dist-info/pbr.json +1 -0
- python_openstackclient-7.2.0.dist-info/pbr.json +0 -1
- {python_openstackclient-7.2.0.dist-info → python_openstackclient-7.3.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-7.2.0.dist-info → python_openstackclient-7.3.0.dist-info}/top_level.txt +0 -0
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
# under the License.
|
|
14
14
|
#
|
|
15
15
|
|
|
16
|
+
from openstack.compute.v2 import server_group as _server_group
|
|
17
|
+
from openstack.test import fakes as sdk_fakes
|
|
16
18
|
from osc_lib.cli import format_columns
|
|
17
19
|
from osc_lib import exceptions
|
|
18
20
|
|
|
@@ -22,27 +24,31 @@ from openstackclient.tests.unit import utils as tests_utils
|
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
class TestServerGroup(compute_fakes.TestComputev2):
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
27
|
+
def setUp(self):
|
|
28
|
+
super().setUp()
|
|
29
|
+
|
|
30
|
+
self.fake_server_group = sdk_fakes.generate_fake_resource(
|
|
31
|
+
_server_group.ServerGroup
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
self.columns = (
|
|
35
|
+
'id',
|
|
36
|
+
'members',
|
|
37
|
+
'name',
|
|
38
|
+
'policy',
|
|
39
|
+
'project_id',
|
|
40
|
+
'rules',
|
|
41
|
+
'user_id',
|
|
42
|
+
)
|
|
43
|
+
self.data = (
|
|
44
|
+
self.fake_server_group.id,
|
|
45
|
+
format_columns.ListColumn(self.fake_server_group.member_ids),
|
|
46
|
+
self.fake_server_group.name,
|
|
47
|
+
self.fake_server_group.policy,
|
|
48
|
+
self.fake_server_group.project_id,
|
|
49
|
+
format_columns.DictColumn(self.fake_server_group.rules),
|
|
50
|
+
self.fake_server_group.user_id,
|
|
51
|
+
)
|
|
46
52
|
|
|
47
53
|
|
|
48
54
|
class TestServerGroupCreate(TestServerGroup):
|
|
@@ -262,82 +268,6 @@ class TestServerGroupDelete(TestServerGroup):
|
|
|
262
268
|
|
|
263
269
|
|
|
264
270
|
class TestServerGroupList(TestServerGroup):
|
|
265
|
-
list_columns = (
|
|
266
|
-
'ID',
|
|
267
|
-
'Name',
|
|
268
|
-
'Policies',
|
|
269
|
-
)
|
|
270
|
-
|
|
271
|
-
list_columns_long = (
|
|
272
|
-
'ID',
|
|
273
|
-
'Name',
|
|
274
|
-
'Policies',
|
|
275
|
-
'Members',
|
|
276
|
-
'Project Id',
|
|
277
|
-
'User Id',
|
|
278
|
-
)
|
|
279
|
-
|
|
280
|
-
list_columns_v264 = (
|
|
281
|
-
'ID',
|
|
282
|
-
'Name',
|
|
283
|
-
'Policy',
|
|
284
|
-
)
|
|
285
|
-
|
|
286
|
-
list_columns_v264_long = (
|
|
287
|
-
'ID',
|
|
288
|
-
'Name',
|
|
289
|
-
'Policy',
|
|
290
|
-
'Members',
|
|
291
|
-
'Project Id',
|
|
292
|
-
'User Id',
|
|
293
|
-
)
|
|
294
|
-
|
|
295
|
-
list_data = (
|
|
296
|
-
(
|
|
297
|
-
TestServerGroup.fake_server_group.id,
|
|
298
|
-
TestServerGroup.fake_server_group.name,
|
|
299
|
-
format_columns.ListColumn(
|
|
300
|
-
TestServerGroup.fake_server_group.policies
|
|
301
|
-
),
|
|
302
|
-
),
|
|
303
|
-
)
|
|
304
|
-
|
|
305
|
-
list_data_long = (
|
|
306
|
-
(
|
|
307
|
-
TestServerGroup.fake_server_group.id,
|
|
308
|
-
TestServerGroup.fake_server_group.name,
|
|
309
|
-
format_columns.ListColumn(
|
|
310
|
-
TestServerGroup.fake_server_group.policies
|
|
311
|
-
),
|
|
312
|
-
format_columns.ListColumn(
|
|
313
|
-
TestServerGroup.fake_server_group.member_ids
|
|
314
|
-
),
|
|
315
|
-
TestServerGroup.fake_server_group.project_id,
|
|
316
|
-
TestServerGroup.fake_server_group.user_id,
|
|
317
|
-
),
|
|
318
|
-
)
|
|
319
|
-
|
|
320
|
-
list_data_v264 = (
|
|
321
|
-
(
|
|
322
|
-
TestServerGroup.fake_server_group.id,
|
|
323
|
-
TestServerGroup.fake_server_group.name,
|
|
324
|
-
TestServerGroup.fake_server_group.policy,
|
|
325
|
-
),
|
|
326
|
-
)
|
|
327
|
-
|
|
328
|
-
list_data_v264_long = (
|
|
329
|
-
(
|
|
330
|
-
TestServerGroup.fake_server_group.id,
|
|
331
|
-
TestServerGroup.fake_server_group.name,
|
|
332
|
-
TestServerGroup.fake_server_group.policy,
|
|
333
|
-
format_columns.ListColumn(
|
|
334
|
-
TestServerGroup.fake_server_group.member_ids
|
|
335
|
-
),
|
|
336
|
-
TestServerGroup.fake_server_group.project_id,
|
|
337
|
-
TestServerGroup.fake_server_group.user_id,
|
|
338
|
-
),
|
|
339
|
-
)
|
|
340
|
-
|
|
341
271
|
def setUp(self):
|
|
342
272
|
super().setUp()
|
|
343
273
|
|
|
@@ -359,8 +289,21 @@ class TestServerGroupList(TestServerGroup):
|
|
|
359
289
|
|
|
360
290
|
self.compute_sdk_client.server_groups.assert_called_once_with()
|
|
361
291
|
|
|
362
|
-
|
|
363
|
-
|
|
292
|
+
expected_columns = (
|
|
293
|
+
'ID',
|
|
294
|
+
'Name',
|
|
295
|
+
'Policies',
|
|
296
|
+
)
|
|
297
|
+
expected_data = (
|
|
298
|
+
(
|
|
299
|
+
self.fake_server_group.id,
|
|
300
|
+
self.fake_server_group.name,
|
|
301
|
+
format_columns.ListColumn(self.fake_server_group.policies),
|
|
302
|
+
),
|
|
303
|
+
)
|
|
304
|
+
|
|
305
|
+
self.assertCountEqual(expected_columns, columns)
|
|
306
|
+
self.assertCountEqual(expected_data, tuple(data))
|
|
364
307
|
|
|
365
308
|
def test_server_group_list_with_all_projects_and_long(self):
|
|
366
309
|
arglist = [
|
|
@@ -379,8 +322,27 @@ class TestServerGroupList(TestServerGroup):
|
|
|
379
322
|
all_projects=True
|
|
380
323
|
)
|
|
381
324
|
|
|
382
|
-
|
|
383
|
-
|
|
325
|
+
expected_columns = (
|
|
326
|
+
'ID',
|
|
327
|
+
'Name',
|
|
328
|
+
'Policies',
|
|
329
|
+
'Members',
|
|
330
|
+
'Project Id',
|
|
331
|
+
'User Id',
|
|
332
|
+
)
|
|
333
|
+
expected_data = (
|
|
334
|
+
(
|
|
335
|
+
self.fake_server_group.id,
|
|
336
|
+
self.fake_server_group.name,
|
|
337
|
+
format_columns.ListColumn(self.fake_server_group.policies),
|
|
338
|
+
format_columns.ListColumn(self.fake_server_group.member_ids),
|
|
339
|
+
self.fake_server_group.project_id,
|
|
340
|
+
self.fake_server_group.user_id,
|
|
341
|
+
),
|
|
342
|
+
)
|
|
343
|
+
|
|
344
|
+
self.assertCountEqual(expected_columns, columns)
|
|
345
|
+
self.assertCountEqual(expected_data, tuple(data))
|
|
384
346
|
|
|
385
347
|
def test_server_group_list_with_limit(self):
|
|
386
348
|
arglist = [
|
|
@@ -428,8 +390,21 @@ class TestServerGroupList(TestServerGroup):
|
|
|
428
390
|
columns, data = self.cmd.take_action(parsed_args)
|
|
429
391
|
self.compute_sdk_client.server_groups.assert_called_once_with()
|
|
430
392
|
|
|
431
|
-
|
|
432
|
-
|
|
393
|
+
expected_columns = (
|
|
394
|
+
'ID',
|
|
395
|
+
'Name',
|
|
396
|
+
'Policy',
|
|
397
|
+
)
|
|
398
|
+
expected_data = (
|
|
399
|
+
(
|
|
400
|
+
self.fake_server_group.id,
|
|
401
|
+
self.fake_server_group.name,
|
|
402
|
+
self.fake_server_group.policy,
|
|
403
|
+
),
|
|
404
|
+
)
|
|
405
|
+
|
|
406
|
+
self.assertCountEqual(expected_columns, columns)
|
|
407
|
+
self.assertCountEqual(expected_data, tuple(data))
|
|
433
408
|
|
|
434
409
|
def test_server_group_list_with_all_projects_and_long_v264(self):
|
|
435
410
|
self.set_compute_api_version('2.64')
|
|
@@ -448,8 +423,27 @@ class TestServerGroupList(TestServerGroup):
|
|
|
448
423
|
all_projects=True
|
|
449
424
|
)
|
|
450
425
|
|
|
451
|
-
|
|
452
|
-
|
|
426
|
+
expected_columns = (
|
|
427
|
+
'ID',
|
|
428
|
+
'Name',
|
|
429
|
+
'Policy',
|
|
430
|
+
'Members',
|
|
431
|
+
'Project Id',
|
|
432
|
+
'User Id',
|
|
433
|
+
)
|
|
434
|
+
expected_data = (
|
|
435
|
+
(
|
|
436
|
+
self.fake_server_group.id,
|
|
437
|
+
self.fake_server_group.name,
|
|
438
|
+
self.fake_server_group.policy,
|
|
439
|
+
format_columns.ListColumn(self.fake_server_group.member_ids),
|
|
440
|
+
self.fake_server_group.project_id,
|
|
441
|
+
self.fake_server_group.user_id,
|
|
442
|
+
),
|
|
443
|
+
)
|
|
444
|
+
|
|
445
|
+
self.assertCountEqual(expected_columns, columns)
|
|
446
|
+
self.assertCountEqual(expected_data, tuple(data))
|
|
453
447
|
|
|
454
448
|
|
|
455
449
|
class TestServerGroupShow(TestServerGroup):
|
|
@@ -10,19 +10,26 @@
|
|
|
10
10
|
# License for the specific language governing permissions and limitations
|
|
11
11
|
# under the License.
|
|
12
12
|
|
|
13
|
+
from openstack.block_storage.v3 import volume as _volume
|
|
14
|
+
from openstack.compute.v2 import server as _server
|
|
15
|
+
from openstack.compute.v2 import volume_attachment as _volume_attachment
|
|
16
|
+
from openstack.test import fakes as sdk_fakes
|
|
13
17
|
from osc_lib import exceptions
|
|
14
18
|
|
|
15
19
|
from openstackclient.compute.v2 import server_volume
|
|
16
20
|
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
|
|
17
|
-
from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes
|
|
18
21
|
|
|
19
22
|
|
|
20
23
|
class TestServerVolumeList(compute_fakes.TestComputev2):
|
|
21
24
|
def setUp(self):
|
|
22
25
|
super().setUp()
|
|
23
26
|
|
|
24
|
-
self.server =
|
|
25
|
-
self.volume_attachments =
|
|
27
|
+
self.server = sdk_fakes.generate_fake_resource(_server.Server)
|
|
28
|
+
self.volume_attachments = list(
|
|
29
|
+
sdk_fakes.generate_fake_resources(
|
|
30
|
+
_volume_attachment.VolumeAttachment, count=2
|
|
31
|
+
)
|
|
32
|
+
)
|
|
26
33
|
|
|
27
34
|
self.compute_sdk_client.find_server.return_value = self.server
|
|
28
35
|
self.compute_sdk_client.volume_attachments.return_value = (
|
|
@@ -217,10 +224,10 @@ class TestServerVolumeUpdate(compute_fakes.TestComputev2):
|
|
|
217
224
|
def setUp(self):
|
|
218
225
|
super().setUp()
|
|
219
226
|
|
|
220
|
-
self.server =
|
|
227
|
+
self.server = sdk_fakes.generate_fake_resource(_server.Server)
|
|
221
228
|
self.compute_sdk_client.find_server.return_value = self.server
|
|
222
229
|
|
|
223
|
-
self.volume =
|
|
230
|
+
self.volume = sdk_fakes.generate_fake_resource(_volume.Volume)
|
|
224
231
|
self.volume_sdk_client.find_volume.return_value = self.volume
|
|
225
232
|
|
|
226
233
|
# Get the command object to test
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
from unittest import mock
|
|
16
16
|
|
|
17
|
+
from openstack.compute.v2 import service as _service
|
|
18
|
+
from openstack.test import fakes as sdk_fakes
|
|
17
19
|
from osc_lib import exceptions
|
|
18
20
|
|
|
19
21
|
from openstackclient.compute.v2 import service
|
|
@@ -21,11 +23,13 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
|
|
|
21
23
|
|
|
22
24
|
|
|
23
25
|
class TestServiceDelete(compute_fakes.TestComputev2):
|
|
24
|
-
services = compute_fakes.create_services(count=2)
|
|
25
|
-
|
|
26
26
|
def setUp(self):
|
|
27
27
|
super().setUp()
|
|
28
28
|
|
|
29
|
+
self.services = list(
|
|
30
|
+
sdk_fakes.generate_fake_resources(_service.Service, count=2)
|
|
31
|
+
)
|
|
32
|
+
|
|
29
33
|
self.compute_sdk_client.delete_service.return_value = None
|
|
30
34
|
|
|
31
35
|
# Get the command object to test
|
|
@@ -94,35 +98,11 @@ class TestServiceDelete(compute_fakes.TestComputev2):
|
|
|
94
98
|
|
|
95
99
|
|
|
96
100
|
class TestServiceList(compute_fakes.TestComputev2):
|
|
97
|
-
service = compute_fakes.create_one_service()
|
|
98
|
-
|
|
99
|
-
columns = (
|
|
100
|
-
'ID',
|
|
101
|
-
'Binary',
|
|
102
|
-
'Host',
|
|
103
|
-
'Zone',
|
|
104
|
-
'Status',
|
|
105
|
-
'State',
|
|
106
|
-
'Updated At',
|
|
107
|
-
)
|
|
108
|
-
columns_long = columns + ('Disabled Reason',)
|
|
109
|
-
|
|
110
|
-
data = [
|
|
111
|
-
(
|
|
112
|
-
service.id,
|
|
113
|
-
service.binary,
|
|
114
|
-
service.host,
|
|
115
|
-
service.availability_zone,
|
|
116
|
-
service.status,
|
|
117
|
-
service.state,
|
|
118
|
-
service.updated_at,
|
|
119
|
-
)
|
|
120
|
-
]
|
|
121
|
-
data_long = [data[0] + (service.disabled_reason,)]
|
|
122
|
-
|
|
123
101
|
def setUp(self):
|
|
124
102
|
super().setUp()
|
|
125
103
|
|
|
104
|
+
self.service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
105
|
+
|
|
126
106
|
self.compute_sdk_client.services.return_value = [self.service]
|
|
127
107
|
|
|
128
108
|
# Get the command object to test
|
|
@@ -151,8 +131,29 @@ class TestServiceList(compute_fakes.TestComputev2):
|
|
|
151
131
|
binary=self.service.binary,
|
|
152
132
|
)
|
|
153
133
|
|
|
154
|
-
|
|
155
|
-
|
|
134
|
+
expected_columns = (
|
|
135
|
+
'ID',
|
|
136
|
+
'Binary',
|
|
137
|
+
'Host',
|
|
138
|
+
'Zone',
|
|
139
|
+
'Status',
|
|
140
|
+
'State',
|
|
141
|
+
'Updated At',
|
|
142
|
+
)
|
|
143
|
+
expected_data = [
|
|
144
|
+
(
|
|
145
|
+
self.service.id,
|
|
146
|
+
self.service.binary,
|
|
147
|
+
self.service.host,
|
|
148
|
+
self.service.availability_zone,
|
|
149
|
+
self.service.status,
|
|
150
|
+
self.service.state,
|
|
151
|
+
self.service.updated_at,
|
|
152
|
+
)
|
|
153
|
+
]
|
|
154
|
+
|
|
155
|
+
self.assertEqual(expected_columns, columns)
|
|
156
|
+
self.assertEqual(expected_data, list(data))
|
|
156
157
|
|
|
157
158
|
def test_service_list_with_long_option(self):
|
|
158
159
|
arglist = [
|
|
@@ -179,8 +180,31 @@ class TestServiceList(compute_fakes.TestComputev2):
|
|
|
179
180
|
binary=self.service.binary,
|
|
180
181
|
)
|
|
181
182
|
|
|
182
|
-
|
|
183
|
-
|
|
183
|
+
expected_columns = (
|
|
184
|
+
'ID',
|
|
185
|
+
'Binary',
|
|
186
|
+
'Host',
|
|
187
|
+
'Zone',
|
|
188
|
+
'Status',
|
|
189
|
+
'State',
|
|
190
|
+
'Updated At',
|
|
191
|
+
'Disabled Reason',
|
|
192
|
+
)
|
|
193
|
+
expected_data = [
|
|
194
|
+
(
|
|
195
|
+
self.service.id,
|
|
196
|
+
self.service.binary,
|
|
197
|
+
self.service.host,
|
|
198
|
+
self.service.availability_zone,
|
|
199
|
+
self.service.status,
|
|
200
|
+
self.service.state,
|
|
201
|
+
self.service.updated_at,
|
|
202
|
+
self.service.disabled_reason,
|
|
203
|
+
)
|
|
204
|
+
]
|
|
205
|
+
|
|
206
|
+
self.assertEqual(expected_columns, columns)
|
|
207
|
+
self.assertEqual(expected_data, list(data))
|
|
184
208
|
|
|
185
209
|
def test_service_list_with_long_option_2_11(self):
|
|
186
210
|
self.set_compute_api_version('2.11')
|
|
@@ -210,18 +234,40 @@ class TestServiceList(compute_fakes.TestComputev2):
|
|
|
210
234
|
)
|
|
211
235
|
|
|
212
236
|
# In 2.11 there is also a forced_down column.
|
|
213
|
-
|
|
214
|
-
|
|
237
|
+
expected_columns = (
|
|
238
|
+
'ID',
|
|
239
|
+
'Binary',
|
|
240
|
+
'Host',
|
|
241
|
+
'Zone',
|
|
242
|
+
'Status',
|
|
243
|
+
'State',
|
|
244
|
+
'Updated At',
|
|
245
|
+
'Disabled Reason',
|
|
246
|
+
'Forced Down',
|
|
247
|
+
)
|
|
248
|
+
expected_data = [
|
|
249
|
+
(
|
|
250
|
+
self.service.id,
|
|
251
|
+
self.service.binary,
|
|
252
|
+
self.service.host,
|
|
253
|
+
self.service.availability_zone,
|
|
254
|
+
self.service.status,
|
|
255
|
+
self.service.state,
|
|
256
|
+
self.service.updated_at,
|
|
257
|
+
self.service.disabled_reason,
|
|
258
|
+
self.service.is_forced_down,
|
|
259
|
+
)
|
|
260
|
+
]
|
|
215
261
|
|
|
216
|
-
self.assertEqual(
|
|
217
|
-
self.assertEqual(
|
|
262
|
+
self.assertEqual(expected_columns, columns)
|
|
263
|
+
self.assertEqual(expected_data, list(data))
|
|
218
264
|
|
|
219
265
|
|
|
220
266
|
class TestServiceSet(compute_fakes.TestComputev2):
|
|
221
267
|
def setUp(self):
|
|
222
268
|
super().setUp()
|
|
223
269
|
|
|
224
|
-
self.service =
|
|
270
|
+
self.service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
225
271
|
|
|
226
272
|
self.compute_sdk_client.enable_service.return_value = self.service
|
|
227
273
|
self.compute_sdk_client.disable_service.return_value = self.service
|
|
@@ -14,9 +14,12 @@
|
|
|
14
14
|
import datetime
|
|
15
15
|
from unittest import mock
|
|
16
16
|
|
|
17
|
+
from openstack.compute.v2 import usage as _usage
|
|
18
|
+
from openstack.identity.v3 import project as _project
|
|
19
|
+
from openstack.test import fakes as sdk_fakes
|
|
20
|
+
|
|
17
21
|
from openstackclient.compute.v2 import usage as usage_cmds
|
|
18
22
|
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
|
|
19
|
-
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
20
23
|
|
|
21
24
|
|
|
22
25
|
class TestUsage(compute_fakes.TestComputev2):
|
|
@@ -28,11 +31,11 @@ class TestUsage(compute_fakes.TestComputev2):
|
|
|
28
31
|
|
|
29
32
|
|
|
30
33
|
class TestUsageList(TestUsage):
|
|
31
|
-
project =
|
|
34
|
+
project = sdk_fakes.generate_fake_resource(_project.Project)
|
|
32
35
|
# Return value of self.usage_mock.list().
|
|
33
|
-
usages =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
usages = [
|
|
37
|
+
sdk_fakes.generate_fake_resource(_usage.Usage, project_id=project.name)
|
|
38
|
+
]
|
|
36
39
|
|
|
37
40
|
columns = (
|
|
38
41
|
"Project",
|
|
@@ -123,9 +126,11 @@ class TestUsageList(TestUsage):
|
|
|
123
126
|
|
|
124
127
|
|
|
125
128
|
class TestUsageShow(TestUsage):
|
|
126
|
-
project =
|
|
129
|
+
project = sdk_fakes.generate_fake_resource(_project.Project)
|
|
127
130
|
# Return value of self.usage_mock.list().
|
|
128
|
-
usage =
|
|
131
|
+
usage = sdk_fakes.generate_fake_resource(
|
|
132
|
+
_usage.Usage, project_id=project.name
|
|
133
|
+
)
|
|
129
134
|
|
|
130
135
|
columns = (
|
|
131
136
|
'Project',
|
|
@@ -53,8 +53,7 @@ class TestCatalogList(TestCatalog):
|
|
|
53
53
|
identity_fakes.TOKEN,
|
|
54
54
|
fake_service=self.service_catalog,
|
|
55
55
|
)
|
|
56
|
-
self.
|
|
57
|
-
type(self.app.client_manager).auth_ref = self.ar_mock
|
|
56
|
+
self.app.client_manager.auth_ref = auth_ref
|
|
58
57
|
|
|
59
58
|
arglist = []
|
|
60
59
|
verifylist = []
|
|
@@ -99,8 +98,7 @@ class TestCatalogList(TestCatalog):
|
|
|
99
98
|
identity_fakes.TOKEN,
|
|
100
99
|
fake_service=service_catalog,
|
|
101
100
|
)
|
|
102
|
-
self.
|
|
103
|
-
type(self.app.client_manager).auth_ref = self.ar_mock
|
|
101
|
+
self.app.client_manager.auth_ref = auth_ref
|
|
104
102
|
|
|
105
103
|
arglist = []
|
|
106
104
|
verifylist = []
|
|
@@ -136,8 +134,7 @@ class TestCatalogShow(TestCatalog):
|
|
|
136
134
|
identity_fakes.UNSCOPED_TOKEN,
|
|
137
135
|
fake_service=self.service_catalog,
|
|
138
136
|
)
|
|
139
|
-
self.
|
|
140
|
-
type(self.app.client_manager).auth_ref = self.ar_mock
|
|
137
|
+
self.app.client_manager.auth_ref = auth_ref
|
|
141
138
|
|
|
142
139
|
arglist = [
|
|
143
140
|
'compute',
|
|
@@ -58,8 +58,7 @@ class TestRole(identity_fakes.TestIdentityv2):
|
|
|
58
58
|
identity_fakes.TOKEN,
|
|
59
59
|
fake_service=self.fake_service,
|
|
60
60
|
)
|
|
61
|
-
self.
|
|
62
|
-
type(self.app.client_manager).auth_ref = self.ar_mock
|
|
61
|
+
self.app.client_manager.auth_ref = auth_ref
|
|
63
62
|
|
|
64
63
|
|
|
65
64
|
class TestRoleAdd(TestRole):
|
|
@@ -169,7 +169,8 @@ class TestRoleAssignmentList(TestRoleAssignment):
|
|
|
169
169
|
self.assertEqual(datalist, tuple(data))
|
|
170
170
|
|
|
171
171
|
def test_role_assignment_list_def_creds(self):
|
|
172
|
-
|
|
172
|
+
self.app.client_manager.auth_ref = mock.Mock()
|
|
173
|
+
auth_ref = self.app.client_manager.auth_ref
|
|
173
174
|
auth_ref.project_id.return_value = identity_fakes.project_id
|
|
174
175
|
auth_ref.user_id.return_value = identity_fakes.user_id
|
|
175
176
|
|
|
@@ -11,29 +11,17 @@
|
|
|
11
11
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
12
12
|
# License for the specific language governing permissions and limitations
|
|
13
13
|
# under the License.
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
from unittest import mock
|
|
17
14
|
|
|
18
15
|
from openstackclient.identity.v2_0 import token
|
|
19
16
|
from openstackclient.tests.unit.identity.v2_0 import fakes as identity_fakes
|
|
20
17
|
|
|
21
18
|
|
|
22
|
-
class
|
|
23
|
-
fake_user = identity_fakes.FakeUser.create_one_user()
|
|
24
|
-
fake_project = identity_fakes.FakeProject.create_one_project()
|
|
25
|
-
|
|
19
|
+
class TestTokenIssue(identity_fakes.TestIdentityv2):
|
|
26
20
|
def setUp(self):
|
|
27
21
|
super().setUp()
|
|
28
22
|
|
|
29
|
-
|
|
30
|
-
self.
|
|
31
|
-
type(self.app.client_manager).auth_ref = self.ar_mock
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
class TestTokenIssue(TestToken):
|
|
35
|
-
def setUp(self):
|
|
36
|
-
super().setUp()
|
|
23
|
+
self.fake_user = identity_fakes.FakeUser.create_one_user()
|
|
24
|
+
self.fake_project = identity_fakes.FakeProject.create_one_project()
|
|
37
25
|
|
|
38
26
|
self.cmd = token.IssueToken(self.app, None)
|
|
39
27
|
|
|
@@ -41,8 +29,7 @@ class TestTokenIssue(TestToken):
|
|
|
41
29
|
auth_ref = identity_fakes.fake_auth_ref(
|
|
42
30
|
identity_fakes.TOKEN,
|
|
43
31
|
)
|
|
44
|
-
self.
|
|
45
|
-
type(self.app.client_manager).auth_ref = self.ar_mock
|
|
32
|
+
self.app.client_manager.auth_ref = auth_ref
|
|
46
33
|
|
|
47
34
|
arglist = []
|
|
48
35
|
verifylist = []
|
|
@@ -67,8 +54,7 @@ class TestTokenIssue(TestToken):
|
|
|
67
54
|
auth_ref = identity_fakes.fake_auth_ref(
|
|
68
55
|
identity_fakes.UNSCOPED_TOKEN,
|
|
69
56
|
)
|
|
70
|
-
self.
|
|
71
|
-
type(self.app.client_manager).auth_ref = self.ar_mock
|
|
57
|
+
self.app.client_manager.auth_ref = auth_ref
|
|
72
58
|
|
|
73
59
|
arglist = []
|
|
74
60
|
verifylist = []
|
|
@@ -91,7 +77,7 @@ class TestTokenIssue(TestToken):
|
|
|
91
77
|
self.assertEqual(datalist, data)
|
|
92
78
|
|
|
93
79
|
|
|
94
|
-
class TestTokenRevoke(
|
|
80
|
+
class TestTokenRevoke(identity_fakes.TestIdentityv2):
|
|
95
81
|
TOKEN = 'fob'
|
|
96
82
|
|
|
97
83
|
def setUp(self):
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
10
10
|
# License for the specific language governing permissions and limitations
|
|
11
11
|
# under the License.
|
|
12
|
-
#
|
|
13
12
|
|
|
14
13
|
from unittest import mock
|
|
15
14
|
|
|
@@ -72,8 +71,7 @@ class TestCatalogList(TestCatalog):
|
|
|
72
71
|
identity_fakes.TOKEN_WITH_PROJECT_ID,
|
|
73
72
|
fake_service=self.fake_service,
|
|
74
73
|
)
|
|
75
|
-
self.
|
|
76
|
-
type(self.app.client_manager).auth_ref = self.ar_mock
|
|
74
|
+
self.app.client_manager.auth_ref = auth_ref
|
|
77
75
|
|
|
78
76
|
arglist = []
|
|
79
77
|
verifylist = []
|
|
@@ -110,8 +108,7 @@ class TestCatalogShow(TestCatalog):
|
|
|
110
108
|
identity_fakes.TOKEN_WITH_PROJECT_ID,
|
|
111
109
|
fake_service=self.fake_service,
|
|
112
110
|
)
|
|
113
|
-
self.
|
|
114
|
-
type(self.app.client_manager).auth_ref = self.ar_mock
|
|
111
|
+
self.app.client_manager.auth_ref = auth_ref
|
|
115
112
|
|
|
116
113
|
arglist = [
|
|
117
114
|
'compute',
|