python-openstackclient 7.4.0__py3-none-any.whl → 8.1.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/availability_zone.py +3 -6
- openstackclient/common/clientmanager.py +2 -1
- openstackclient/common/envvars.py +57 -0
- openstackclient/common/extension.py +3 -11
- openstackclient/common/limits.py +1 -1
- openstackclient/common/project_cleanup.py +3 -2
- openstackclient/common/quota.py +54 -28
- openstackclient/compute/client.py +7 -5
- openstackclient/compute/v2/agent.py +5 -5
- openstackclient/compute/v2/aggregate.py +17 -15
- openstackclient/compute/v2/console.py +10 -4
- openstackclient/compute/v2/console_connection.py +48 -0
- openstackclient/compute/v2/flavor.py +14 -18
- openstackclient/compute/v2/host.py +3 -3
- openstackclient/compute/v2/hypervisor.py +10 -4
- openstackclient/compute/v2/hypervisor_stats.py +1 -1
- openstackclient/compute/v2/keypair.py +18 -13
- openstackclient/compute/v2/server.py +144 -121
- openstackclient/compute/v2/server_backup.py +1 -1
- openstackclient/compute/v2/server_event.py +8 -17
- openstackclient/compute/v2/server_group.py +6 -6
- openstackclient/compute/v2/server_image.py +1 -1
- openstackclient/compute/v2/server_migration.py +6 -6
- openstackclient/compute/v2/server_volume.py +4 -4
- openstackclient/compute/v2/service.py +9 -13
- openstackclient/compute/v2/usage.py +4 -6
- openstackclient/identity/client.py +2 -4
- openstackclient/identity/common.py +95 -17
- openstackclient/identity/v2_0/ec2creds.py +4 -3
- openstackclient/identity/v2_0/endpoint.py +12 -10
- openstackclient/identity/v2_0/project.py +6 -6
- openstackclient/identity/v2_0/role.py +1 -1
- openstackclient/identity/v2_0/service.py +7 -7
- openstackclient/identity/v2_0/user.py +6 -21
- openstackclient/identity/v3/access_rule.py +2 -5
- openstackclient/identity/v3/application_credential.py +2 -2
- openstackclient/identity/v3/consumer.py +4 -3
- openstackclient/identity/v3/credential.py +6 -7
- openstackclient/identity/v3/domain.py +63 -44
- openstackclient/identity/v3/ec2creds.py +4 -3
- openstackclient/identity/v3/endpoint.py +104 -88
- openstackclient/identity/v3/endpoint_group.py +1 -1
- openstackclient/identity/v3/group.py +116 -72
- openstackclient/identity/v3/identity_provider.py +1 -2
- openstackclient/identity/v3/limit.py +4 -9
- openstackclient/identity/v3/mapping.py +4 -3
- openstackclient/identity/v3/policy.py +5 -8
- openstackclient/identity/v3/project.py +23 -6
- openstackclient/identity/v3/region.py +2 -5
- openstackclient/identity/v3/registered_limit.py +4 -8
- openstackclient/identity/v3/role.py +15 -16
- openstackclient/identity/v3/service.py +8 -8
- openstackclient/identity/v3/service_provider.py +3 -6
- openstackclient/identity/v3/tag.py +2 -2
- openstackclient/identity/v3/token.py +1 -2
- openstackclient/identity/v3/trust.py +74 -25
- openstackclient/identity/v3/user.py +47 -11
- openstackclient/image/client.py +7 -5
- openstackclient/image/v1/image.py +11 -15
- openstackclient/image/v2/cache.py +2 -4
- openstackclient/image/v2/image.py +41 -48
- openstackclient/image/v2/metadef_namespaces.py +4 -3
- openstackclient/image/v2/metadef_resource_type_association.py +1 -2
- openstackclient/image/v2/metadef_resource_types.py +1 -2
- openstackclient/locale/tr_TR/LC_MESSAGES/openstackclient.po +9 -1370
- openstackclient/network/client.py +4 -16
- openstackclient/network/common.py +16 -12
- openstackclient/network/utils.py +3 -3
- openstackclient/network/v2/address_group.py +5 -9
- openstackclient/network/v2/address_scope.py +2 -3
- openstackclient/network/v2/default_security_group_rule.py +1 -2
- openstackclient/network/v2/floating_ip.py +69 -47
- openstackclient/network/v2/floating_ip_port_forwarding.py +7 -7
- openstackclient/network/v2/ip_availability.py +1 -2
- openstackclient/network/v2/l3_conntrack_helper.py +8 -12
- openstackclient/network/v2/local_ip.py +24 -26
- openstackclient/network/v2/local_ip_association.py +4 -5
- openstackclient/network/v2/ndp_proxy.py +9 -10
- openstackclient/network/v2/network.py +12 -16
- openstackclient/network/v2/network_agent.py +29 -37
- openstackclient/network/v2/network_auto_allocated_topology.py +4 -5
- openstackclient/network/v2/network_flavor.py +1 -1
- openstackclient/network/v2/network_flavor_profile.py +5 -5
- openstackclient/network/v2/network_meter.py +3 -3
- openstackclient/network/v2/network_meter_rule.py +5 -8
- openstackclient/network/v2/network_qos_policy.py +4 -4
- openstackclient/network/v2/network_qos_rule.py +7 -16
- openstackclient/network/v2/network_rbac.py +4 -4
- openstackclient/network/v2/network_segment.py +6 -7
- openstackclient/network/v2/network_segment_range.py +16 -20
- openstackclient/network/v2/network_trunk.py +24 -16
- openstackclient/network/v2/port.py +28 -29
- openstackclient/network/v2/router.py +53 -42
- openstackclient/network/v2/security_group.py +13 -19
- openstackclient/network/v2/security_group_rule.py +10 -11
- openstackclient/network/v2/subnet.py +31 -30
- openstackclient/network/v2/subnet_pool.py +4 -4
- openstackclient/object/client.py +2 -3
- openstackclient/object/v1/container.py +2 -3
- openstackclient/object/v1/object.py +2 -9
- openstackclient/shell.py +22 -5
- openstackclient/tests/functional/base.py +7 -3
- openstackclient/tests/functional/common/test_quota.py +3 -1
- openstackclient/tests/functional/compute/v2/common.py +12 -6
- openstackclient/tests/functional/compute/v2/test_keypair.py +41 -5
- openstackclient/tests/functional/compute/v2/test_server.py +2 -3
- openstackclient/tests/functional/compute/v2/test_server_event.py +1 -1
- openstackclient/tests/functional/identity/v2/test_user.py +1 -1
- openstackclient/tests/functional/identity/v3/common.py +3 -8
- openstackclient/tests/functional/identity/v3/test_application_credential.py +10 -10
- openstackclient/tests/functional/identity/v3/test_endpoint.py +3 -3
- openstackclient/tests/functional/identity/v3/test_group.py +3 -3
- openstackclient/tests/functional/identity/v3/test_idp.py +3 -7
- openstackclient/tests/functional/identity/v3/test_limit.py +4 -4
- openstackclient/tests/functional/identity/v3/test_project.py +5 -14
- openstackclient/tests/functional/identity/v3/test_region.py +1 -3
- openstackclient/tests/functional/identity/v3/test_registered_limit.py +3 -3
- openstackclient/tests/functional/identity/v3/test_role.py +1 -1
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +13 -31
- openstackclient/tests/functional/identity/v3/test_service_provider.py +3 -7
- openstackclient/tests/functional/identity/v3/test_user.py +8 -8
- openstackclient/tests/functional/network/v2/common.py +7 -3
- openstackclient/tests/functional/network/v2/test_address_group.py +4 -0
- openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py +15 -11
- openstackclient/tests/functional/network/v2/test_local_ip.py +4 -0
- openstackclient/tests/functional/network/v2/test_network_meter_rule.py +2 -2
- openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py +2 -3
- openstackclient/tests/functional/network/v2/test_network_rbac.py +2 -2
- openstackclient/tests/functional/network/v2/test_network_trunk.py +1 -1
- openstackclient/tests/functional/network/v2/test_port.py +17 -7
- openstackclient/tests/functional/network/v2/test_router.py +42 -0
- openstackclient/tests/functional/network/v2/test_subnet_pool.py +4 -0
- openstackclient/tests/unit/api/test_compute_v2.py +67 -87
- openstackclient/tests/unit/common/test_availability_zone.py +6 -14
- openstackclient/tests/unit/common/test_command.py +1 -1
- openstackclient/tests/unit/common/test_extension.py +5 -7
- openstackclient/tests/unit/common/test_limits.py +1 -1
- openstackclient/tests/unit/common/test_project_cleanup.py +5 -6
- openstackclient/tests/unit/common/test_quota.py +51 -28
- openstackclient/tests/unit/compute/v2/fakes.py +85 -315
- openstackclient/tests/unit/compute/v2/test_agent.py +16 -16
- openstackclient/tests/unit/compute/v2/test_aggregate.py +56 -60
- openstackclient/tests/unit/compute/v2/test_console.py +34 -17
- openstackclient/tests/unit/compute/v2/test_console_connection.py +72 -0
- openstackclient/tests/unit/compute/v2/test_flavor.py +72 -72
- openstackclient/tests/unit/compute/v2/test_host.py +8 -8
- openstackclient/tests/unit/compute/v2/test_hypervisor.py +22 -30
- openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +2 -2
- openstackclient/tests/unit/compute/v2/test_keypair.py +36 -29
- openstackclient/tests/unit/compute/v2/test_server.py +693 -606
- openstackclient/tests/unit/compute/v2/test_server_backup.py +36 -77
- openstackclient/tests/unit/compute/v2/test_server_event.py +18 -20
- openstackclient/tests/unit/compute/v2/test_server_group.py +25 -31
- openstackclient/tests/unit/compute/v2/test_server_image.py +37 -78
- openstackclient/tests/unit/compute/v2/test_server_migration.py +41 -41
- openstackclient/tests/unit/compute/v2/test_server_volume.py +12 -12
- openstackclient/tests/unit/compute/v2/test_service.py +39 -45
- openstackclient/tests/unit/compute/v2/test_usage.py +5 -5
- openstackclient/tests/unit/identity/v2_0/fakes.py +1 -1
- openstackclient/tests/unit/identity/v3/test_access_rule.py +1 -3
- openstackclient/tests/unit/identity/v3/test_application_credential.py +48 -26
- openstackclient/tests/unit/identity/v3/test_domain.py +115 -105
- openstackclient/tests/unit/identity/v3/test_endpoint.py +167 -172
- openstackclient/tests/unit/identity/v3/test_group.py +353 -202
- openstackclient/tests/unit/identity/v3/test_mappings.py +2 -2
- openstackclient/tests/unit/identity/v3/test_project.py +16 -0
- openstackclient/tests/unit/identity/v3/test_trust.py +5 -2
- openstackclient/tests/unit/identity/v3/test_user.py +102 -6
- openstackclient/tests/unit/image/v1/fakes.py +2 -2
- openstackclient/tests/unit/image/v1/test_image.py +8 -9
- openstackclient/tests/unit/image/v2/test_image.py +84 -46
- openstackclient/tests/unit/integ/cli/test_shell.py +1 -2
- openstackclient/tests/unit/network/test_common.py +2 -2
- openstackclient/tests/unit/network/v2/fakes.py +405 -485
- openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +8 -14
- openstackclient/tests/unit/network/v2/test_floating_ip_network.py +62 -54
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +1 -1
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +2 -2
- openstackclient/tests/unit/network/v2/test_ndp_proxy.py +1 -3
- openstackclient/tests/unit/network/v2/test_network.py +4 -4
- openstackclient/tests/unit/network/v2/test_network_agent.py +15 -29
- openstackclient/tests/unit/network/v2/test_network_compute.py +11 -11
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +16 -19
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +79 -152
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +4 -6
- openstackclient/tests/unit/network/v2/test_network_rbac.py +2 -2
- openstackclient/tests/unit/network/v2/test_network_trunk.py +2 -2
- openstackclient/tests/unit/network/v2/test_port.py +21 -22
- openstackclient/tests/unit/network/v2/test_router.py +130 -51
- openstackclient/tests/unit/network/v2/test_security_group_compute.py +11 -19
- openstackclient/tests/unit/network/v2/test_security_group_network.py +25 -27
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +15 -17
- openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +33 -39
- openstackclient/tests/unit/object/v1/test_object_all.py +4 -3
- openstackclient/tests/unit/test_shell.py +16 -13
- openstackclient/tests/unit/volume/v2/fakes.py +1 -2
- openstackclient/tests/unit/volume/v2/test_service.py +57 -91
- openstackclient/tests/unit/volume/v2/test_volume.py +109 -106
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +141 -148
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +293 -283
- openstackclient/tests/unit/volume/v2/test_volume_transfer_request.py +1 -1
- openstackclient/tests/unit/volume/v3/fakes.py +2 -8
- openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +61 -71
- openstackclient/tests/unit/volume/v3/test_service.py +221 -141
- openstackclient/tests/unit/volume/v3/test_volume.py +131 -120
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +4 -4
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +198 -203
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +683 -49
- openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py +1 -1
- openstackclient/volume/client.py +1 -3
- openstackclient/volume/v2/consistency_group.py +4 -8
- openstackclient/volume/v2/consistency_group_snapshot.py +1 -2
- openstackclient/volume/v2/qos_specs.py +1 -2
- openstackclient/volume/v2/service.py +41 -38
- openstackclient/volume/v2/volume.py +71 -53
- openstackclient/volume/v2/volume_backup.py +15 -10
- openstackclient/volume/v2/volume_snapshot.py +129 -93
- openstackclient/volume/v2/volume_transfer_request.py +0 -3
- openstackclient/volume/v2/volume_type.py +10 -21
- openstackclient/volume/v3/block_storage_cluster.py +3 -3
- openstackclient/volume/v3/block_storage_log_level.py +22 -28
- openstackclient/volume/v3/block_storage_manage.py +1 -3
- openstackclient/volume/v3/service.py +105 -14
- openstackclient/volume/v3/volume.py +218 -58
- openstackclient/volume/v3/volume_attachment.py +3 -2
- openstackclient/volume/v3/volume_backup.py +31 -27
- openstackclient/volume/v3/volume_group.py +2 -1
- openstackclient/volume/v3/volume_group_snapshot.py +2 -1
- openstackclient/volume/v3/volume_snapshot.py +489 -13
- openstackclient/volume/v3/volume_type.py +10 -21
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/AUTHORS +11 -0
- python_openstackclient-8.1.0.dist-info/METADATA +264 -0
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/RECORD +238 -259
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/entry_points.txt +7 -47
- python_openstackclient-8.1.0.dist-info/pbr.json +1 -0
- openstackclient/tests/functional/volume/v1/__init__.py +0 -0
- openstackclient/tests/functional/volume/v1/common.py +0 -35
- openstackclient/tests/functional/volume/v1/test_qos.py +0 -100
- openstackclient/tests/functional/volume/v1/test_service.py +0 -76
- openstackclient/tests/functional/volume/v1/test_snapshot.py +0 -232
- openstackclient/tests/functional/volume/v1/test_transfer_request.py +0 -111
- openstackclient/tests/functional/volume/v1/test_volume.py +0 -228
- openstackclient/tests/functional/volume/v1/test_volume_type.py +0 -213
- openstackclient/tests/unit/volume/v1/__init__.py +0 -0
- openstackclient/tests/unit/volume/v1/fakes.py +0 -615
- openstackclient/tests/unit/volume/v1/test_qos_specs.py +0 -471
- openstackclient/tests/unit/volume/v1/test_service.py +0 -295
- openstackclient/tests/unit/volume/v1/test_transfer_request.py +0 -380
- openstackclient/tests/unit/volume/v1/test_type.py +0 -633
- openstackclient/tests/unit/volume/v1/test_volume.py +0 -1447
- openstackclient/tests/unit/volume/v1/test_volume_backup.py +0 -435
- openstackclient/volume/v1/__init__.py +0 -0
- openstackclient/volume/v1/qos_specs.py +0 -377
- openstackclient/volume/v1/service.py +0 -136
- openstackclient/volume/v1/volume.py +0 -734
- openstackclient/volume/v1/volume_backup.py +0 -302
- openstackclient/volume/v1/volume_snapshot.py +0 -433
- openstackclient/volume/v1/volume_transfer_request.py +0 -200
- openstackclient/volume/v1/volume_type.py +0 -520
- python_openstackclient-7.4.0.dist-info/METADATA +0 -172
- python_openstackclient-7.4.0.dist-info/pbr.json +0 -1
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/top_level.txt +0 -0
|
@@ -32,9 +32,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
|
|
|
32
32
|
self.hypervisors = list(
|
|
33
33
|
sdk_fakes.generate_fake_resources(_hypervisor.Hypervisor, count=2)
|
|
34
34
|
)
|
|
35
|
-
self.
|
|
36
|
-
self.hypervisors
|
|
37
|
-
)
|
|
35
|
+
self.compute_client.hypervisors.return_value = iter(self.hypervisors)
|
|
38
36
|
|
|
39
37
|
self.columns = (
|
|
40
38
|
"ID",
|
|
@@ -108,7 +106,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
|
|
|
108
106
|
# containing the data to be listed.
|
|
109
107
|
columns, data = self.cmd.take_action(parsed_args)
|
|
110
108
|
|
|
111
|
-
self.
|
|
109
|
+
self.compute_client.hypervisors.assert_called_with(details=True)
|
|
112
110
|
self.assertEqual(self.columns, columns)
|
|
113
111
|
self.assertEqual(self.data, tuple(data))
|
|
114
112
|
|
|
@@ -123,9 +121,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
|
|
|
123
121
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
124
122
|
|
|
125
123
|
# Fake the return value of search()
|
|
126
|
-
self.
|
|
127
|
-
self.hypervisors[0]
|
|
128
|
-
]
|
|
124
|
+
self.compute_client.hypervisors.return_value = [self.hypervisors[0]]
|
|
129
125
|
|
|
130
126
|
self.data = (
|
|
131
127
|
(
|
|
@@ -142,7 +138,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
|
|
|
142
138
|
# containing the data to be listed.
|
|
143
139
|
columns, data = self.cmd.take_action(parsed_args)
|
|
144
140
|
|
|
145
|
-
self.
|
|
141
|
+
self.compute_client.hypervisors.assert_called_with(
|
|
146
142
|
hypervisor_hostname_pattern=self.hypervisors[0].name, details=True
|
|
147
143
|
)
|
|
148
144
|
self.assertEqual(self.columns, columns)
|
|
@@ -159,9 +155,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
|
|
|
159
155
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
160
156
|
|
|
161
157
|
# Fake exception raised from search()
|
|
162
|
-
self.
|
|
163
|
-
None
|
|
164
|
-
)
|
|
158
|
+
self.compute_client.hypervisors.side_effect = exceptions.NotFound(None)
|
|
165
159
|
|
|
166
160
|
self.assertRaises(
|
|
167
161
|
exceptions.NotFound, self.cmd.take_action, parsed_args
|
|
@@ -205,7 +199,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
|
|
|
205
199
|
# containing the data to be listed.
|
|
206
200
|
columns, data = self.cmd.take_action(parsed_args)
|
|
207
201
|
|
|
208
|
-
self.
|
|
202
|
+
self.compute_client.hypervisors.assert_called_with(details=True)
|
|
209
203
|
self.assertEqual(self.columns_long, columns)
|
|
210
204
|
self.assertEqual(self.data_long, tuple(data))
|
|
211
205
|
|
|
@@ -223,7 +217,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
|
|
|
223
217
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
224
218
|
self.cmd.take_action(parsed_args)
|
|
225
219
|
|
|
226
|
-
self.
|
|
220
|
+
self.compute_client.hypervisors.assert_called_with(
|
|
227
221
|
limit=1, details=True
|
|
228
222
|
)
|
|
229
223
|
|
|
@@ -261,7 +255,7 @@ class TestHypervisorList(compute_fakes.TestComputev2):
|
|
|
261
255
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
262
256
|
self.cmd.take_action(parsed_args)
|
|
263
257
|
|
|
264
|
-
self.
|
|
258
|
+
self.compute_client.hypervisors.assert_called_with(
|
|
265
259
|
marker='test_hyp', details=True
|
|
266
260
|
)
|
|
267
261
|
|
|
@@ -303,10 +297,10 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
|
|
|
303
297
|
cpu_info={"aaa": "aaa"},
|
|
304
298
|
)
|
|
305
299
|
|
|
306
|
-
self.
|
|
307
|
-
self.
|
|
300
|
+
self.compute_client.find_hypervisor.return_value = self.hypervisor
|
|
301
|
+
self.compute_client.get_hypervisor.return_value = self.hypervisor
|
|
308
302
|
|
|
309
|
-
self.
|
|
303
|
+
self.compute_client.aggregates.return_value = []
|
|
310
304
|
|
|
311
305
|
uptime_info = {
|
|
312
306
|
'status': self.hypervisor.status,
|
|
@@ -315,9 +309,7 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
|
|
|
315
309
|
'hypervisor_hostname': self.hypervisor.name,
|
|
316
310
|
'uptime': uptime_string,
|
|
317
311
|
}
|
|
318
|
-
self.
|
|
319
|
-
uptime_info
|
|
320
|
-
)
|
|
312
|
+
self.compute_client.get_hypervisor_uptime.return_value = uptime_info
|
|
321
313
|
|
|
322
314
|
self.columns_v288 = (
|
|
323
315
|
'aggregates',
|
|
@@ -434,10 +426,10 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
|
|
|
434
426
|
self.assertEqual(self.columns_v288, columns)
|
|
435
427
|
self.assertCountEqual(self.data_v288, data)
|
|
436
428
|
|
|
437
|
-
self.
|
|
429
|
+
self.compute_client.find_hypervisor.assert_called_once_with(
|
|
438
430
|
self.hypervisor.name, ignore_missing=False, details=False
|
|
439
431
|
)
|
|
440
|
-
self.
|
|
432
|
+
self.compute_client.get_hypervisor.assert_called_once_with(
|
|
441
433
|
self.hypervisor.id
|
|
442
434
|
)
|
|
443
435
|
|
|
@@ -460,10 +452,10 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
|
|
|
460
452
|
self.assertEqual(self.columns, columns)
|
|
461
453
|
self.assertCountEqual(self.data, data)
|
|
462
454
|
|
|
463
|
-
self.
|
|
455
|
+
self.compute_client.find_hypervisor.assert_called_once_with(
|
|
464
456
|
self.hypervisor.name, ignore_missing=False, details=False
|
|
465
457
|
)
|
|
466
|
-
self.
|
|
458
|
+
self.compute_client.get_hypervisor.assert_called_once_with(
|
|
467
459
|
self.hypervisor.id
|
|
468
460
|
)
|
|
469
461
|
|
|
@@ -473,7 +465,7 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
|
|
|
473
465
|
# before microversion 2.28, nova returned a stringified version of this
|
|
474
466
|
# field
|
|
475
467
|
self.hypervisor.cpu_info = json.dumps(self.hypervisor.cpu_info)
|
|
476
|
-
self.
|
|
468
|
+
self.compute_client.find_hypervisor.return_value = self.hypervisor
|
|
477
469
|
|
|
478
470
|
arglist = [
|
|
479
471
|
self.hypervisor.name,
|
|
@@ -491,10 +483,10 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
|
|
|
491
483
|
self.assertEqual(self.columns, columns)
|
|
492
484
|
self.assertCountEqual(self.data, data)
|
|
493
485
|
|
|
494
|
-
self.
|
|
486
|
+
self.compute_client.find_hypervisor.assert_called_once_with(
|
|
495
487
|
self.hypervisor.name, ignore_missing=False, details=False
|
|
496
488
|
)
|
|
497
|
-
self.
|
|
489
|
+
self.compute_client.get_hypervisor.assert_called_once_with(
|
|
498
490
|
self.hypervisor.id
|
|
499
491
|
)
|
|
500
492
|
|
|
@@ -509,7 +501,7 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
|
|
|
509
501
|
]
|
|
510
502
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
511
503
|
|
|
512
|
-
self.
|
|
504
|
+
self.compute_client.get_hypervisor_uptime.side_effect = (
|
|
513
505
|
sdk_exceptions.HttpException(http_status=501)
|
|
514
506
|
)
|
|
515
507
|
|
|
@@ -570,9 +562,9 @@ class TestHypervisorShow(compute_fakes.TestComputev2):
|
|
|
570
562
|
self.assertEqual(expected_columns, columns)
|
|
571
563
|
self.assertCountEqual(expected_data, data)
|
|
572
564
|
|
|
573
|
-
self.
|
|
565
|
+
self.compute_client.find_hypervisor.assert_called_once_with(
|
|
574
566
|
self.hypervisor.name, ignore_missing=False, details=False
|
|
575
567
|
)
|
|
576
|
-
self.
|
|
568
|
+
self.compute_client.get_hypervisor.assert_called_once_with(
|
|
577
569
|
self.hypervisor.id
|
|
578
570
|
)
|
|
@@ -23,7 +23,7 @@ class TestHypervisorStats(compute_fakes.TestComputev2):
|
|
|
23
23
|
def setUp(self):
|
|
24
24
|
super().setUp()
|
|
25
25
|
|
|
26
|
-
self.
|
|
26
|
+
self.compute_client.get = mock.Mock()
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
# Not in fakes.py because hypervisor stats has been deprecated
|
|
@@ -67,7 +67,7 @@ class TestHypervisorStatsShow(TestHypervisorStats):
|
|
|
67
67
|
def setUp(self):
|
|
68
68
|
super().setUp()
|
|
69
69
|
|
|
70
|
-
self.
|
|
70
|
+
self.compute_client.get.return_value = fakes.FakeResponse(
|
|
71
71
|
data={'hypervisor_statistics': self._stats}
|
|
72
72
|
)
|
|
73
73
|
|
|
@@ -18,6 +18,7 @@ import uuid
|
|
|
18
18
|
|
|
19
19
|
from openstack.compute.v2 import keypair as _keypair
|
|
20
20
|
from openstack.identity.v3 import project as _project
|
|
21
|
+
from openstack.identity.v3 import role_assignment as _role_assignment
|
|
21
22
|
from openstack.identity.v3 import user as _user
|
|
22
23
|
from openstack.test import fakes as sdk_fakes
|
|
23
24
|
from osc_lib import exceptions
|
|
@@ -66,7 +67,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
66
67
|
# Get the command object to test
|
|
67
68
|
self.cmd = keypair.CreateKeypair(self.app, None)
|
|
68
69
|
|
|
69
|
-
self.
|
|
70
|
+
self.compute_client.create_keypair.return_value = self.keypair
|
|
70
71
|
|
|
71
72
|
@mock.patch.object(
|
|
72
73
|
keypair,
|
|
@@ -84,7 +85,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
84
85
|
|
|
85
86
|
columns, data = self.cmd.take_action(parsed_args)
|
|
86
87
|
|
|
87
|
-
self.
|
|
88
|
+
self.compute_client.create_keypair.assert_called_with(
|
|
88
89
|
name=self.keypair.name,
|
|
89
90
|
public_key=mock_generate.return_value.public_key,
|
|
90
91
|
)
|
|
@@ -124,7 +125,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
124
125
|
|
|
125
126
|
columns, data = self.cmd.take_action(parsed_args)
|
|
126
127
|
|
|
127
|
-
self.
|
|
128
|
+
self.compute_client.create_keypair.assert_called_with(
|
|
128
129
|
name=self.keypair.name,
|
|
129
130
|
public_key=self.keypair.public_key,
|
|
130
131
|
)
|
|
@@ -159,7 +160,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
159
160
|
|
|
160
161
|
columns, data = self.cmd.take_action(parsed_args)
|
|
161
162
|
|
|
162
|
-
self.
|
|
163
|
+
self.compute_client.create_keypair.assert_called_with(
|
|
163
164
|
name=self.keypair.name,
|
|
164
165
|
public_key=mock_generate.return_value.public_key,
|
|
165
166
|
)
|
|
@@ -176,7 +177,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
176
177
|
self.set_compute_api_version('2.2')
|
|
177
178
|
|
|
178
179
|
for key_type in ['x509', 'ssh']:
|
|
179
|
-
self.
|
|
180
|
+
self.compute_client.create_keypair.return_value = self.keypair
|
|
180
181
|
|
|
181
182
|
self.data = (
|
|
182
183
|
self.keypair.created_at,
|
|
@@ -209,7 +210,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
209
210
|
m_file.read.return_value = self.keypair.public_key
|
|
210
211
|
columns, data = self.cmd.take_action(parsed_args)
|
|
211
212
|
|
|
212
|
-
self.
|
|
213
|
+
self.compute_client.create_keypair.assert_called_with(
|
|
213
214
|
name=self.keypair.name,
|
|
214
215
|
public_key=self.keypair.public_key,
|
|
215
216
|
key_type=key_type,
|
|
@@ -272,7 +273,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
272
273
|
|
|
273
274
|
columns, data = self.cmd.take_action(parsed_args)
|
|
274
275
|
|
|
275
|
-
self.
|
|
276
|
+
self.compute_client.create_keypair.assert_called_with(
|
|
276
277
|
name=self.keypair.name,
|
|
277
278
|
user_id=self._user.id,
|
|
278
279
|
public_key=mock_generate.return_value.public_key,
|
|
@@ -324,7 +325,7 @@ class TestKeypairDelete(TestKeypair):
|
|
|
324
325
|
ret = self.cmd.take_action(parsed_args)
|
|
325
326
|
|
|
326
327
|
self.assertIsNone(ret)
|
|
327
|
-
self.
|
|
328
|
+
self.compute_client.delete_keypair.assert_called_with(
|
|
328
329
|
self.keypairs[0].name, ignore_missing=False
|
|
329
330
|
)
|
|
330
331
|
|
|
@@ -342,7 +343,7 @@ class TestKeypairDelete(TestKeypair):
|
|
|
342
343
|
calls = []
|
|
343
344
|
for k in self.keypairs:
|
|
344
345
|
calls.append(call(k.name, ignore_missing=False))
|
|
345
|
-
self.
|
|
346
|
+
self.compute_client.delete_keypair.assert_has_calls(calls)
|
|
346
347
|
self.assertIsNone(result)
|
|
347
348
|
|
|
348
349
|
def test_delete_multiple_keypairs_with_exception(self):
|
|
@@ -356,7 +357,7 @@ class TestKeypairDelete(TestKeypair):
|
|
|
356
357
|
|
|
357
358
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
358
359
|
|
|
359
|
-
self.
|
|
360
|
+
self.compute_client.delete_keypair.side_effect = [
|
|
360
361
|
None,
|
|
361
362
|
exceptions.CommandError,
|
|
362
363
|
]
|
|
@@ -369,7 +370,7 @@ class TestKeypairDelete(TestKeypair):
|
|
|
369
370
|
calls = []
|
|
370
371
|
for k in arglist:
|
|
371
372
|
calls.append(call(k, ignore_missing=False))
|
|
372
|
-
self.
|
|
373
|
+
self.compute_client.delete_keypair.assert_has_calls(calls)
|
|
373
374
|
|
|
374
375
|
def test_keypair_delete_with_user(self):
|
|
375
376
|
self.set_compute_api_version('2.10')
|
|
@@ -384,7 +385,7 @@ class TestKeypairDelete(TestKeypair):
|
|
|
384
385
|
ret = self.cmd.take_action(parsed_args)
|
|
385
386
|
|
|
386
387
|
self.assertIsNone(ret)
|
|
387
|
-
self.
|
|
388
|
+
self.compute_client.delete_keypair.assert_called_with(
|
|
388
389
|
self.keypairs[0].name,
|
|
389
390
|
user_id=self._user.id,
|
|
390
391
|
ignore_missing=False,
|
|
@@ -415,7 +416,7 @@ class TestKeypairList(TestKeypair):
|
|
|
415
416
|
self.keypairs = list(
|
|
416
417
|
sdk_fakes.generate_fake_resources(_keypair.Keypair, count=1)
|
|
417
418
|
)
|
|
418
|
-
self.
|
|
419
|
+
self.compute_client.keypairs.return_value = iter(self.keypairs)
|
|
419
420
|
|
|
420
421
|
# Get the command object to test
|
|
421
422
|
self.cmd = keypair.ListKeypair(self.app, None)
|
|
@@ -435,7 +436,7 @@ class TestKeypairList(TestKeypair):
|
|
|
435
436
|
|
|
436
437
|
# Set expected values
|
|
437
438
|
|
|
438
|
-
self.
|
|
439
|
+
self.compute_client.keypairs.assert_called_with()
|
|
439
440
|
|
|
440
441
|
self.assertEqual(('Name', 'Fingerprint'), columns)
|
|
441
442
|
self.assertEqual(
|
|
@@ -458,7 +459,7 @@ class TestKeypairList(TestKeypair):
|
|
|
458
459
|
|
|
459
460
|
# Set expected values
|
|
460
461
|
|
|
461
|
-
self.
|
|
462
|
+
self.compute_client.keypairs.assert_called_with()
|
|
462
463
|
|
|
463
464
|
self.assertEqual(('Name', 'Fingerprint', 'Type'), columns)
|
|
464
465
|
self.assertEqual(
|
|
@@ -491,7 +492,7 @@ class TestKeypairList(TestKeypair):
|
|
|
491
492
|
columns, data = self.cmd.take_action(parsed_args)
|
|
492
493
|
|
|
493
494
|
users_mock.get.assert_called_with(self._user.name)
|
|
494
|
-
self.
|
|
495
|
+
self.compute_client.keypairs.assert_called_with(
|
|
495
496
|
user_id=self._user.id,
|
|
496
497
|
)
|
|
497
498
|
|
|
@@ -529,13 +530,17 @@ class TestKeypairList(TestKeypair):
|
|
|
529
530
|
def test_keypair_list_with_project(self):
|
|
530
531
|
self.set_compute_api_version('2.35')
|
|
531
532
|
|
|
532
|
-
projects_mock = self.identity_client.
|
|
533
|
+
projects_mock = self.identity_client.projects
|
|
533
534
|
projects_mock.reset_mock()
|
|
534
535
|
projects_mock.get.return_value = self._project
|
|
535
536
|
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
537
|
+
role_assignments_mock = self.identity_sdk_client.role_assignments
|
|
538
|
+
role_assignments_mock.reset_mock()
|
|
539
|
+
assignment = sdk_fakes.generate_fake_resource(
|
|
540
|
+
_role_assignment.RoleAssignment
|
|
541
|
+
)
|
|
542
|
+
assignment.user = self._user
|
|
543
|
+
role_assignments_mock.return_value = [assignment]
|
|
539
544
|
|
|
540
545
|
arglist = ['--project', self._project.name]
|
|
541
546
|
verifylist = [('project', self._project.name)]
|
|
@@ -544,8 +549,10 @@ class TestKeypairList(TestKeypair):
|
|
|
544
549
|
columns, data = self.cmd.take_action(parsed_args)
|
|
545
550
|
|
|
546
551
|
projects_mock.get.assert_called_with(self._project.name)
|
|
547
|
-
|
|
548
|
-
|
|
552
|
+
role_assignments_mock.assert_called_with(
|
|
553
|
+
scope_project_id=self._project.id
|
|
554
|
+
)
|
|
555
|
+
self.compute_client.keypairs.assert_called_with(
|
|
549
556
|
user_id=self._user.id,
|
|
550
557
|
)
|
|
551
558
|
|
|
@@ -605,7 +612,7 @@ class TestKeypairList(TestKeypair):
|
|
|
605
612
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
606
613
|
self.cmd.take_action(parsed_args)
|
|
607
614
|
|
|
608
|
-
self.
|
|
615
|
+
self.compute_client.keypairs.assert_called_with(limit=1)
|
|
609
616
|
|
|
610
617
|
def test_keypair_list_with_limit_pre_v235(self):
|
|
611
618
|
self.set_compute_api_version('2.34')
|
|
@@ -641,7 +648,7 @@ class TestKeypairList(TestKeypair):
|
|
|
641
648
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
642
649
|
self.cmd.take_action(parsed_args)
|
|
643
650
|
|
|
644
|
-
self.
|
|
651
|
+
self.compute_client.keypairs.assert_called_with(marker='test_kp')
|
|
645
652
|
|
|
646
653
|
def test_keypair_list_with_marker_pre_v235(self):
|
|
647
654
|
self.set_compute_api_version('2.34')
|
|
@@ -696,7 +703,7 @@ class TestKeypairShow(TestKeypair):
|
|
|
696
703
|
|
|
697
704
|
def test_keypair_show(self):
|
|
698
705
|
self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
|
|
699
|
-
self.
|
|
706
|
+
self.compute_client.find_keypair.return_value = self.keypair
|
|
700
707
|
|
|
701
708
|
self.data = (
|
|
702
709
|
self.keypair.created_at,
|
|
@@ -715,7 +722,7 @@ class TestKeypairShow(TestKeypair):
|
|
|
715
722
|
|
|
716
723
|
columns, data = self.cmd.take_action(parsed_args)
|
|
717
724
|
|
|
718
|
-
self.
|
|
725
|
+
self.compute_client.find_keypair.assert_called_with(
|
|
719
726
|
self.keypair.name, ignore_missing=False
|
|
720
727
|
)
|
|
721
728
|
|
|
@@ -724,7 +731,7 @@ class TestKeypairShow(TestKeypair):
|
|
|
724
731
|
|
|
725
732
|
def test_keypair_show_public(self):
|
|
726
733
|
self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
|
|
727
|
-
self.
|
|
734
|
+
self.compute_client.find_keypair.return_value = self.keypair
|
|
728
735
|
|
|
729
736
|
arglist = ['--public-key', self.keypair.name]
|
|
730
737
|
verifylist = [('public_key', True), ('name', self.keypair.name)]
|
|
@@ -740,7 +747,7 @@ class TestKeypairShow(TestKeypair):
|
|
|
740
747
|
self.set_compute_api_version('2.10')
|
|
741
748
|
|
|
742
749
|
self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
|
|
743
|
-
self.
|
|
750
|
+
self.compute_client.find_keypair.return_value = self.keypair
|
|
744
751
|
|
|
745
752
|
self.data = (
|
|
746
753
|
self.keypair.created_at,
|
|
@@ -767,7 +774,7 @@ class TestKeypairShow(TestKeypair):
|
|
|
767
774
|
columns, data = self.cmd.take_action(parsed_args)
|
|
768
775
|
|
|
769
776
|
self.users_mock.get.assert_called_with(self._user.name)
|
|
770
|
-
self.
|
|
777
|
+
self.compute_client.find_keypair.assert_called_with(
|
|
771
778
|
self.keypair.name,
|
|
772
779
|
ignore_missing=False,
|
|
773
780
|
user_id=self._user.id,
|