python-openstackclient 7.3.1__py3-none-any.whl → 8.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/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 +2 -5
- openstackclient/compute/v2/agent.py +5 -5
- openstackclient/compute/v2/aggregate.py +17 -15
- openstackclient/compute/v2/console.py +3 -4
- 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 +8 -10
- openstackclient/compute/v2/server.py +70 -112
- openstackclient/compute/v2/server_backup.py +1 -1
- openstackclient/compute/v2/server_event.py +7 -16
- 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 +16 -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/consumer.py +4 -3
- openstackclient/identity/v3/credential.py +8 -9
- openstackclient/identity/v3/domain.py +1 -1
- 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 +3 -4
- 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 +6 -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 +9 -6
- openstackclient/image/client.py +2 -5
- openstackclient/image/v1/image.py +11 -15
- openstackclient/image/v2/cache.py +2 -4
- openstackclient/image/v2/image.py +30 -37
- 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 -10
- 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 +14 -21
- 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 +4 -5
- 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 +42 -31
- openstackclient/network/v2/router.py +55 -41
- openstackclient/network/v2/security_group.py +8 -15
- openstackclient/network/v2/security_group_rule.py +9 -10
- 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 +2 -2
- openstackclient/tests/functional/common/test_quota.py +3 -1
- openstackclient/tests/functional/compute/v2/common.py +12 -6
- 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 +4 -10
- 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 +16 -16
- openstackclient/tests/unit/compute/v2/test_flavor.py +71 -71
- 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 +24 -24
- openstackclient/tests/unit/compute/v2/test_server.py +524 -560
- openstackclient/tests/unit/compute/v2/test_server_backup.py +5 -7
- openstackclient/tests/unit/compute/v2/test_server_event.py +16 -18
- openstackclient/tests/unit/compute/v2/test_server_group.py +25 -31
- openstackclient/tests/unit/compute/v2/test_server_image.py +6 -8
- openstackclient/tests/unit/compute/v2/test_server_migration.py +37 -37
- 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 +1 -1
- openstackclient/tests/unit/identity/v3/test_credential.py +4 -4
- openstackclient/tests/unit/identity/v3/test_endpoint.py +167 -172
- openstackclient/tests/unit/identity/v3/test_mappings.py +2 -2
- openstackclient/tests/unit/identity/v3/test_trust.py +5 -2
- openstackclient/tests/unit/identity/v3/test_user.py +16 -0
- openstackclient/tests/unit/image/v1/fakes.py +2 -2
- openstackclient/tests/unit/image/v2/test_image.py +39 -1
- openstackclient/tests/unit/integ/cli/test_shell.py +1 -2
- openstackclient/tests/unit/network/test_common.py +2 -2
- openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +8 -14
- openstackclient/tests/unit/network/v2/test_floating_ip_network.py +49 -35
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +1 -1
- openstackclient/tests/unit/network/v2/test_network_compute.py +11 -11
- openstackclient/tests/unit/network/v2/test_network_trunk.py +2 -2
- openstackclient/tests/unit/network/v2/test_port.py +33 -5
- openstackclient/tests/unit/network/v2/test_router.py +120 -7
- openstackclient/tests/unit/network/v2/test_security_group_compute.py +11 -19
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +14 -14
- openstackclient/tests/unit/object/v1/test_object_all.py +4 -3
- openstackclient/tests/unit/test_shell.py +16 -13
- openstackclient/tests/unit/volume/v2/test_volume.py +1 -1
- 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_volume.py +1 -1
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +3 -3
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +1 -2
- 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/volume.py +8 -16
- openstackclient/volume/v2/volume_backup.py +6 -7
- openstackclient/volume/v2/volume_snapshot.py +8 -9
- 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_manage.py +1 -3
- openstackclient/volume/v3/volume.py +18 -19
- openstackclient/volume/v3/volume_attachment.py +3 -2
- openstackclient/volume/v3/volume_backup.py +7 -8
- openstackclient/volume/v3/volume_group.py +2 -1
- openstackclient/volume/v3/volume_group_snapshot.py +2 -1
- openstackclient/volume/v3/volume_snapshot.py +4 -3
- openstackclient/volume/v3/volume_type.py +10 -21
- {python_openstackclient-7.3.1.dist-info → python_openstackclient-8.0.0.dist-info}/AUTHORS +4 -0
- {python_openstackclient-7.3.1.dist-info → python_openstackclient-8.0.0.dist-info}/METADATA +7 -13
- {python_openstackclient-7.3.1.dist-info → python_openstackclient-8.0.0.dist-info}/RECORD +210 -233
- {python_openstackclient-7.3.1.dist-info → python_openstackclient-8.0.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-7.3.1.dist-info → python_openstackclient-8.0.0.dist-info}/entry_points.txt +0 -41
- python_openstackclient-8.0.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.3.1.dist-info/pbr.json +0 -1
- {python_openstackclient-7.3.1.dist-info → python_openstackclient-8.0.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-7.3.1.dist-info → python_openstackclient-8.0.0.dist-info}/top_level.txt +0 -0
|
@@ -76,7 +76,7 @@ class TestServer(compute_fakes.TestComputev2):
|
|
|
76
76
|
)
|
|
77
77
|
|
|
78
78
|
# This is the return value for compute_client.find_server()
|
|
79
|
-
self.
|
|
79
|
+
self.compute_client.find_server.side_effect = servers
|
|
80
80
|
|
|
81
81
|
return servers
|
|
82
82
|
|
|
@@ -132,9 +132,7 @@ class TestServerAddFixedIP(TestServer):
|
|
|
132
132
|
servers = self.setup_sdk_servers_mock(count=1)
|
|
133
133
|
network = compute_fakes.create_one_network()
|
|
134
134
|
interface = compute_fakes.create_one_server_interface()
|
|
135
|
-
self.
|
|
136
|
-
interface
|
|
137
|
-
)
|
|
135
|
+
self.compute_client.create_server_interface.return_value = interface
|
|
138
136
|
|
|
139
137
|
with mock.patch.object(
|
|
140
138
|
self.app.client_manager,
|
|
@@ -169,7 +167,7 @@ class TestServerAddFixedIP(TestServer):
|
|
|
169
167
|
|
|
170
168
|
self.assertEqual(expected_columns, columns)
|
|
171
169
|
self.assertEqual(expected_data, tuple(data))
|
|
172
|
-
self.
|
|
170
|
+
self.compute_client.create_server_interface.assert_called_once_with(
|
|
173
171
|
servers[0].id, net_id=network['id']
|
|
174
172
|
)
|
|
175
173
|
|
|
@@ -179,9 +177,7 @@ class TestServerAddFixedIP(TestServer):
|
|
|
179
177
|
servers = self.setup_sdk_servers_mock(count=1)
|
|
180
178
|
network = compute_fakes.create_one_network()
|
|
181
179
|
interface = compute_fakes.create_one_server_interface()
|
|
182
|
-
self.
|
|
183
|
-
interface
|
|
184
|
-
)
|
|
180
|
+
self.compute_client.create_server_interface.return_value = interface
|
|
185
181
|
|
|
186
182
|
with mock.patch.object(
|
|
187
183
|
self.app.client_manager,
|
|
@@ -222,7 +218,7 @@ class TestServerAddFixedIP(TestServer):
|
|
|
222
218
|
|
|
223
219
|
self.assertEqual(expected_columns, columns)
|
|
224
220
|
self.assertEqual(expected_data, tuple(data))
|
|
225
|
-
self.
|
|
221
|
+
self.compute_client.create_server_interface.assert_called_once_with(
|
|
226
222
|
servers[0].id,
|
|
227
223
|
net_id=network['id'],
|
|
228
224
|
fixed_ips=[{'ip_address': '5.6.7.8'}],
|
|
@@ -234,9 +230,7 @@ class TestServerAddFixedIP(TestServer):
|
|
|
234
230
|
servers = self.setup_sdk_servers_mock(count=1)
|
|
235
231
|
network = compute_fakes.create_one_network()
|
|
236
232
|
interface = compute_fakes.create_one_server_interface()
|
|
237
|
-
self.
|
|
238
|
-
interface
|
|
239
|
-
)
|
|
233
|
+
self.compute_client.create_server_interface.return_value = interface
|
|
240
234
|
|
|
241
235
|
with mock.patch.object(
|
|
242
236
|
self.app.client_manager,
|
|
@@ -282,7 +276,7 @@ class TestServerAddFixedIP(TestServer):
|
|
|
282
276
|
|
|
283
277
|
self.assertEqual(expected_columns, columns)
|
|
284
278
|
self.assertEqual(expected_data, tuple(data))
|
|
285
|
-
self.
|
|
279
|
+
self.compute_client.create_server_interface.assert_called_once_with(
|
|
286
280
|
servers[0].id,
|
|
287
281
|
net_id=network['id'],
|
|
288
282
|
fixed_ips=[{'ip_address': '5.6.7.8'}],
|
|
@@ -295,9 +289,7 @@ class TestServerAddFixedIP(TestServer):
|
|
|
295
289
|
servers = self.setup_sdk_servers_mock(count=1)
|
|
296
290
|
network = compute_fakes.create_one_network()
|
|
297
291
|
interface = compute_fakes.create_one_server_interface()
|
|
298
|
-
self.
|
|
299
|
-
interface
|
|
300
|
-
)
|
|
292
|
+
self.compute_client.create_server_interface.return_value = interface
|
|
301
293
|
|
|
302
294
|
with mock.patch.object(
|
|
303
295
|
self.app.client_manager,
|
|
@@ -343,7 +335,7 @@ class TestServerAddFixedIP(TestServer):
|
|
|
343
335
|
|
|
344
336
|
self.assertEqual(expected_columns, columns)
|
|
345
337
|
self.assertEqual(expected_data, tuple(data))
|
|
346
|
-
self.
|
|
338
|
+
self.compute_client.create_server_interface.assert_called_once_with(
|
|
347
339
|
servers[0].id,
|
|
348
340
|
net_id=network['id'],
|
|
349
341
|
fixed_ips=[{'ip_address': '5.6.7.8'}],
|
|
@@ -357,7 +349,7 @@ class TestServerAddFloatingIPCompute(compute_fakes.TestComputev2):
|
|
|
357
349
|
|
|
358
350
|
self.app.client_manager.network_endpoint_enabled = False
|
|
359
351
|
self.server = compute_fakes.create_one_sdk_server()
|
|
360
|
-
self.
|
|
352
|
+
self.compute_client.find_server.return_value = self.server
|
|
361
353
|
|
|
362
354
|
self.cmd = server.AddFloatingIP(self.app, None)
|
|
363
355
|
|
|
@@ -374,10 +366,10 @@ class TestServerAddFloatingIPCompute(compute_fakes.TestComputev2):
|
|
|
374
366
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
375
367
|
self.cmd.take_action(parsed_args)
|
|
376
368
|
|
|
377
|
-
self.
|
|
369
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
378
370
|
self.server.name, ignore_missing=False
|
|
379
371
|
)
|
|
380
|
-
self.
|
|
372
|
+
self.compute_client.add_floating_ip_to_server.assert_called_once_with(
|
|
381
373
|
self.server, '1.2.3.4', fixed_address=None
|
|
382
374
|
)
|
|
383
375
|
|
|
@@ -397,10 +389,10 @@ class TestServerAddFloatingIPCompute(compute_fakes.TestComputev2):
|
|
|
397
389
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
398
390
|
self.cmd.take_action(parsed_args)
|
|
399
391
|
|
|
400
|
-
self.
|
|
392
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
401
393
|
self.server.name, ignore_missing=False
|
|
402
394
|
)
|
|
403
|
-
self.
|
|
395
|
+
self.compute_client.add_floating_ip_to_server.assert_called_once_with(
|
|
404
396
|
self.server, '1.2.3.4', fixed_address='5.6.7.8'
|
|
405
397
|
)
|
|
406
398
|
|
|
@@ -413,7 +405,7 @@ class TestServerAddFloatingIPNetwork(
|
|
|
413
405
|
super().setUp()
|
|
414
406
|
|
|
415
407
|
self.server = compute_fakes.create_one_sdk_server()
|
|
416
|
-
self.
|
|
408
|
+
self.compute_client.find_server.return_value = self.server
|
|
417
409
|
|
|
418
410
|
self.network_client.update_ip = mock.Mock(return_value=None)
|
|
419
411
|
|
|
@@ -637,7 +629,7 @@ class TestServerAddPort(TestServer):
|
|
|
637
629
|
|
|
638
630
|
result = self.cmd.take_action(parsed_args)
|
|
639
631
|
|
|
640
|
-
self.
|
|
632
|
+
self.compute_client.create_server_interface.assert_called_once_with(
|
|
641
633
|
servers[0], port_id=port_id
|
|
642
634
|
)
|
|
643
635
|
self.assertIsNone(result)
|
|
@@ -674,7 +666,7 @@ class TestServerAddPort(TestServer):
|
|
|
674
666
|
result = self.cmd.take_action(parsed_args)
|
|
675
667
|
self.assertIsNone(result)
|
|
676
668
|
|
|
677
|
-
self.
|
|
669
|
+
self.compute_client.create_server_interface.assert_called_once_with(
|
|
678
670
|
servers[0], port_id='fake-port', tag='tag1'
|
|
679
671
|
)
|
|
680
672
|
|
|
@@ -709,7 +701,7 @@ class TestServerVolume(TestServer):
|
|
|
709
701
|
super().setUp()
|
|
710
702
|
|
|
711
703
|
self.server = compute_fakes.create_one_sdk_server()
|
|
712
|
-
self.
|
|
704
|
+
self.compute_client.find_server.return_value = self.server
|
|
713
705
|
|
|
714
706
|
self.volume = volume_fakes.create_one_sdk_volume()
|
|
715
707
|
self.volume_sdk_client.find_volume.return_value = self.volume
|
|
@@ -722,7 +714,7 @@ class TestServerVolume(TestServer):
|
|
|
722
714
|
attrs=attrs
|
|
723
715
|
)
|
|
724
716
|
|
|
725
|
-
self.
|
|
717
|
+
self.compute_client.create_volume_attachment.return_value = (
|
|
726
718
|
self.volume_attachment
|
|
727
719
|
)
|
|
728
720
|
|
|
@@ -762,7 +754,7 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
762
754
|
|
|
763
755
|
self.assertEqual(expected_columns, columns)
|
|
764
756
|
self.assertEqual(expected_data, data)
|
|
765
|
-
self.
|
|
757
|
+
self.compute_client.create_volume_attachment.assert_called_once_with(
|
|
766
758
|
self.server, volumeId=self.volume.id, device='/dev/sdb'
|
|
767
759
|
)
|
|
768
760
|
|
|
@@ -799,7 +791,7 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
799
791
|
|
|
800
792
|
self.assertEqual(expected_columns, columns)
|
|
801
793
|
self.assertEqual(expected_data, data)
|
|
802
|
-
self.
|
|
794
|
+
self.compute_client.create_volume_attachment.assert_called_once_with(
|
|
803
795
|
self.server,
|
|
804
796
|
volumeId=self.volume.id,
|
|
805
797
|
device='/dev/sdb',
|
|
@@ -869,7 +861,7 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
869
861
|
columns, data = self.cmd.take_action(parsed_args)
|
|
870
862
|
self.assertEqual(expected_columns, columns)
|
|
871
863
|
self.assertEqual(expected_data, data)
|
|
872
|
-
self.
|
|
864
|
+
self.compute_client.create_volume_attachment.assert_called_once_with(
|
|
873
865
|
self.server,
|
|
874
866
|
volumeId=self.volume.id,
|
|
875
867
|
device='/dev/sdb',
|
|
@@ -918,7 +910,7 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
918
910
|
|
|
919
911
|
self.assertEqual(expected_columns, columns)
|
|
920
912
|
self.assertEqual(expected_data, data)
|
|
921
|
-
self.
|
|
913
|
+
self.compute_client.create_volume_attachment.assert_called_once_with(
|
|
922
914
|
self.server,
|
|
923
915
|
volumeId=self.volume.id,
|
|
924
916
|
device='/dev/sdb',
|
|
@@ -1031,7 +1023,7 @@ class TestServerRemoveVolume(TestServerVolume):
|
|
|
1031
1023
|
result = self.cmd.take_action(parsed_args)
|
|
1032
1024
|
|
|
1033
1025
|
self.assertIsNone(result)
|
|
1034
|
-
self.
|
|
1026
|
+
self.compute_client.delete_volume_attachment.assert_called_once_with(
|
|
1035
1027
|
self.volume,
|
|
1036
1028
|
self.server,
|
|
1037
1029
|
ignore_missing=False,
|
|
@@ -1061,7 +1053,7 @@ class TestServerAddNetwork(TestServer):
|
|
|
1061
1053
|
|
|
1062
1054
|
result = self.cmd.take_action(parsed_args)
|
|
1063
1055
|
|
|
1064
|
-
self.
|
|
1056
|
+
self.compute_client.create_server_interface.assert_called_once_with(
|
|
1065
1057
|
servers[0], net_id=net_id
|
|
1066
1058
|
)
|
|
1067
1059
|
self.assertIsNone(result)
|
|
@@ -1099,7 +1091,7 @@ class TestServerAddNetwork(TestServer):
|
|
|
1099
1091
|
result = self.cmd.take_action(parsed_args)
|
|
1100
1092
|
self.assertIsNone(result)
|
|
1101
1093
|
|
|
1102
|
-
self.
|
|
1094
|
+
self.compute_client.create_server_interface.assert_called_once_with(
|
|
1103
1095
|
servers[0], net_id='fake-network', tag='tag1'
|
|
1104
1096
|
)
|
|
1105
1097
|
|
|
@@ -1135,10 +1127,8 @@ class TestServerAddSecurityGroup(compute_fakes.TestComputev2):
|
|
|
1135
1127
|
super().setUp()
|
|
1136
1128
|
|
|
1137
1129
|
self.server = compute_fakes.create_one_sdk_server()
|
|
1138
|
-
self.
|
|
1139
|
-
self.
|
|
1140
|
-
None
|
|
1141
|
-
)
|
|
1130
|
+
self.compute_client.find_server.return_value = self.server
|
|
1131
|
+
self.compute_client.add_security_group_to_server.return_value = None
|
|
1142
1132
|
|
|
1143
1133
|
# Get the command object to test
|
|
1144
1134
|
self.cmd = server.AddServerSecurityGroup(self.app, None)
|
|
@@ -1163,14 +1153,14 @@ class TestServerAddSecurityGroup(compute_fakes.TestComputev2):
|
|
|
1163
1153
|
) as mock_find_nova_net_sg:
|
|
1164
1154
|
result = self.cmd.take_action(parsed_args)
|
|
1165
1155
|
|
|
1166
|
-
self.
|
|
1156
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
1167
1157
|
self.server.id, ignore_missing=False
|
|
1168
1158
|
)
|
|
1169
|
-
self.
|
|
1159
|
+
self.compute_client.add_security_group_to_server.assert_called_once_with(
|
|
1170
1160
|
self.server, {'name': 'fake_sg'}
|
|
1171
1161
|
)
|
|
1172
1162
|
mock_find_nova_net_sg.assert_called_once_with(
|
|
1173
|
-
self.
|
|
1163
|
+
self.compute_client, 'fake_sg'
|
|
1174
1164
|
)
|
|
1175
1165
|
self.assertIsNone(result)
|
|
1176
1166
|
|
|
@@ -1184,10 +1174,10 @@ class TestServerAddSecurityGroup(compute_fakes.TestComputev2):
|
|
|
1184
1174
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
1185
1175
|
result = self.cmd.take_action(parsed_args)
|
|
1186
1176
|
|
|
1187
|
-
self.
|
|
1177
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
1188
1178
|
self.server.id, ignore_missing=False
|
|
1189
1179
|
)
|
|
1190
|
-
self.
|
|
1180
|
+
self.compute_client.add_security_group_to_server.assert_called_once_with(
|
|
1191
1181
|
self.server, {'name': 'fake_sg'}
|
|
1192
1182
|
)
|
|
1193
1183
|
self.assertIsNone(result)
|
|
@@ -1297,7 +1287,7 @@ class TestServerCreate(TestServer):
|
|
|
1297
1287
|
self.image_client.get_image.return_value = self.image
|
|
1298
1288
|
|
|
1299
1289
|
self.flavor = compute_fakes.create_one_flavor()
|
|
1300
|
-
self.
|
|
1290
|
+
self.compute_client.find_flavor.return_value = self.flavor
|
|
1301
1291
|
|
|
1302
1292
|
attrs = {
|
|
1303
1293
|
'addresses': {},
|
|
@@ -1307,8 +1297,8 @@ class TestServerCreate(TestServer):
|
|
|
1307
1297
|
}
|
|
1308
1298
|
self.server = compute_fakes.create_one_sdk_server(attrs=attrs)
|
|
1309
1299
|
|
|
1310
|
-
self.
|
|
1311
|
-
self.
|
|
1300
|
+
self.compute_client.create_server.return_value = self.server
|
|
1301
|
+
self.compute_client.get_server.return_value = self.server
|
|
1312
1302
|
|
|
1313
1303
|
self.volume = volume_fakes.create_one_volume()
|
|
1314
1304
|
self.snapshot = volume_fakes.create_one_snapshot()
|
|
@@ -1350,13 +1340,13 @@ class TestServerCreate(TestServer):
|
|
|
1350
1340
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
1351
1341
|
columns, data = self.cmd.take_action(parsed_args)
|
|
1352
1342
|
|
|
1353
|
-
self.
|
|
1343
|
+
self.compute_client.find_flavor.assert_has_calls(
|
|
1354
1344
|
[mock.call(self.flavor.id, ignore_missing=False)] * 2
|
|
1355
1345
|
)
|
|
1356
1346
|
self.image_client.find_image.assert_called_once_with(
|
|
1357
1347
|
self.image.id, ignore_missing=False
|
|
1358
1348
|
)
|
|
1359
|
-
self.
|
|
1349
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
1360
1350
|
name=self.server.name,
|
|
1361
1351
|
image_id=self.image.id,
|
|
1362
1352
|
flavor_id=self.flavor.id,
|
|
@@ -1380,7 +1370,7 @@ class TestServerCreate(TestServer):
|
|
|
1380
1370
|
server_group = sdk_fakes.generate_fake_resource(
|
|
1381
1371
|
_server_group.ServerGroup
|
|
1382
1372
|
)
|
|
1383
|
-
self.
|
|
1373
|
+
self.compute_client.find_server_group.return_value = server_group
|
|
1384
1374
|
|
|
1385
1375
|
security_group = network_fakes.create_one_security_group()
|
|
1386
1376
|
self.network_client.find_security_group.return_value = security_group
|
|
@@ -1423,7 +1413,7 @@ class TestServerCreate(TestServer):
|
|
|
1423
1413
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
1424
1414
|
columns, data = self.cmd.take_action(parsed_args)
|
|
1425
1415
|
|
|
1426
|
-
self.
|
|
1416
|
+
self.compute_client.find_flavor.assert_has_calls(
|
|
1427
1417
|
[mock.call(self.flavor.id, ignore_missing=False)] * 2
|
|
1428
1418
|
)
|
|
1429
1419
|
self.network_client.find_security_group.assert_called_once_with(
|
|
@@ -1432,10 +1422,10 @@ class TestServerCreate(TestServer):
|
|
|
1432
1422
|
self.image_client.find_image.assert_called_once_with(
|
|
1433
1423
|
self.image.id, ignore_missing=False
|
|
1434
1424
|
)
|
|
1435
|
-
self.
|
|
1425
|
+
self.compute_client.find_server_group.assert_called_once_with(
|
|
1436
1426
|
server_group.id, ignore_missing=False
|
|
1437
1427
|
)
|
|
1438
|
-
self.
|
|
1428
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
1439
1429
|
name=self.server.name,
|
|
1440
1430
|
image_id=self.image.id,
|
|
1441
1431
|
flavor_id=self.flavor.id,
|
|
@@ -1525,8 +1515,8 @@ class TestServerCreate(TestServer):
|
|
|
1525
1515
|
) as mock_find:
|
|
1526
1516
|
columns, data = self.cmd.take_action(parsed_args)
|
|
1527
1517
|
|
|
1528
|
-
mock_find.assert_called_once_with(self.
|
|
1529
|
-
self.
|
|
1518
|
+
mock_find.assert_called_once_with(self.compute_client, sg_name)
|
|
1519
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
1530
1520
|
name=self.server.name,
|
|
1531
1521
|
image_id=self.image.id,
|
|
1532
1522
|
flavor_id=self.flavor.id,
|
|
@@ -1573,14 +1563,14 @@ class TestServerCreate(TestServer):
|
|
|
1573
1563
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
1574
1564
|
columns, data = self.cmd.take_action(parsed_args)
|
|
1575
1565
|
|
|
1576
|
-
self.
|
|
1566
|
+
self.compute_client.find_flavor.assert_has_calls(
|
|
1577
1567
|
[mock.call(self.flavor.id, ignore_missing=False)] * 2
|
|
1578
1568
|
)
|
|
1579
1569
|
self.network_client.find_security_group.assert_not_called()
|
|
1580
1570
|
self.image_client.find_image.assert_called_once_with(
|
|
1581
1571
|
self.image.id, ignore_missing=False
|
|
1582
1572
|
)
|
|
1583
|
-
self.
|
|
1573
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
1584
1574
|
name=self.server.name,
|
|
1585
1575
|
image_id=self.image.id,
|
|
1586
1576
|
flavor_id=self.flavor.id,
|
|
@@ -1702,7 +1692,7 @@ class TestServerCreate(TestServer):
|
|
|
1702
1692
|
mock.call(port_port2.id, ignore_missing=False),
|
|
1703
1693
|
]
|
|
1704
1694
|
)
|
|
1705
|
-
self.
|
|
1695
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
1706
1696
|
name=self.server.name,
|
|
1707
1697
|
image_id=self.image.id,
|
|
1708
1698
|
flavor_id=self.flavor.id,
|
|
@@ -1778,7 +1768,7 @@ class TestServerCreate(TestServer):
|
|
|
1778
1768
|
self.network_client.find_network.assert_called_once_with(
|
|
1779
1769
|
network.id, ignore_missing=False
|
|
1780
1770
|
)
|
|
1781
|
-
self.
|
|
1771
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
1782
1772
|
name=self.server.name,
|
|
1783
1773
|
image_id=self.image.id,
|
|
1784
1774
|
flavor_id=self.flavor.id,
|
|
@@ -1839,7 +1829,7 @@ class TestServerCreate(TestServer):
|
|
|
1839
1829
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
1840
1830
|
)
|
|
1841
1831
|
self.network_client.find_network.assert_not_called()
|
|
1842
|
-
self.
|
|
1832
|
+
self.compute_client.create_server.assert_not_called()
|
|
1843
1833
|
|
|
1844
1834
|
def _test_server_create_with_auto_network(self, arglist):
|
|
1845
1835
|
# requires API microversion 2.37 or later
|
|
@@ -1857,7 +1847,7 @@ class TestServerCreate(TestServer):
|
|
|
1857
1847
|
columns, data = self.cmd.take_action(parsed_args)
|
|
1858
1848
|
|
|
1859
1849
|
self.network_client.find_network.assert_not_called()
|
|
1860
|
-
self.
|
|
1850
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
1861
1851
|
name=self.server.name,
|
|
1862
1852
|
image_id=self.image.id,
|
|
1863
1853
|
flavor_id=self.flavor.id,
|
|
@@ -1937,7 +1927,7 @@ class TestServerCreate(TestServer):
|
|
|
1937
1927
|
'allocation',
|
|
1938
1928
|
str(exc),
|
|
1939
1929
|
)
|
|
1940
|
-
self.
|
|
1930
|
+
self.compute_client.create_server.assert_not_called()
|
|
1941
1931
|
|
|
1942
1932
|
def test_server_create_with_auto_network_default(self):
|
|
1943
1933
|
"""Tests creating a server without specifying --nic using 2.37."""
|
|
@@ -1963,7 +1953,7 @@ class TestServerCreate(TestServer):
|
|
|
1963
1953
|
columns, data = self.cmd.take_action(parsed_args)
|
|
1964
1954
|
|
|
1965
1955
|
self.network_client.find_network.assert_not_called()
|
|
1966
|
-
self.
|
|
1956
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
1967
1957
|
name=self.server.name,
|
|
1968
1958
|
image_id=self.image.id,
|
|
1969
1959
|
flavor_id=self.flavor.id,
|
|
@@ -2000,7 +1990,7 @@ class TestServerCreate(TestServer):
|
|
|
2000
1990
|
columns, data = self.cmd.take_action(parsed_args)
|
|
2001
1991
|
|
|
2002
1992
|
self.network_client.find_network.assert_not_called()
|
|
2003
|
-
self.
|
|
1993
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2004
1994
|
name=self.server.name,
|
|
2005
1995
|
image_id=self.image.id,
|
|
2006
1996
|
flavor_id=self.flavor.id,
|
|
@@ -2080,7 +2070,7 @@ class TestServerCreate(TestServer):
|
|
|
2080
2070
|
'allocation',
|
|
2081
2071
|
str(exc),
|
|
2082
2072
|
)
|
|
2083
|
-
self.
|
|
2073
|
+
self.compute_client.create_server.assert_not_called()
|
|
2084
2074
|
|
|
2085
2075
|
def test_server_create_with_conflicting_network_options(self):
|
|
2086
2076
|
arglist = [
|
|
@@ -2125,7 +2115,7 @@ class TestServerCreate(TestServer):
|
|
|
2125
2115
|
'other --nic, --network or --port value.',
|
|
2126
2116
|
str(exc),
|
|
2127
2117
|
)
|
|
2128
|
-
self.
|
|
2118
|
+
self.compute_client.create_server.assert_not_called()
|
|
2129
2119
|
|
|
2130
2120
|
def test_server_create_with_invalid_network_options(self):
|
|
2131
2121
|
arglist = [
|
|
@@ -2148,7 +2138,7 @@ class TestServerCreate(TestServer):
|
|
|
2148
2138
|
'Invalid argument abcdefgh; argument must be of form ',
|
|
2149
2139
|
str(exc),
|
|
2150
2140
|
)
|
|
2151
|
-
self.
|
|
2141
|
+
self.compute_client.create_server.assert_not_called()
|
|
2152
2142
|
|
|
2153
2143
|
def test_server_create_with_invalid_network_key(self):
|
|
2154
2144
|
arglist = [
|
|
@@ -2171,7 +2161,7 @@ class TestServerCreate(TestServer):
|
|
|
2171
2161
|
'Invalid argument abcdefgh=12324; argument must be of form ',
|
|
2172
2162
|
str(exc),
|
|
2173
2163
|
)
|
|
2174
|
-
self.
|
|
2164
|
+
self.compute_client.create_server.assert_not_called()
|
|
2175
2165
|
|
|
2176
2166
|
def test_server_create_with_empty_network_key_value(self):
|
|
2177
2167
|
arglist = [
|
|
@@ -2194,7 +2184,7 @@ class TestServerCreate(TestServer):
|
|
|
2194
2184
|
'Invalid argument net-id=; argument must be of form ',
|
|
2195
2185
|
str(exc),
|
|
2196
2186
|
)
|
|
2197
|
-
self.
|
|
2187
|
+
self.compute_client.create_server.assert_not_called()
|
|
2198
2188
|
|
|
2199
2189
|
def test_server_create_with_only_network_key(self):
|
|
2200
2190
|
arglist = [
|
|
@@ -2217,7 +2207,7 @@ class TestServerCreate(TestServer):
|
|
|
2217
2207
|
'Invalid argument net-id; argument must be of form ',
|
|
2218
2208
|
str(exc),
|
|
2219
2209
|
)
|
|
2220
|
-
self.
|
|
2210
|
+
self.compute_client.create_server.assert_not_called()
|
|
2221
2211
|
|
|
2222
2212
|
def test_server_create_with_network_in_nova_network(self):
|
|
2223
2213
|
net_name = 'nova-net-net'
|
|
@@ -2263,8 +2253,8 @@ class TestServerCreate(TestServer):
|
|
|
2263
2253
|
) as mock_find:
|
|
2264
2254
|
columns, data = self.cmd.take_action(parsed_args)
|
|
2265
2255
|
|
|
2266
|
-
mock_find.assert_called_once_with(self.
|
|
2267
|
-
self.
|
|
2256
|
+
mock_find.assert_called_once_with(self.compute_client, net_name)
|
|
2257
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2268
2258
|
name=self.server.name,
|
|
2269
2259
|
image_id=self.image.id,
|
|
2270
2260
|
flavor_id=self.flavor.id,
|
|
@@ -2307,7 +2297,7 @@ class TestServerCreate(TestServer):
|
|
|
2307
2297
|
[],
|
|
2308
2298
|
)
|
|
2309
2299
|
self.assertIn("either 'network' or 'port'", str(exc))
|
|
2310
|
-
self.
|
|
2300
|
+
self.compute_client.create_server.assert_not_called()
|
|
2311
2301
|
|
|
2312
2302
|
def test_server_create_with_conflicting_fixed_ip_filters(self):
|
|
2313
2303
|
arglist = [
|
|
@@ -2327,7 +2317,7 @@ class TestServerCreate(TestServer):
|
|
|
2327
2317
|
[],
|
|
2328
2318
|
)
|
|
2329
2319
|
self.assertIn("either 'v4-fixed-ip' or 'v6-fixed-ip'", str(exc))
|
|
2330
|
-
self.
|
|
2320
|
+
self.compute_client.create_server.assert_not_called()
|
|
2331
2321
|
|
|
2332
2322
|
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
|
|
2333
2323
|
def test_server_create_with_wait_ok(self, mock_wait_for_status):
|
|
@@ -2350,7 +2340,7 @@ class TestServerCreate(TestServer):
|
|
|
2350
2340
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
2351
2341
|
columns, data = self.cmd.take_action(parsed_args)
|
|
2352
2342
|
|
|
2353
|
-
self.
|
|
2343
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2354
2344
|
name=self.server.name,
|
|
2355
2345
|
image_id=self.image.id,
|
|
2356
2346
|
flavor_id=self.flavor.id,
|
|
@@ -2368,7 +2358,7 @@ class TestServerCreate(TestServer):
|
|
|
2368
2358
|
],
|
|
2369
2359
|
)
|
|
2370
2360
|
mock_wait_for_status.assert_called_once_with(
|
|
2371
|
-
self.
|
|
2361
|
+
self.compute_client.get_server,
|
|
2372
2362
|
self.server.id,
|
|
2373
2363
|
callback=mock.ANY,
|
|
2374
2364
|
)
|
|
@@ -2399,7 +2389,7 @@ class TestServerCreate(TestServer):
|
|
|
2399
2389
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
2400
2390
|
)
|
|
2401
2391
|
|
|
2402
|
-
self.
|
|
2392
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2403
2393
|
name=self.server.name,
|
|
2404
2394
|
image_id=self.image.id,
|
|
2405
2395
|
flavor_id=self.flavor.id,
|
|
@@ -2417,7 +2407,7 @@ class TestServerCreate(TestServer):
|
|
|
2417
2407
|
],
|
|
2418
2408
|
)
|
|
2419
2409
|
mock_wait_for_status.assert_called_once_with(
|
|
2420
|
-
self.
|
|
2410
|
+
self.compute_client.get_server,
|
|
2421
2411
|
self.server.id,
|
|
2422
2412
|
callback=mock.ANY,
|
|
2423
2413
|
)
|
|
@@ -2449,7 +2439,7 @@ class TestServerCreate(TestServer):
|
|
|
2449
2439
|
columns, data = self.cmd.take_action(parsed_args)
|
|
2450
2440
|
|
|
2451
2441
|
mock_file.assert_called_with('userdata.sh', 'rb')
|
|
2452
|
-
self.
|
|
2442
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2453
2443
|
name=self.server.name,
|
|
2454
2444
|
image_id=self.image.id,
|
|
2455
2445
|
flavor_id=self.flavor.id,
|
|
@@ -2493,7 +2483,7 @@ class TestServerCreate(TestServer):
|
|
|
2493
2483
|
self.volume_client.volumes.get.assert_called_once_with(
|
|
2494
2484
|
self.volume.name
|
|
2495
2485
|
)
|
|
2496
|
-
self.
|
|
2486
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2497
2487
|
name=self.server.name,
|
|
2498
2488
|
image_id='',
|
|
2499
2489
|
flavor_id=self.flavor.id,
|
|
@@ -2535,7 +2525,7 @@ class TestServerCreate(TestServer):
|
|
|
2535
2525
|
self.volume_client.volume_snapshots.get.assert_called_once_with(
|
|
2536
2526
|
self.snapshot.name
|
|
2537
2527
|
)
|
|
2538
|
-
self.
|
|
2528
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2539
2529
|
name=self.server.name,
|
|
2540
2530
|
image_id='',
|
|
2541
2531
|
flavor_id=self.flavor.id,
|
|
@@ -2586,7 +2576,7 @@ class TestServerCreate(TestServer):
|
|
|
2586
2576
|
|
|
2587
2577
|
# we don't do any validation of IDs when using the legacy option
|
|
2588
2578
|
self.volume_client.volumes.get.assert_not_called()
|
|
2589
|
-
self.
|
|
2579
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2590
2580
|
name=self.server.name,
|
|
2591
2581
|
image_id='',
|
|
2592
2582
|
flavor_id=self.flavor.id,
|
|
@@ -2664,7 +2654,7 @@ class TestServerCreate(TestServer):
|
|
|
2664
2654
|
|
|
2665
2655
|
# we don't do any validation of IDs when using the legacy option
|
|
2666
2656
|
self.volume_client.volumes.get.assert_not_called()
|
|
2667
|
-
self.
|
|
2657
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2668
2658
|
name=self.server.name,
|
|
2669
2659
|
image_id=self.image.id,
|
|
2670
2660
|
flavor_id=self.flavor.id,
|
|
@@ -2746,7 +2736,7 @@ class TestServerCreate(TestServer):
|
|
|
2746
2736
|
|
|
2747
2737
|
# we don't do any validation of IDs when using the legacy option
|
|
2748
2738
|
self.volume_client.volumes.get.assert_not_called()
|
|
2749
|
-
self.
|
|
2739
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2750
2740
|
name=self.server.name,
|
|
2751
2741
|
image_id=self.image.id,
|
|
2752
2742
|
flavor_id=self.flavor.id,
|
|
@@ -2799,7 +2789,7 @@ class TestServerCreate(TestServer):
|
|
|
2799
2789
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
2800
2790
|
)
|
|
2801
2791
|
self.assertIn('The boot_index key of --block-device ', str(ex))
|
|
2802
|
-
self.
|
|
2792
|
+
self.compute_client.create_server.assert_not_called()
|
|
2803
2793
|
|
|
2804
2794
|
def test_server_create_with_block_device_invalid_source_type(self):
|
|
2805
2795
|
block_device = f'uuid={self.volume.name},source_type=foo'
|
|
@@ -2817,7 +2807,7 @@ class TestServerCreate(TestServer):
|
|
|
2817
2807
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
2818
2808
|
)
|
|
2819
2809
|
self.assertIn('The source_type key of --block-device ', str(ex))
|
|
2820
|
-
self.
|
|
2810
|
+
self.compute_client.create_server.assert_not_called()
|
|
2821
2811
|
|
|
2822
2812
|
def test_server_create_with_block_device_invalid_destination_type(self):
|
|
2823
2813
|
block_device = f'uuid={self.volume.name},destination_type=foo'
|
|
@@ -2835,7 +2825,7 @@ class TestServerCreate(TestServer):
|
|
|
2835
2825
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
2836
2826
|
)
|
|
2837
2827
|
self.assertIn('The destination_type key of --block-device ', str(ex))
|
|
2838
|
-
self.
|
|
2828
|
+
self.compute_client.create_server.assert_not_called()
|
|
2839
2829
|
|
|
2840
2830
|
def test_server_create_with_block_device_invalid_shutdown(self):
|
|
2841
2831
|
block_device = f'uuid={self.volume.name},delete_on_termination=foo'
|
|
@@ -2855,7 +2845,7 @@ class TestServerCreate(TestServer):
|
|
|
2855
2845
|
self.assertIn(
|
|
2856
2846
|
'The delete_on_termination key of --block-device ', str(ex)
|
|
2857
2847
|
)
|
|
2858
|
-
self.
|
|
2848
|
+
self.compute_client.create_server.assert_not_called()
|
|
2859
2849
|
|
|
2860
2850
|
def test_server_create_with_block_device_tag_pre_v242(self):
|
|
2861
2851
|
self.set_compute_api_version('2.41')
|
|
@@ -2877,7 +2867,7 @@ class TestServerCreate(TestServer):
|
|
|
2877
2867
|
self.assertIn(
|
|
2878
2868
|
'--os-compute-api-version 2.42 or greater is required', str(ex)
|
|
2879
2869
|
)
|
|
2880
|
-
self.
|
|
2870
|
+
self.compute_client.create_server.assert_not_called()
|
|
2881
2871
|
|
|
2882
2872
|
def test_server_create_with_block_device_volume_type_pre_v267(self):
|
|
2883
2873
|
self.set_compute_api_version('2.66')
|
|
@@ -2899,7 +2889,7 @@ class TestServerCreate(TestServer):
|
|
|
2899
2889
|
self.assertIn(
|
|
2900
2890
|
'--os-compute-api-version 2.67 or greater is required', str(ex)
|
|
2901
2891
|
)
|
|
2902
|
-
self.
|
|
2892
|
+
self.compute_client.create_server.assert_not_called()
|
|
2903
2893
|
|
|
2904
2894
|
def test_server_create_with_block_device_mapping(self):
|
|
2905
2895
|
self.volume_client.volumes.get.return_value = self.volume
|
|
@@ -2938,7 +2928,7 @@ class TestServerCreate(TestServer):
|
|
|
2938
2928
|
self.volume_client.volumes.get.assert_called_once_with(
|
|
2939
2929
|
self.volume.name
|
|
2940
2930
|
)
|
|
2941
|
-
self.
|
|
2931
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
2942
2932
|
name=self.server.name,
|
|
2943
2933
|
image_id=self.image.id,
|
|
2944
2934
|
flavor_id=self.flavor.id,
|
|
@@ -3002,7 +2992,7 @@ class TestServerCreate(TestServer):
|
|
|
3002
2992
|
self.volume_client.volumes.get.assert_called_once_with(
|
|
3003
2993
|
self.volume.name
|
|
3004
2994
|
)
|
|
3005
|
-
self.
|
|
2995
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3006
2996
|
name=self.server.name,
|
|
3007
2997
|
image_id=self.image.id,
|
|
3008
2998
|
flavor_id=self.flavor.id,
|
|
@@ -3065,7 +3055,7 @@ class TestServerCreate(TestServer):
|
|
|
3065
3055
|
self.volume_client.volumes.get.assert_called_once_with(
|
|
3066
3056
|
self.volume.name
|
|
3067
3057
|
)
|
|
3068
|
-
self.
|
|
3058
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3069
3059
|
name=self.server.name,
|
|
3070
3060
|
image_id=self.image.id,
|
|
3071
3061
|
flavor_id=self.flavor.id,
|
|
@@ -3130,7 +3120,7 @@ class TestServerCreate(TestServer):
|
|
|
3130
3120
|
self.volume_client.volumes.get.assert_called_once_with(
|
|
3131
3121
|
self.volume.name
|
|
3132
3122
|
)
|
|
3133
|
-
self.
|
|
3123
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3134
3124
|
name=self.server.name,
|
|
3135
3125
|
image_id=self.image.id,
|
|
3136
3126
|
flavor_id=self.flavor.id,
|
|
@@ -3198,7 +3188,7 @@ class TestServerCreate(TestServer):
|
|
|
3198
3188
|
self.volume_client.volume_snapshots.get.assert_called_once_with(
|
|
3199
3189
|
self.snapshot.name
|
|
3200
3190
|
)
|
|
3201
|
-
self.
|
|
3191
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3202
3192
|
name=self.server.name,
|
|
3203
3193
|
image_id=self.image.id,
|
|
3204
3194
|
flavor_id=self.flavor.id,
|
|
@@ -3273,7 +3263,7 @@ class TestServerCreate(TestServer):
|
|
|
3273
3263
|
self.volume_client.volumes.get.assert_has_calls(
|
|
3274
3264
|
[mock.call(self.volume.name)] * 2
|
|
3275
3265
|
)
|
|
3276
|
-
self.
|
|
3266
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3277
3267
|
name=self.server.name,
|
|
3278
3268
|
image_id=self.image.id,
|
|
3279
3269
|
flavor_id=self.flavor.id,
|
|
@@ -3329,7 +3319,7 @@ class TestServerCreate(TestServer):
|
|
|
3329
3319
|
self.assertIn(
|
|
3330
3320
|
'argument --block-device-mapping: Invalid argument ', str(exc)
|
|
3331
3321
|
)
|
|
3332
|
-
self.
|
|
3322
|
+
self.compute_client.create_server.assert_not_called()
|
|
3333
3323
|
|
|
3334
3324
|
# block device mapping don't contain device name "=uuid:::true"
|
|
3335
3325
|
arglist = [
|
|
@@ -3351,7 +3341,7 @@ class TestServerCreate(TestServer):
|
|
|
3351
3341
|
self.assertIn(
|
|
3352
3342
|
'argument --block-device-mapping: Invalid argument ', str(exc)
|
|
3353
3343
|
)
|
|
3354
|
-
self.
|
|
3344
|
+
self.compute_client.create_server.assert_not_called()
|
|
3355
3345
|
|
|
3356
3346
|
def test_server_create_with_block_device_mapping_no_uuid(self):
|
|
3357
3347
|
arglist = [
|
|
@@ -3373,7 +3363,7 @@ class TestServerCreate(TestServer):
|
|
|
3373
3363
|
self.assertIn(
|
|
3374
3364
|
'argument --block-device-mapping: Invalid argument ', str(exc)
|
|
3375
3365
|
)
|
|
3376
|
-
self.
|
|
3366
|
+
self.compute_client.create_server.assert_not_called()
|
|
3377
3367
|
|
|
3378
3368
|
def test_server_create_volume_boot_from_volume_conflict(self):
|
|
3379
3369
|
# Tests that specifying --volume and --boot-from-volume results in
|
|
@@ -3406,7 +3396,7 @@ class TestServerCreate(TestServer):
|
|
|
3406
3396
|
self.assertIn(
|
|
3407
3397
|
'--volume is not allowed with --boot-from-volume', str(ex)
|
|
3408
3398
|
)
|
|
3409
|
-
self.
|
|
3399
|
+
self.compute_client.create_server.assert_not_called()
|
|
3410
3400
|
|
|
3411
3401
|
def test_server_create_boot_from_volume_no_image(self):
|
|
3412
3402
|
# Test --boot-from-volume option without --image or
|
|
@@ -3434,7 +3424,7 @@ class TestServerCreate(TestServer):
|
|
|
3434
3424
|
'to support --boot-from-volume option',
|
|
3435
3425
|
str(ex),
|
|
3436
3426
|
)
|
|
3437
|
-
self.
|
|
3427
|
+
self.compute_client.create_server.assert_not_called()
|
|
3438
3428
|
|
|
3439
3429
|
def test_server_create_image_property(self):
|
|
3440
3430
|
image = image_fakes.create_one_image({'hypervisor_type': 'qemu'})
|
|
@@ -3458,7 +3448,7 @@ class TestServerCreate(TestServer):
|
|
|
3458
3448
|
columns, data = self.cmd.take_action(parsed_args)
|
|
3459
3449
|
|
|
3460
3450
|
self.image_client.images.assert_called_once_with()
|
|
3461
|
-
self.
|
|
3451
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3462
3452
|
name=self.server.name,
|
|
3463
3453
|
image_id=image.id,
|
|
3464
3454
|
flavor_id=self.flavor.id,
|
|
@@ -3508,7 +3498,7 @@ class TestServerCreate(TestServer):
|
|
|
3508
3498
|
columns, data = self.cmd.take_action(parsed_args)
|
|
3509
3499
|
|
|
3510
3500
|
self.image_client.images.assert_called_once_with()
|
|
3511
|
-
self.
|
|
3501
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3512
3502
|
name=self.server.name,
|
|
3513
3503
|
image_id=image.id,
|
|
3514
3504
|
flavor_id=self.flavor.id,
|
|
@@ -3563,7 +3553,7 @@ class TestServerCreate(TestServer):
|
|
|
3563
3553
|
'No images match the property expected by --image-property',
|
|
3564
3554
|
str(exc),
|
|
3565
3555
|
)
|
|
3566
|
-
self.
|
|
3556
|
+
self.compute_client.create_server.assert_not_called()
|
|
3567
3557
|
|
|
3568
3558
|
def test_server_create_image_property_with_image_list(self):
|
|
3569
3559
|
target_image = image_fakes.create_one_image(
|
|
@@ -3596,7 +3586,7 @@ class TestServerCreate(TestServer):
|
|
|
3596
3586
|
columns, data = self.cmd.take_action(parsed_args)
|
|
3597
3587
|
|
|
3598
3588
|
self.image_client.images.assert_called_once_with()
|
|
3599
|
-
self.
|
|
3589
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3600
3590
|
name=self.server.name,
|
|
3601
3591
|
image_id=target_image.id,
|
|
3602
3592
|
flavor_id=self.flavor.id,
|
|
@@ -3652,7 +3642,7 @@ class TestServerCreate(TestServer):
|
|
|
3652
3642
|
'(--volume, --snapshot, --block-device) is required',
|
|
3653
3643
|
str(exc),
|
|
3654
3644
|
)
|
|
3655
|
-
self.
|
|
3645
|
+
self.compute_client.create_server.assert_not_called()
|
|
3656
3646
|
|
|
3657
3647
|
def test_server_create_with_swap(self):
|
|
3658
3648
|
arglist = [
|
|
@@ -3674,7 +3664,7 @@ class TestServerCreate(TestServer):
|
|
|
3674
3664
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
3675
3665
|
columns, data = self.cmd.take_action(parsed_args)
|
|
3676
3666
|
|
|
3677
|
-
self.
|
|
3667
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3678
3668
|
name=self.server.name,
|
|
3679
3669
|
image_id=self.image.id,
|
|
3680
3670
|
flavor_id=self.flavor.id,
|
|
@@ -3723,7 +3713,7 @@ class TestServerCreate(TestServer):
|
|
|
3723
3713
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
3724
3714
|
columns, data = self.cmd.take_action(parsed_args)
|
|
3725
3715
|
|
|
3726
|
-
self.
|
|
3716
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3727
3717
|
name=self.server.name,
|
|
3728
3718
|
image_id=self.image.id,
|
|
3729
3719
|
flavor_id=self.flavor.id,
|
|
@@ -3770,7 +3760,7 @@ class TestServerCreate(TestServer):
|
|
|
3770
3760
|
[],
|
|
3771
3761
|
)
|
|
3772
3762
|
self.assertIn('Argument parse failed', str(exc))
|
|
3773
|
-
self.
|
|
3763
|
+
self.compute_client.create_server.assert_not_called()
|
|
3774
3764
|
|
|
3775
3765
|
def test_server_create_with_ephemeral_invalid_key(self):
|
|
3776
3766
|
arglist = [
|
|
@@ -3790,7 +3780,7 @@ class TestServerCreate(TestServer):
|
|
|
3790
3780
|
[],
|
|
3791
3781
|
)
|
|
3792
3782
|
self.assertIn('Argument parse failed', str(exc))
|
|
3793
|
-
self.
|
|
3783
|
+
self.compute_client.create_server.assert_not_called()
|
|
3794
3784
|
|
|
3795
3785
|
def test_server_create_invalid_hint(self):
|
|
3796
3786
|
# Not a key-value pair
|
|
@@ -3811,7 +3801,7 @@ class TestServerCreate(TestServer):
|
|
|
3811
3801
|
[],
|
|
3812
3802
|
)
|
|
3813
3803
|
self.assertIn('Argument parse failed', str(exc))
|
|
3814
|
-
self.
|
|
3804
|
+
self.compute_client.create_server.assert_not_called()
|
|
3815
3805
|
|
|
3816
3806
|
# Empty key
|
|
3817
3807
|
arglist = [
|
|
@@ -3831,7 +3821,7 @@ class TestServerCreate(TestServer):
|
|
|
3831
3821
|
[],
|
|
3832
3822
|
)
|
|
3833
3823
|
self.assertIn('Argument parse failed', str(exc))
|
|
3834
|
-
self.
|
|
3824
|
+
self.compute_client.create_server.assert_not_called()
|
|
3835
3825
|
|
|
3836
3826
|
def test_server_create_with_description(self):
|
|
3837
3827
|
# Description is supported for nova api version 2.19 or above
|
|
@@ -3857,7 +3847,7 @@ class TestServerCreate(TestServer):
|
|
|
3857
3847
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
3858
3848
|
columns, data = self.cmd.take_action(parsed_args)
|
|
3859
3849
|
|
|
3860
|
-
self.
|
|
3850
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3861
3851
|
name=self.server.name,
|
|
3862
3852
|
image_id=self.image.id,
|
|
3863
3853
|
flavor_id=self.flavor.id,
|
|
@@ -3904,7 +3894,7 @@ class TestServerCreate(TestServer):
|
|
|
3904
3894
|
self.assertRaises(
|
|
3905
3895
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
3906
3896
|
)
|
|
3907
|
-
self.
|
|
3897
|
+
self.compute_client.create_server.assert_not_called()
|
|
3908
3898
|
|
|
3909
3899
|
def test_server_create_with_tag(self):
|
|
3910
3900
|
self.set_compute_api_version('2.52')
|
|
@@ -3931,7 +3921,7 @@ class TestServerCreate(TestServer):
|
|
|
3931
3921
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
3932
3922
|
columns, data = self.cmd.take_action(parsed_args)
|
|
3933
3923
|
|
|
3934
|
-
self.
|
|
3924
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
3935
3925
|
name=self.server.name,
|
|
3936
3926
|
image_id=self.image.id,
|
|
3937
3927
|
flavor_id=self.flavor.id,
|
|
@@ -3982,7 +3972,7 @@ class TestServerCreate(TestServer):
|
|
|
3982
3972
|
self.assertIn(
|
|
3983
3973
|
'--os-compute-api-version 2.52 or greater is required', str(exc)
|
|
3984
3974
|
)
|
|
3985
|
-
self.
|
|
3975
|
+
self.compute_client.create_server.assert_not_called()
|
|
3986
3976
|
|
|
3987
3977
|
def test_server_create_with_host(self):
|
|
3988
3978
|
# Explicit host is supported for nova api version 2.74 or above
|
|
@@ -4008,7 +3998,7 @@ class TestServerCreate(TestServer):
|
|
|
4008
3998
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4009
3999
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4010
4000
|
|
|
4011
|
-
self.
|
|
4001
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
4012
4002
|
name=self.server.name,
|
|
4013
4003
|
image_id=self.image.id,
|
|
4014
4004
|
flavor_id=self.flavor.id,
|
|
@@ -4057,7 +4047,7 @@ class TestServerCreate(TestServer):
|
|
|
4057
4047
|
self.assertIn(
|
|
4058
4048
|
'--os-compute-api-version 2.74 or greater is required', str(exc)
|
|
4059
4049
|
)
|
|
4060
|
-
self.
|
|
4050
|
+
self.compute_client.create_server.assert_not_called()
|
|
4061
4051
|
|
|
4062
4052
|
def test_server_create_with_hypervisor_hostname(self):
|
|
4063
4053
|
# Explicit hypervisor_hostname is supported for nova api version
|
|
@@ -4084,7 +4074,7 @@ class TestServerCreate(TestServer):
|
|
|
4084
4074
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4085
4075
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4086
4076
|
|
|
4087
|
-
self.
|
|
4077
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
4088
4078
|
name=self.server.name,
|
|
4089
4079
|
image_id=self.image.id,
|
|
4090
4080
|
flavor_id=self.flavor.id,
|
|
@@ -4133,7 +4123,7 @@ class TestServerCreate(TestServer):
|
|
|
4133
4123
|
self.assertIn(
|
|
4134
4124
|
'--os-compute-api-version 2.74 or greater is required', str(exc)
|
|
4135
4125
|
)
|
|
4136
|
-
self.
|
|
4126
|
+
self.compute_client.create_server.assert_not_called()
|
|
4137
4127
|
|
|
4138
4128
|
def test_server_create_with_hostname(self):
|
|
4139
4129
|
self.set_compute_api_version('2.90')
|
|
@@ -4158,7 +4148,7 @@ class TestServerCreate(TestServer):
|
|
|
4158
4148
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4159
4149
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4160
4150
|
|
|
4161
|
-
self.
|
|
4151
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
4162
4152
|
name=self.server.name,
|
|
4163
4153
|
image_id=self.image.id,
|
|
4164
4154
|
flavor_id=self.flavor.id,
|
|
@@ -4206,7 +4196,7 @@ class TestServerCreate(TestServer):
|
|
|
4206
4196
|
self.assertIn(
|
|
4207
4197
|
'--os-compute-api-version 2.90 or greater is required', str(exc)
|
|
4208
4198
|
)
|
|
4209
|
-
self.
|
|
4199
|
+
self.compute_client.create_server.assert_not_called()
|
|
4210
4200
|
|
|
4211
4201
|
def test_server_create_with_trusted_image_cert(self):
|
|
4212
4202
|
self.set_compute_api_version('2.63')
|
|
@@ -4233,7 +4223,7 @@ class TestServerCreate(TestServer):
|
|
|
4233
4223
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4234
4224
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4235
4225
|
|
|
4236
|
-
self.
|
|
4226
|
+
self.compute_client.create_server.assert_called_once_with(
|
|
4237
4227
|
name=self.server.name,
|
|
4238
4228
|
image_id=self.image.id,
|
|
4239
4229
|
flavor_id=self.flavor.id,
|
|
@@ -4283,7 +4273,7 @@ class TestServerCreate(TestServer):
|
|
|
4283
4273
|
self.assertIn(
|
|
4284
4274
|
'--os-compute-api-version 2.63 or greater is required', str(exc)
|
|
4285
4275
|
)
|
|
4286
|
-
self.
|
|
4276
|
+
self.compute_client.create_server.assert_not_called()
|
|
4287
4277
|
|
|
4288
4278
|
def test_server_create_with_trusted_image_cert_from_volume(self):
|
|
4289
4279
|
self.set_compute_api_version('2.63')
|
|
@@ -4316,7 +4306,7 @@ class TestServerCreate(TestServer):
|
|
|
4316
4306
|
'directly from images',
|
|
4317
4307
|
str(exc),
|
|
4318
4308
|
)
|
|
4319
|
-
self.
|
|
4309
|
+
self.compute_client.create_server.assert_not_called()
|
|
4320
4310
|
|
|
4321
4311
|
def test_server_create_with_trusted_image_cert_from_snapshot(self):
|
|
4322
4312
|
self.set_compute_api_version('2.63')
|
|
@@ -4349,7 +4339,7 @@ class TestServerCreate(TestServer):
|
|
|
4349
4339
|
'directly from images',
|
|
4350
4340
|
str(exc),
|
|
4351
4341
|
)
|
|
4352
|
-
self.
|
|
4342
|
+
self.compute_client.create_server.assert_not_called()
|
|
4353
4343
|
|
|
4354
4344
|
def test_server_create_with_trusted_image_cert_boot_from_volume(self):
|
|
4355
4345
|
self.set_compute_api_version('2.63')
|
|
@@ -4385,7 +4375,7 @@ class TestServerCreate(TestServer):
|
|
|
4385
4375
|
'directly from images',
|
|
4386
4376
|
str(exc),
|
|
4387
4377
|
)
|
|
4388
|
-
self.
|
|
4378
|
+
self.compute_client.create_server.assert_not_called()
|
|
4389
4379
|
|
|
4390
4380
|
|
|
4391
4381
|
class TestServerDelete(compute_fakes.TestComputev2):
|
|
@@ -4393,8 +4383,8 @@ class TestServerDelete(compute_fakes.TestComputev2):
|
|
|
4393
4383
|
super().setUp()
|
|
4394
4384
|
|
|
4395
4385
|
self.server = compute_fakes.create_one_sdk_server()
|
|
4396
|
-
self.
|
|
4397
|
-
self.
|
|
4386
|
+
self.compute_client.find_server.return_value = self.server
|
|
4387
|
+
self.compute_client.delete_server.return_value = None
|
|
4398
4388
|
|
|
4399
4389
|
# Get the command object to test
|
|
4400
4390
|
self.cmd = server.DeleteServer(self.app, None)
|
|
@@ -4410,10 +4400,10 @@ class TestServerDelete(compute_fakes.TestComputev2):
|
|
|
4410
4400
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4411
4401
|
result = self.cmd.take_action(parsed_args)
|
|
4412
4402
|
|
|
4413
|
-
self.
|
|
4403
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
4414
4404
|
self.server.id, ignore_missing=False, all_projects=False
|
|
4415
4405
|
)
|
|
4416
|
-
self.
|
|
4406
|
+
self.compute_client.delete_server.assert_called_once_with(
|
|
4417
4407
|
self.server, force=False
|
|
4418
4408
|
)
|
|
4419
4409
|
self.assertIsNone(result)
|
|
@@ -4430,18 +4420,18 @@ class TestServerDelete(compute_fakes.TestComputev2):
|
|
|
4430
4420
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4431
4421
|
result = self.cmd.take_action(parsed_args)
|
|
4432
4422
|
|
|
4433
|
-
self.
|
|
4423
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
4434
4424
|
self.server.id, ignore_missing=False, all_projects=False
|
|
4435
4425
|
)
|
|
4436
|
-
self.
|
|
4426
|
+
self.compute_client.delete_server.assert_called_once_with(
|
|
4437
4427
|
self.server, force=True
|
|
4438
4428
|
)
|
|
4439
4429
|
self.assertIsNone(result)
|
|
4440
4430
|
|
|
4441
4431
|
def test_server_delete_multi_servers(self):
|
|
4442
4432
|
servers = compute_fakes.create_sdk_servers(count=3)
|
|
4443
|
-
self.
|
|
4444
|
-
self.
|
|
4433
|
+
self.compute_client.find_server.return_value = None
|
|
4434
|
+
self.compute_client.find_server.side_effect = servers
|
|
4445
4435
|
|
|
4446
4436
|
arglist = []
|
|
4447
4437
|
verifylist = []
|
|
@@ -4454,13 +4444,13 @@ class TestServerDelete(compute_fakes.TestComputev2):
|
|
|
4454
4444
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4455
4445
|
result = self.cmd.take_action(parsed_args)
|
|
4456
4446
|
|
|
4457
|
-
self.
|
|
4447
|
+
self.compute_client.find_server.assert_has_calls(
|
|
4458
4448
|
[
|
|
4459
4449
|
mock.call(s.id, ignore_missing=False, all_projects=False)
|
|
4460
4450
|
for s in servers
|
|
4461
4451
|
]
|
|
4462
4452
|
)
|
|
4463
|
-
self.
|
|
4453
|
+
self.compute_client.delete_server.assert_has_calls(
|
|
4464
4454
|
[mock.call(s, force=False) for s in servers]
|
|
4465
4455
|
)
|
|
4466
4456
|
self.assertIsNone(result)
|
|
@@ -4478,10 +4468,10 @@ class TestServerDelete(compute_fakes.TestComputev2):
|
|
|
4478
4468
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4479
4469
|
result = self.cmd.take_action(parsed_args)
|
|
4480
4470
|
|
|
4481
|
-
self.
|
|
4471
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
4482
4472
|
self.server.id, ignore_missing=False, all_projects=True
|
|
4483
4473
|
)
|
|
4484
|
-
self.
|
|
4474
|
+
self.compute_client.delete_server.assert_called_once_with(
|
|
4485
4475
|
self.server, force=False
|
|
4486
4476
|
)
|
|
4487
4477
|
self.assertIsNone(result)
|
|
@@ -4499,20 +4489,20 @@ class TestServerDelete(compute_fakes.TestComputev2):
|
|
|
4499
4489
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4500
4490
|
result = self.cmd.take_action(parsed_args)
|
|
4501
4491
|
|
|
4502
|
-
self.
|
|
4492
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
4503
4493
|
self.server.id, ignore_missing=False, all_projects=False
|
|
4504
4494
|
)
|
|
4505
|
-
self.
|
|
4495
|
+
self.compute_client.delete_server.assert_called_once_with(
|
|
4506
4496
|
self.server, force=False
|
|
4507
4497
|
)
|
|
4508
|
-
self.
|
|
4498
|
+
self.compute_client.wait_for_delete.assert_called_once_with(
|
|
4509
4499
|
self.server,
|
|
4510
4500
|
callback=mock.ANY,
|
|
4511
4501
|
)
|
|
4512
4502
|
self.assertIsNone(result)
|
|
4513
4503
|
|
|
4514
4504
|
def test_server_delete_wait_fails(self):
|
|
4515
|
-
self.
|
|
4505
|
+
self.compute_client.wait_for_delete.side_effect = (
|
|
4516
4506
|
sdk_exceptions.ResourceTimeout()
|
|
4517
4507
|
)
|
|
4518
4508
|
|
|
@@ -4530,13 +4520,13 @@ class TestServerDelete(compute_fakes.TestComputev2):
|
|
|
4530
4520
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
4531
4521
|
)
|
|
4532
4522
|
|
|
4533
|
-
self.
|
|
4523
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
4534
4524
|
self.server.id, ignore_missing=False, all_projects=False
|
|
4535
4525
|
)
|
|
4536
|
-
self.
|
|
4526
|
+
self.compute_client.delete_server.assert_called_once_with(
|
|
4537
4527
|
self.server, force=False
|
|
4538
4528
|
)
|
|
4539
|
-
self.
|
|
4529
|
+
self.compute_client.wait_for_delete.assert_called_once_with(
|
|
4540
4530
|
self.server,
|
|
4541
4531
|
callback=mock.ANY,
|
|
4542
4532
|
)
|
|
@@ -4567,9 +4557,7 @@ class TestServerDumpCreate(TestServer):
|
|
|
4567
4557
|
|
|
4568
4558
|
self.assertIsNone(result)
|
|
4569
4559
|
for s in servers:
|
|
4570
|
-
s.trigger_crash_dump.assert_called_once_with(
|
|
4571
|
-
self.compute_sdk_client
|
|
4572
|
-
)
|
|
4560
|
+
s.trigger_crash_dump.assert_called_once_with(self.compute_client)
|
|
4573
4561
|
|
|
4574
4562
|
def test_server_dump_one_server(self):
|
|
4575
4563
|
self.run_test_server_dump(1)
|
|
@@ -4645,12 +4633,12 @@ class _TestServerList(TestServer):
|
|
|
4645
4633
|
self.image_client.get_image.return_value = self.image
|
|
4646
4634
|
|
|
4647
4635
|
self.flavor = compute_fakes.create_one_flavor()
|
|
4648
|
-
self.
|
|
4636
|
+
self.compute_client.find_flavor.return_value = self.flavor
|
|
4649
4637
|
self.attrs['flavor'] = {'original_name': self.flavor.name}
|
|
4650
4638
|
|
|
4651
4639
|
# The servers to be listed.
|
|
4652
4640
|
self.servers = self.setup_sdk_servers_mock(3)
|
|
4653
|
-
self.
|
|
4641
|
+
self.compute_client.servers.return_value = self.servers
|
|
4654
4642
|
|
|
4655
4643
|
# Get the command object to test
|
|
4656
4644
|
self.cmd = server.ListServer(self.app, None)
|
|
@@ -4669,7 +4657,7 @@ class TestServerList(_TestServerList):
|
|
|
4669
4657
|
]
|
|
4670
4658
|
|
|
4671
4659
|
Flavor = collections.namedtuple('Flavor', 'id name')
|
|
4672
|
-
self.
|
|
4660
|
+
self.compute_client.flavors.return_value = [
|
|
4673
4661
|
Flavor(id=s.flavor['id'], name=self.flavor.name)
|
|
4674
4662
|
for s in self.servers
|
|
4675
4663
|
]
|
|
@@ -4699,9 +4687,9 @@ class TestServerList(_TestServerList):
|
|
|
4699
4687
|
|
|
4700
4688
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4701
4689
|
|
|
4702
|
-
self.
|
|
4690
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4703
4691
|
self.image_client.images.assert_called()
|
|
4704
|
-
self.
|
|
4692
|
+
self.compute_client.flavors.assert_called()
|
|
4705
4693
|
self.assertEqual(self.columns, columns)
|
|
4706
4694
|
self.assertEqual(self.data, tuple(data))
|
|
4707
4695
|
|
|
@@ -4713,14 +4701,14 @@ class TestServerList(_TestServerList):
|
|
|
4713
4701
|
('deleted', False),
|
|
4714
4702
|
]
|
|
4715
4703
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4716
|
-
self.
|
|
4704
|
+
self.compute_client.servers.return_value = []
|
|
4717
4705
|
self.data = ()
|
|
4718
4706
|
|
|
4719
4707
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4720
4708
|
|
|
4721
|
-
self.
|
|
4709
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4722
4710
|
self.image_client.images.assert_not_called()
|
|
4723
|
-
self.
|
|
4711
|
+
self.compute_client.flavors.assert_not_called()
|
|
4724
4712
|
self.assertEqual(self.columns, columns)
|
|
4725
4713
|
self.assertEqual(self.data, tuple(data))
|
|
4726
4714
|
|
|
@@ -4755,12 +4743,12 @@ class TestServerList(_TestServerList):
|
|
|
4755
4743
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4756
4744
|
|
|
4757
4745
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4758
|
-
self.
|
|
4746
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4759
4747
|
image_ids = {s.image['id'] for s in self.servers if s.image}
|
|
4760
4748
|
self.image_client.images.assert_called_once_with(
|
|
4761
4749
|
id=f'in:{",".join(image_ids)}',
|
|
4762
4750
|
)
|
|
4763
|
-
self.
|
|
4751
|
+
self.compute_client.flavors.assert_called_once_with(is_public=None)
|
|
4764
4752
|
self.assertEqual(self.columns_long, columns)
|
|
4765
4753
|
self.assertEqual(self.data, tuple(data))
|
|
4766
4754
|
|
|
@@ -4799,7 +4787,7 @@ class TestServerList(_TestServerList):
|
|
|
4799
4787
|
|
|
4800
4788
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4801
4789
|
|
|
4802
|
-
self.
|
|
4790
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4803
4791
|
self.assertIn('Project ID', columns)
|
|
4804
4792
|
self.assertIn('User ID', columns)
|
|
4805
4793
|
self.assertIn('Created At', columns)
|
|
@@ -4839,9 +4827,9 @@ class TestServerList(_TestServerList):
|
|
|
4839
4827
|
|
|
4840
4828
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4841
4829
|
|
|
4842
|
-
self.
|
|
4830
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4843
4831
|
self.image_client.images.assert_not_called()
|
|
4844
|
-
self.
|
|
4832
|
+
self.compute_client.flavors.assert_not_called()
|
|
4845
4833
|
self.assertEqual(self.columns, columns)
|
|
4846
4834
|
self.assertEqual(self.data, tuple(data))
|
|
4847
4835
|
|
|
@@ -4870,9 +4858,9 @@ class TestServerList(_TestServerList):
|
|
|
4870
4858
|
|
|
4871
4859
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4872
4860
|
|
|
4873
|
-
self.
|
|
4861
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4874
4862
|
self.image_client.images.assert_not_called()
|
|
4875
|
-
self.
|
|
4863
|
+
self.compute_client.flavors.assert_not_called()
|
|
4876
4864
|
self.assertEqual(self.columns, columns)
|
|
4877
4865
|
self.assertEqual(self.data, tuple(data))
|
|
4878
4866
|
|
|
@@ -4887,11 +4875,11 @@ class TestServerList(_TestServerList):
|
|
|
4887
4875
|
|
|
4888
4876
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4889
4877
|
|
|
4890
|
-
self.
|
|
4878
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4891
4879
|
self.image_client.images.assert_not_called()
|
|
4892
|
-
self.
|
|
4880
|
+
self.compute_client.flavors.assert_not_called()
|
|
4893
4881
|
self.image_client.get_image.assert_called()
|
|
4894
|
-
self.
|
|
4882
|
+
self.compute_client.find_flavor.assert_called()
|
|
4895
4883
|
|
|
4896
4884
|
self.assertEqual(self.columns, columns)
|
|
4897
4885
|
self.assertEqual(self.data, tuple(data))
|
|
@@ -4908,9 +4896,9 @@ class TestServerList(_TestServerList):
|
|
|
4908
4896
|
)
|
|
4909
4897
|
|
|
4910
4898
|
self.kwargs['image'] = self.image.id
|
|
4911
|
-
self.
|
|
4899
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4912
4900
|
self.image_client.images.assert_not_called()
|
|
4913
|
-
self.
|
|
4901
|
+
self.compute_client.flavors.assert_called_once()
|
|
4914
4902
|
|
|
4915
4903
|
self.assertEqual(self.columns, columns)
|
|
4916
4904
|
self.assertEqual(self.data, tuple(data))
|
|
@@ -4922,14 +4910,14 @@ class TestServerList(_TestServerList):
|
|
|
4922
4910
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
4923
4911
|
columns, data = self.cmd.take_action(parsed_args)
|
|
4924
4912
|
|
|
4925
|
-
self.
|
|
4913
|
+
self.compute_client.find_flavor.assert_has_calls(
|
|
4926
4914
|
[mock.call(self.flavor.id, ignore_missing=False)]
|
|
4927
4915
|
)
|
|
4928
4916
|
|
|
4929
4917
|
self.kwargs['flavor'] = self.flavor.id
|
|
4930
|
-
self.
|
|
4918
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4931
4919
|
self.image_client.images.assert_called_once()
|
|
4932
|
-
self.
|
|
4920
|
+
self.compute_client.flavors.assert_not_called()
|
|
4933
4921
|
|
|
4934
4922
|
self.assertEqual(self.columns, columns)
|
|
4935
4923
|
self.assertEqual(self.data, tuple(data))
|
|
@@ -4946,7 +4934,7 @@ class TestServerList(_TestServerList):
|
|
|
4946
4934
|
|
|
4947
4935
|
self.kwargs['changes-since'] = '2016-03-04T06:27:59Z'
|
|
4948
4936
|
self.kwargs['deleted'] = True
|
|
4949
|
-
self.
|
|
4937
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4950
4938
|
|
|
4951
4939
|
self.assertEqual(self.columns, columns)
|
|
4952
4940
|
self.assertEqual(self.data, tuple(data))
|
|
@@ -4967,7 +4955,7 @@ class TestServerList(_TestServerList):
|
|
|
4967
4955
|
self.fail('CommandError should be raised.')
|
|
4968
4956
|
except exceptions.CommandError as e:
|
|
4969
4957
|
self.assertEqual(
|
|
4970
|
-
'Invalid changes-since value: Invalid time
|
|
4958
|
+
'Invalid changes-since value: Invalid time value', str(e)
|
|
4971
4959
|
)
|
|
4972
4960
|
mock_parse_isotime.assert_called_once_with('Invalid time value')
|
|
4973
4961
|
|
|
@@ -4989,7 +4977,7 @@ class TestServerList(_TestServerList):
|
|
|
4989
4977
|
|
|
4990
4978
|
self.kwargs['tags'] = 'tag1,tag2'
|
|
4991
4979
|
|
|
4992
|
-
self.
|
|
4980
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
4993
4981
|
|
|
4994
4982
|
self.assertEqual(self.columns, columns)
|
|
4995
4983
|
self.assertEqual(self.data, tuple(data))
|
|
@@ -5032,7 +5020,7 @@ class TestServerList(_TestServerList):
|
|
|
5032
5020
|
|
|
5033
5021
|
self.kwargs['not-tags'] = 'tag1,tag2'
|
|
5034
5022
|
|
|
5035
|
-
self.
|
|
5023
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5036
5024
|
|
|
5037
5025
|
self.assertEqual(self.columns, columns)
|
|
5038
5026
|
self.assertEqual(self.data, tuple(data))
|
|
@@ -5071,7 +5059,7 @@ class TestServerList(_TestServerList):
|
|
|
5071
5059
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5072
5060
|
|
|
5073
5061
|
self.kwargs['availability_zone'] = 'test-az'
|
|
5074
|
-
self.
|
|
5062
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5075
5063
|
self.assertEqual(self.columns, columns)
|
|
5076
5064
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
5077
5065
|
|
|
@@ -5088,7 +5076,7 @@ class TestServerList(_TestServerList):
|
|
|
5088
5076
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5089
5077
|
|
|
5090
5078
|
self.kwargs['key_name'] = 'test-key'
|
|
5091
|
-
self.
|
|
5079
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5092
5080
|
self.assertEqual(self.columns, columns)
|
|
5093
5081
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
5094
5082
|
|
|
@@ -5104,7 +5092,7 @@ class TestServerList(_TestServerList):
|
|
|
5104
5092
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5105
5093
|
|
|
5106
5094
|
self.kwargs['config_drive'] = True
|
|
5107
|
-
self.
|
|
5095
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5108
5096
|
self.assertEqual(self.columns, columns)
|
|
5109
5097
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
5110
5098
|
|
|
@@ -5120,7 +5108,7 @@ class TestServerList(_TestServerList):
|
|
|
5120
5108
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5121
5109
|
|
|
5122
5110
|
self.kwargs['config_drive'] = False
|
|
5123
|
-
self.
|
|
5111
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5124
5112
|
self.assertEqual(self.columns, columns)
|
|
5125
5113
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
5126
5114
|
|
|
@@ -5137,7 +5125,7 @@ class TestServerList(_TestServerList):
|
|
|
5137
5125
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5138
5126
|
|
|
5139
5127
|
self.kwargs['progress'] = '100'
|
|
5140
|
-
self.
|
|
5128
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5141
5129
|
self.assertEqual(self.columns, columns)
|
|
5142
5130
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
5143
5131
|
|
|
@@ -5168,7 +5156,7 @@ class TestServerList(_TestServerList):
|
|
|
5168
5156
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5169
5157
|
|
|
5170
5158
|
self.kwargs['vm_state'] = 'active'
|
|
5171
|
-
self.
|
|
5159
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5172
5160
|
self.assertEqual(self.columns, columns)
|
|
5173
5161
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
5174
5162
|
|
|
@@ -5185,7 +5173,7 @@ class TestServerList(_TestServerList):
|
|
|
5185
5173
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5186
5174
|
|
|
5187
5175
|
self.kwargs['task_state'] = 'deleting'
|
|
5188
|
-
self.
|
|
5176
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5189
5177
|
self.assertEqual(self.columns, columns)
|
|
5190
5178
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
5191
5179
|
|
|
@@ -5202,7 +5190,7 @@ class TestServerList(_TestServerList):
|
|
|
5202
5190
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5203
5191
|
|
|
5204
5192
|
self.kwargs['power_state'] = 1
|
|
5205
|
-
self.
|
|
5193
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5206
5194
|
self.assertEqual(self.columns, columns)
|
|
5207
5195
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
5208
5196
|
|
|
@@ -5239,18 +5227,18 @@ class TestServerList(_TestServerList):
|
|
|
5239
5227
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5240
5228
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5241
5229
|
|
|
5242
|
-
self.
|
|
5230
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5243
5231
|
|
|
5244
5232
|
self.assertEqual(self.columns_long, columns)
|
|
5245
5233
|
self.assertEqual(tuple(self.data1), tuple(data))
|
|
5246
5234
|
|
|
5247
5235
|
# Next test with host_status in the data -- the column should be
|
|
5248
5236
|
# present in this case.
|
|
5249
|
-
self.
|
|
5237
|
+
self.compute_client.servers.reset_mock()
|
|
5250
5238
|
|
|
5251
5239
|
self.attrs['host_status'] = 'UP'
|
|
5252
5240
|
servers = self.setup_sdk_servers_mock(3)
|
|
5253
|
-
self.
|
|
5241
|
+
self.compute_client.servers.return_value = servers
|
|
5254
5242
|
|
|
5255
5243
|
# Make sure the returned image and flavor IDs match the servers.
|
|
5256
5244
|
Image = collections.namedtuple('Image', 'id name')
|
|
@@ -5287,7 +5275,7 @@ class TestServerList(_TestServerList):
|
|
|
5287
5275
|
|
|
5288
5276
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5289
5277
|
|
|
5290
|
-
self.
|
|
5278
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5291
5279
|
|
|
5292
5280
|
self.assertEqual(columns_long, columns)
|
|
5293
5281
|
self.assertEqual(tuple(self.data2), tuple(data))
|
|
@@ -5336,7 +5324,7 @@ class TestServerListV273(_TestServerList):
|
|
|
5336
5324
|
|
|
5337
5325
|
# The servers to be listed.
|
|
5338
5326
|
self.servers = self.setup_sdk_servers_mock(3)
|
|
5339
|
-
self.
|
|
5327
|
+
self.compute_client.servers.return_value = self.servers
|
|
5340
5328
|
|
|
5341
5329
|
Image = collections.namedtuple('Image', 'id name')
|
|
5342
5330
|
self.image_client.images.return_value = [
|
|
@@ -5348,7 +5336,7 @@ class TestServerListV273(_TestServerList):
|
|
|
5348
5336
|
|
|
5349
5337
|
# The flavor information is embedded, so now reason for this to be
|
|
5350
5338
|
# called
|
|
5351
|
-
self.
|
|
5339
|
+
self.compute_client.flavors = mock.NonCallableMock()
|
|
5352
5340
|
|
|
5353
5341
|
self.data = tuple(
|
|
5354
5342
|
(
|
|
@@ -5384,7 +5372,7 @@ class TestServerListV273(_TestServerList):
|
|
|
5384
5372
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5385
5373
|
|
|
5386
5374
|
self.kwargs['locked'] = True
|
|
5387
|
-
self.
|
|
5375
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5388
5376
|
|
|
5389
5377
|
self.assertCountEqual(self.columns, columns)
|
|
5390
5378
|
self.assertCountEqual(self.data, tuple(data))
|
|
@@ -5399,7 +5387,7 @@ class TestServerListV273(_TestServerList):
|
|
|
5399
5387
|
columns, data = self.cmd.take_action(parsed_args)
|
|
5400
5388
|
|
|
5401
5389
|
self.kwargs['locked'] = False
|
|
5402
|
-
self.
|
|
5390
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5403
5391
|
|
|
5404
5392
|
self.assertCountEqual(self.columns, columns)
|
|
5405
5393
|
self.assertCountEqual(self.data, tuple(data))
|
|
@@ -5432,7 +5420,7 @@ class TestServerListV273(_TestServerList):
|
|
|
5432
5420
|
self.kwargs['changes-before'] = '2016-03-05T06:27:59Z'
|
|
5433
5421
|
self.kwargs['deleted'] = True
|
|
5434
5422
|
|
|
5435
|
-
self.
|
|
5423
|
+
self.compute_client.servers.assert_called_with(**self.kwargs)
|
|
5436
5424
|
|
|
5437
5425
|
self.assertCountEqual(self.columns, columns)
|
|
5438
5426
|
self.assertCountEqual(self.data, tuple(data))
|
|
@@ -5454,7 +5442,7 @@ class TestServerListV273(_TestServerList):
|
|
|
5454
5442
|
self.fail('CommandError should be raised.')
|
|
5455
5443
|
except exceptions.CommandError as e:
|
|
5456
5444
|
self.assertEqual(
|
|
5457
|
-
'Invalid changes-before value: Invalid time
|
|
5445
|
+
'Invalid changes-before value: Invalid time value', str(e)
|
|
5458
5446
|
)
|
|
5459
5447
|
mock_parse_isotime.assert_called_once_with('Invalid time value')
|
|
5460
5448
|
|
|
@@ -5516,7 +5504,7 @@ class TestServerListV273(_TestServerList):
|
|
|
5516
5504
|
class TestServerAction(compute_fakes.TestComputev2):
|
|
5517
5505
|
def run_method_with_sdk_servers(self, method_name, server_count):
|
|
5518
5506
|
servers = compute_fakes.create_sdk_servers(count=server_count)
|
|
5519
|
-
self.
|
|
5507
|
+
self.compute_client.find_server.side_effect = servers
|
|
5520
5508
|
|
|
5521
5509
|
arglist = [s.id for s in servers]
|
|
5522
5510
|
verifylist = [
|
|
@@ -5527,7 +5515,7 @@ class TestServerAction(compute_fakes.TestComputev2):
|
|
|
5527
5515
|
result = self.cmd.take_action(parsed_args)
|
|
5528
5516
|
|
|
5529
5517
|
calls = [mock.call(s.id) for s in servers]
|
|
5530
|
-
method = getattr(self.
|
|
5518
|
+
method = getattr(self.compute_client, method_name)
|
|
5531
5519
|
method.assert_has_calls(calls)
|
|
5532
5520
|
self.assertIsNone(result)
|
|
5533
5521
|
|
|
@@ -5549,8 +5537,8 @@ class TestServerLock(TestServerAction):
|
|
|
5549
5537
|
self.set_compute_api_version('2.73')
|
|
5550
5538
|
|
|
5551
5539
|
self.server = compute_fakes.create_one_sdk_server()
|
|
5552
|
-
self.
|
|
5553
|
-
self.
|
|
5540
|
+
self.compute_client.find_server.return_value = self.server
|
|
5541
|
+
self.compute_client.lock_server.return_value = None
|
|
5554
5542
|
|
|
5555
5543
|
arglist = [
|
|
5556
5544
|
self.server.id,
|
|
@@ -5565,11 +5553,11 @@ class TestServerLock(TestServerAction):
|
|
|
5565
5553
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5566
5554
|
self.cmd.take_action(parsed_args)
|
|
5567
5555
|
|
|
5568
|
-
self.
|
|
5556
|
+
self.compute_client.find_server.assert_called_with(
|
|
5569
5557
|
self.server.id,
|
|
5570
5558
|
ignore_missing=False,
|
|
5571
5559
|
)
|
|
5572
|
-
self.
|
|
5560
|
+
self.compute_client.lock_server.assert_called_with(
|
|
5573
5561
|
self.server.id,
|
|
5574
5562
|
locked_reason="blah",
|
|
5575
5563
|
)
|
|
@@ -5580,8 +5568,8 @@ class TestServerLock(TestServerAction):
|
|
|
5580
5568
|
server_a = compute_fakes.create_one_sdk_server()
|
|
5581
5569
|
server_b = compute_fakes.create_one_sdk_server()
|
|
5582
5570
|
|
|
5583
|
-
self.
|
|
5584
|
-
self.
|
|
5571
|
+
self.compute_client.find_server.side_effect = [server_a, server_b]
|
|
5572
|
+
self.compute_client.lock_server.return_value = None
|
|
5585
5573
|
arglist = [
|
|
5586
5574
|
server_a.id,
|
|
5587
5575
|
server_b.id,
|
|
@@ -5596,8 +5584,8 @@ class TestServerLock(TestServerAction):
|
|
|
5596
5584
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5597
5585
|
self.cmd.take_action(parsed_args)
|
|
5598
5586
|
|
|
5599
|
-
self.assertEqual(2, self.
|
|
5600
|
-
self.
|
|
5587
|
+
self.assertEqual(2, self.compute_client.find_server.call_count)
|
|
5588
|
+
self.compute_client.lock_server.assert_has_calls(
|
|
5601
5589
|
[
|
|
5602
5590
|
mock.call(server_a.id, locked_reason="choo..choo"),
|
|
5603
5591
|
mock.call(server_b.id, locked_reason="choo..choo"),
|
|
@@ -5636,9 +5624,9 @@ class TestServerMigrate(TestServer):
|
|
|
5636
5624
|
super().setUp()
|
|
5637
5625
|
|
|
5638
5626
|
self.server = compute_fakes.create_one_sdk_server()
|
|
5639
|
-
self.
|
|
5640
|
-
self.
|
|
5641
|
-
self.
|
|
5627
|
+
self.compute_client.find_server.return_value = self.server
|
|
5628
|
+
self.compute_client.migrate_server.return_value = None
|
|
5629
|
+
self.compute_client.live_migrate_server.return_value = None
|
|
5642
5630
|
|
|
5643
5631
|
# Get the command object to test
|
|
5644
5632
|
self.cmd = server.MigrateServer(self.app, None)
|
|
@@ -5657,13 +5645,13 @@ class TestServerMigrate(TestServer):
|
|
|
5657
5645
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5658
5646
|
result = self.cmd.take_action(parsed_args)
|
|
5659
5647
|
|
|
5660
|
-
self.
|
|
5648
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5661
5649
|
self.server.id, ignore_missing=False
|
|
5662
5650
|
)
|
|
5663
|
-
self.
|
|
5651
|
+
self.compute_client.migrate_server.assert_called_once_with(
|
|
5664
5652
|
self.server,
|
|
5665
5653
|
)
|
|
5666
|
-
self.
|
|
5654
|
+
self.compute_client.live_migrate_server.assert_not_called()
|
|
5667
5655
|
self.assertIsNone(result)
|
|
5668
5656
|
|
|
5669
5657
|
def test_server_migrate_with_host(self):
|
|
@@ -5687,13 +5675,13 @@ class TestServerMigrate(TestServer):
|
|
|
5687
5675
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5688
5676
|
result = self.cmd.take_action(parsed_args)
|
|
5689
5677
|
|
|
5690
|
-
self.
|
|
5678
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5691
5679
|
self.server.id, ignore_missing=False
|
|
5692
5680
|
)
|
|
5693
|
-
self.
|
|
5681
|
+
self.compute_client.migrate_server.assert_called_once_with(
|
|
5694
5682
|
self.server, host='fakehost'
|
|
5695
5683
|
)
|
|
5696
|
-
self.
|
|
5684
|
+
self.compute_client.live_migrate_server.assert_not_called()
|
|
5697
5685
|
self.assertIsNone(result)
|
|
5698
5686
|
|
|
5699
5687
|
def test_server_migrate_with_block_migration(self):
|
|
@@ -5713,11 +5701,11 @@ class TestServerMigrate(TestServer):
|
|
|
5713
5701
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
5714
5702
|
)
|
|
5715
5703
|
|
|
5716
|
-
self.
|
|
5704
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5717
5705
|
self.server.id, ignore_missing=False
|
|
5718
5706
|
)
|
|
5719
|
-
self.
|
|
5720
|
-
self.
|
|
5707
|
+
self.compute_client.migrate_server.assert_not_called()
|
|
5708
|
+
self.compute_client.live_migrate_server.assert_not_called()
|
|
5721
5709
|
|
|
5722
5710
|
def test_server_migrate_with_disk_overcommit(self):
|
|
5723
5711
|
arglist = [
|
|
@@ -5736,11 +5724,11 @@ class TestServerMigrate(TestServer):
|
|
|
5736
5724
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
5737
5725
|
)
|
|
5738
5726
|
|
|
5739
|
-
self.
|
|
5727
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5740
5728
|
self.server.id, ignore_missing=False
|
|
5741
5729
|
)
|
|
5742
|
-
self.
|
|
5743
|
-
self.
|
|
5730
|
+
self.compute_client.migrate_server.assert_not_called()
|
|
5731
|
+
self.compute_client.live_migrate_server.assert_not_called()
|
|
5744
5732
|
|
|
5745
5733
|
def test_server_migrate_with_host_pre_v256(self):
|
|
5746
5734
|
# Tests that --host is not allowed for a cold migration
|
|
@@ -5772,11 +5760,11 @@ class TestServerMigrate(TestServer):
|
|
|
5772
5760
|
str(ex),
|
|
5773
5761
|
)
|
|
5774
5762
|
|
|
5775
|
-
self.
|
|
5763
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5776
5764
|
self.server.id, ignore_missing=False
|
|
5777
5765
|
)
|
|
5778
|
-
self.
|
|
5779
|
-
self.
|
|
5766
|
+
self.compute_client.migrate_server.assert_not_called()
|
|
5767
|
+
self.compute_client.live_migrate_server.assert_not_called()
|
|
5780
5768
|
|
|
5781
5769
|
def test_server_live_migrate(self):
|
|
5782
5770
|
# Tests the --live-migration option without --host or --live.
|
|
@@ -5795,16 +5783,16 @@ class TestServerMigrate(TestServer):
|
|
|
5795
5783
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5796
5784
|
result = self.cmd.take_action(parsed_args)
|
|
5797
5785
|
|
|
5798
|
-
self.
|
|
5786
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5799
5787
|
self.server.id, ignore_missing=False
|
|
5800
5788
|
)
|
|
5801
|
-
self.
|
|
5789
|
+
self.compute_client.live_migrate_server.assert_called_once_with(
|
|
5802
5790
|
self.server,
|
|
5803
5791
|
block_migration=False,
|
|
5804
5792
|
host=None,
|
|
5805
5793
|
disk_overcommit=False,
|
|
5806
5794
|
)
|
|
5807
|
-
self.
|
|
5795
|
+
self.compute_client.migrate_server.assert_not_called()
|
|
5808
5796
|
self.assertIsNone(result)
|
|
5809
5797
|
|
|
5810
5798
|
def test_server_live_migrate_with_host(self):
|
|
@@ -5828,17 +5816,17 @@ class TestServerMigrate(TestServer):
|
|
|
5828
5816
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5829
5817
|
result = self.cmd.take_action(parsed_args)
|
|
5830
5818
|
|
|
5831
|
-
self.
|
|
5819
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5832
5820
|
self.server.id, ignore_missing=False
|
|
5833
5821
|
)
|
|
5834
5822
|
# No disk_overcommit and block_migration defaults to auto with
|
|
5835
5823
|
# microversion >= 2.25
|
|
5836
|
-
self.
|
|
5824
|
+
self.compute_client.live_migrate_server.assert_called_once_with(
|
|
5837
5825
|
self.server,
|
|
5838
5826
|
block_migration='auto',
|
|
5839
5827
|
host='fakehost',
|
|
5840
5828
|
)
|
|
5841
|
-
self.
|
|
5829
|
+
self.compute_client.migrate_server.assert_not_called()
|
|
5842
5830
|
self.assertIsNone(result)
|
|
5843
5831
|
|
|
5844
5832
|
def test_server_live_migrate_with_host_pre_v230(self):
|
|
@@ -5871,11 +5859,11 @@ class TestServerMigrate(TestServer):
|
|
|
5871
5859
|
str(ex),
|
|
5872
5860
|
)
|
|
5873
5861
|
|
|
5874
|
-
self.
|
|
5862
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5875
5863
|
self.server.id, ignore_missing=False
|
|
5876
5864
|
)
|
|
5877
|
-
self.
|
|
5878
|
-
self.
|
|
5865
|
+
self.compute_client.migrate_server.assert_not_called()
|
|
5866
|
+
self.compute_client.live_migrate_server.assert_not_called()
|
|
5879
5867
|
|
|
5880
5868
|
def test_server_block_live_migrate(self):
|
|
5881
5869
|
self.set_compute_api_version('2.24')
|
|
@@ -5895,18 +5883,18 @@ class TestServerMigrate(TestServer):
|
|
|
5895
5883
|
|
|
5896
5884
|
result = self.cmd.take_action(parsed_args)
|
|
5897
5885
|
|
|
5898
|
-
self.
|
|
5886
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5899
5887
|
self.server.id, ignore_missing=False
|
|
5900
5888
|
)
|
|
5901
5889
|
# No disk_overcommit and block_migration defaults to auto with
|
|
5902
5890
|
# microversion >= 2.25
|
|
5903
|
-
self.
|
|
5891
|
+
self.compute_client.live_migrate_server.assert_called_once_with(
|
|
5904
5892
|
self.server,
|
|
5905
5893
|
block_migration=True,
|
|
5906
5894
|
disk_overcommit=False,
|
|
5907
5895
|
host=None,
|
|
5908
5896
|
)
|
|
5909
|
-
self.
|
|
5897
|
+
self.compute_client.migrate_server.assert_not_called()
|
|
5910
5898
|
self.assertIsNone(result)
|
|
5911
5899
|
|
|
5912
5900
|
def test_server_live_migrate_with_disk_overcommit(self):
|
|
@@ -5927,16 +5915,16 @@ class TestServerMigrate(TestServer):
|
|
|
5927
5915
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5928
5916
|
result = self.cmd.take_action(parsed_args)
|
|
5929
5917
|
|
|
5930
|
-
self.
|
|
5918
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5931
5919
|
self.server.id, ignore_missing=False
|
|
5932
5920
|
)
|
|
5933
|
-
self.
|
|
5921
|
+
self.compute_client.live_migrate_server.assert_called_once_with(
|
|
5934
5922
|
self.server,
|
|
5935
5923
|
block_migration=False,
|
|
5936
5924
|
disk_overcommit=True,
|
|
5937
5925
|
host=None,
|
|
5938
5926
|
)
|
|
5939
|
-
self.
|
|
5927
|
+
self.compute_client.migrate_server.assert_not_called()
|
|
5940
5928
|
self.assertIsNone(result)
|
|
5941
5929
|
|
|
5942
5930
|
def test_server_live_migrate_with_disk_overcommit_post_v224(self):
|
|
@@ -5958,16 +5946,16 @@ class TestServerMigrate(TestServer):
|
|
|
5958
5946
|
with mock.patch.object(self.cmd.log, 'warning') as mock_warning:
|
|
5959
5947
|
result = self.cmd.take_action(parsed_args)
|
|
5960
5948
|
|
|
5961
|
-
self.
|
|
5949
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5962
5950
|
self.server.id, ignore_missing=False
|
|
5963
5951
|
)
|
|
5964
5952
|
# There should be no 'disk_over_commit' value present
|
|
5965
|
-
self.
|
|
5953
|
+
self.compute_client.live_migrate_server.assert_called_once_with(
|
|
5966
5954
|
self.server,
|
|
5967
5955
|
block_migration='auto',
|
|
5968
5956
|
host=None,
|
|
5969
5957
|
)
|
|
5970
|
-
self.
|
|
5958
|
+
self.compute_client.migrate_server.assert_not_called()
|
|
5971
5959
|
self.assertIsNone(result)
|
|
5972
5960
|
|
|
5973
5961
|
# A warning should have been logged for using --disk-overcommit.
|
|
@@ -5993,15 +5981,15 @@ class TestServerMigrate(TestServer):
|
|
|
5993
5981
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5994
5982
|
result = self.cmd.take_action(parsed_args)
|
|
5995
5983
|
|
|
5996
|
-
self.
|
|
5984
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
5997
5985
|
self.server.id, ignore_missing=False
|
|
5998
5986
|
)
|
|
5999
|
-
self.
|
|
5987
|
+
self.compute_client.migrate_server.assert_called_once_with(
|
|
6000
5988
|
self.server,
|
|
6001
5989
|
)
|
|
6002
|
-
self.
|
|
5990
|
+
self.compute_client.live_migrate_server.assert_not_called()
|
|
6003
5991
|
mock_wait_for_status.assert_called_once_with(
|
|
6004
|
-
self.
|
|
5992
|
+
self.compute_client.get_server,
|
|
6005
5993
|
self.server.id,
|
|
6006
5994
|
success_status=('active', 'verify_resize'),
|
|
6007
5995
|
callback=mock.ANY,
|
|
@@ -6026,15 +6014,15 @@ class TestServerMigrate(TestServer):
|
|
|
6026
6014
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
6027
6015
|
)
|
|
6028
6016
|
|
|
6029
|
-
self.
|
|
6017
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6030
6018
|
self.server.id, ignore_missing=False
|
|
6031
6019
|
)
|
|
6032
|
-
self.
|
|
6020
|
+
self.compute_client.migrate_server.assert_called_once_with(
|
|
6033
6021
|
self.server,
|
|
6034
6022
|
)
|
|
6035
|
-
self.
|
|
6023
|
+
self.compute_client.live_migrate_server.assert_not_called()
|
|
6036
6024
|
mock_wait_for_status.assert_called_once_with(
|
|
6037
|
-
self.
|
|
6025
|
+
self.compute_client.get_server,
|
|
6038
6026
|
self.server.id,
|
|
6039
6027
|
success_status=('active', 'verify_resize'),
|
|
6040
6028
|
callback=mock.ANY,
|
|
@@ -6045,7 +6033,7 @@ class TestServerReboot(TestServer):
|
|
|
6045
6033
|
def setUp(self):
|
|
6046
6034
|
super().setUp()
|
|
6047
6035
|
|
|
6048
|
-
self.
|
|
6036
|
+
self.compute_client.reboot_server.return_value = None
|
|
6049
6037
|
|
|
6050
6038
|
self.cmd = server.RebootServer(self.app, None)
|
|
6051
6039
|
|
|
@@ -6064,7 +6052,7 @@ class TestServerReboot(TestServer):
|
|
|
6064
6052
|
|
|
6065
6053
|
result = self.cmd.take_action(parsed_args)
|
|
6066
6054
|
|
|
6067
|
-
self.
|
|
6055
|
+
self.compute_client.reboot_server.assert_called_once_with(
|
|
6068
6056
|
servers[0].id,
|
|
6069
6057
|
'SOFT',
|
|
6070
6058
|
)
|
|
@@ -6086,7 +6074,7 @@ class TestServerReboot(TestServer):
|
|
|
6086
6074
|
|
|
6087
6075
|
result = self.cmd.take_action(parsed_args)
|
|
6088
6076
|
|
|
6089
|
-
self.
|
|
6077
|
+
self.compute_client.reboot_server.assert_called_once_with(
|
|
6090
6078
|
servers[0].id,
|
|
6091
6079
|
'HARD',
|
|
6092
6080
|
)
|
|
@@ -6110,12 +6098,12 @@ class TestServerReboot(TestServer):
|
|
|
6110
6098
|
result = self.cmd.take_action(parsed_args)
|
|
6111
6099
|
|
|
6112
6100
|
self.assertIsNone(result)
|
|
6113
|
-
self.
|
|
6101
|
+
self.compute_client.reboot_server.assert_called_once_with(
|
|
6114
6102
|
servers[0].id,
|
|
6115
6103
|
'SOFT',
|
|
6116
6104
|
)
|
|
6117
6105
|
mock_wait_for_status.assert_called_once_with(
|
|
6118
|
-
self.
|
|
6106
|
+
self.compute_client.get_server,
|
|
6119
6107
|
servers[0].id,
|
|
6120
6108
|
callback=mock.ANY,
|
|
6121
6109
|
)
|
|
@@ -6144,12 +6132,12 @@ class TestServerReboot(TestServer):
|
|
|
6144
6132
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
6145
6133
|
)
|
|
6146
6134
|
|
|
6147
|
-
self.
|
|
6135
|
+
self.compute_client.reboot_server.assert_called_once_with(
|
|
6148
6136
|
servers[0].id,
|
|
6149
6137
|
'SOFT',
|
|
6150
6138
|
)
|
|
6151
6139
|
mock_wait_for_status.assert_called_once_with(
|
|
6152
|
-
self.
|
|
6140
|
+
self.compute_client.get_server,
|
|
6153
6141
|
servers[0].id,
|
|
6154
6142
|
callback=mock.ANY,
|
|
6155
6143
|
)
|
|
@@ -6181,8 +6169,8 @@ class TestServerRebuild(TestServer):
|
|
|
6181
6169
|
'image': {'id': self.image.id},
|
|
6182
6170
|
}
|
|
6183
6171
|
self.server = compute_fakes.create_one_sdk_server(attrs=attrs)
|
|
6184
|
-
self.
|
|
6185
|
-
self.
|
|
6172
|
+
self.compute_client.find_server.return_value = self.server
|
|
6173
|
+
self.compute_client.rebuild_server.return_value = self.server
|
|
6186
6174
|
|
|
6187
6175
|
self.cmd = server.RebuildServer(self.app, None)
|
|
6188
6176
|
|
|
@@ -6204,14 +6192,14 @@ class TestServerRebuild(TestServer):
|
|
|
6204
6192
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6205
6193
|
self.cmd.take_action(parsed_args)
|
|
6206
6194
|
|
|
6207
|
-
self.
|
|
6195
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6208
6196
|
self.server.id, ignore_missing=False
|
|
6209
6197
|
)
|
|
6210
6198
|
self.image_client.find_image.assert_called_with(
|
|
6211
6199
|
image_name, ignore_missing=False
|
|
6212
6200
|
)
|
|
6213
6201
|
self.image_client.get_image.assert_called_with(self.image.id)
|
|
6214
|
-
self.
|
|
6202
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6215
6203
|
self.server, image
|
|
6216
6204
|
)
|
|
6217
6205
|
|
|
@@ -6225,14 +6213,14 @@ class TestServerRebuild(TestServer):
|
|
|
6225
6213
|
# Get the command object to test.
|
|
6226
6214
|
self.cmd.take_action(parsed_args)
|
|
6227
6215
|
|
|
6228
|
-
self.
|
|
6216
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6229
6217
|
self.server.id, ignore_missing=False
|
|
6230
6218
|
)
|
|
6231
6219
|
self.image_client.find_image.assert_not_called()
|
|
6232
6220
|
self.image_client.get_image.assert_has_calls(
|
|
6233
6221
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6234
6222
|
)
|
|
6235
|
-
self.
|
|
6223
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6236
6224
|
self.server, self.image
|
|
6237
6225
|
)
|
|
6238
6226
|
|
|
@@ -6269,14 +6257,14 @@ class TestServerRebuild(TestServer):
|
|
|
6269
6257
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6270
6258
|
self.cmd.take_action(parsed_args)
|
|
6271
6259
|
|
|
6272
|
-
self.
|
|
6260
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6273
6261
|
self.server.id, ignore_missing=False
|
|
6274
6262
|
)
|
|
6275
6263
|
self.image_client.find_image.assert_not_called()
|
|
6276
6264
|
self.image_client.get_image.assert_has_calls(
|
|
6277
6265
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6278
6266
|
)
|
|
6279
|
-
self.
|
|
6267
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6280
6268
|
self.server, self.image, name=name
|
|
6281
6269
|
)
|
|
6282
6270
|
|
|
@@ -6293,14 +6281,14 @@ class TestServerRebuild(TestServer):
|
|
|
6293
6281
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6294
6282
|
self.cmd.take_action(parsed_args)
|
|
6295
6283
|
|
|
6296
|
-
self.
|
|
6284
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6297
6285
|
self.server.id, ignore_missing=False
|
|
6298
6286
|
)
|
|
6299
6287
|
self.image_client.find_image.assert_not_called()
|
|
6300
6288
|
self.image_client.get_image.assert_has_calls(
|
|
6301
6289
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6302
6290
|
)
|
|
6303
|
-
self.
|
|
6291
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6304
6292
|
self.server, self.image, preserve_ephemeral=True
|
|
6305
6293
|
)
|
|
6306
6294
|
|
|
@@ -6318,14 +6306,14 @@ class TestServerRebuild(TestServer):
|
|
|
6318
6306
|
# Get the command object to test
|
|
6319
6307
|
self.cmd.take_action(parsed_args)
|
|
6320
6308
|
|
|
6321
|
-
self.
|
|
6309
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6322
6310
|
self.server.id, ignore_missing=False
|
|
6323
6311
|
)
|
|
6324
6312
|
self.image_client.find_image.assert_not_called()
|
|
6325
6313
|
self.image_client.get_image.assert_has_calls(
|
|
6326
6314
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6327
6315
|
)
|
|
6328
|
-
self.
|
|
6316
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6329
6317
|
self.server, self.image, preserve_ephemeral=False
|
|
6330
6318
|
)
|
|
6331
6319
|
|
|
@@ -6337,14 +6325,14 @@ class TestServerRebuild(TestServer):
|
|
|
6337
6325
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6338
6326
|
self.cmd.take_action(parsed_args)
|
|
6339
6327
|
|
|
6340
|
-
self.
|
|
6328
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6341
6329
|
self.server.id, ignore_missing=False
|
|
6342
6330
|
)
|
|
6343
6331
|
self.image_client.find_image.assert_not_called()
|
|
6344
6332
|
self.image_client.get_image.assert_has_calls(
|
|
6345
6333
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6346
6334
|
)
|
|
6347
|
-
self.
|
|
6335
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6348
6336
|
self.server,
|
|
6349
6337
|
self.image,
|
|
6350
6338
|
admin_password=password,
|
|
@@ -6360,14 +6348,14 @@ class TestServerRebuild(TestServer):
|
|
|
6360
6348
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6361
6349
|
self.cmd.take_action(parsed_args)
|
|
6362
6350
|
|
|
6363
|
-
self.
|
|
6351
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6364
6352
|
self.server.id, ignore_missing=False
|
|
6365
6353
|
)
|
|
6366
6354
|
self.image_client.find_image.assert_not_called()
|
|
6367
6355
|
self.image_client.get_image.assert_has_calls(
|
|
6368
6356
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6369
6357
|
)
|
|
6370
|
-
self.
|
|
6358
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6371
6359
|
self.server, self.image, description=description
|
|
6372
6360
|
)
|
|
6373
6361
|
|
|
@@ -6397,19 +6385,19 @@ class TestServerRebuild(TestServer):
|
|
|
6397
6385
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6398
6386
|
self.cmd.take_action(parsed_args)
|
|
6399
6387
|
|
|
6400
|
-
self.
|
|
6388
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6401
6389
|
self.server.id, ignore_missing=False
|
|
6402
6390
|
)
|
|
6403
6391
|
self.image_client.find_image.assert_not_called()
|
|
6404
6392
|
self.image_client.get_image.assert_has_calls(
|
|
6405
6393
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6406
6394
|
)
|
|
6407
|
-
self.
|
|
6395
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6408
6396
|
self.server, self.image
|
|
6409
6397
|
)
|
|
6410
6398
|
|
|
6411
6399
|
mock_wait_for_status.assert_called_once_with(
|
|
6412
|
-
self.
|
|
6400
|
+
self.compute_client.get_server,
|
|
6413
6401
|
self.server.id,
|
|
6414
6402
|
callback=mock.ANY,
|
|
6415
6403
|
success_status=['active'],
|
|
@@ -6431,17 +6419,17 @@ class TestServerRebuild(TestServer):
|
|
|
6431
6419
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
6432
6420
|
)
|
|
6433
6421
|
|
|
6434
|
-
self.
|
|
6422
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6435
6423
|
self.server.id, ignore_missing=False
|
|
6436
6424
|
)
|
|
6437
6425
|
self.image_client.find_image.assert_not_called()
|
|
6438
6426
|
self.image_client.get_image.assert_called_once_with(self.image.id)
|
|
6439
|
-
self.
|
|
6427
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6440
6428
|
self.server, self.image
|
|
6441
6429
|
)
|
|
6442
6430
|
|
|
6443
6431
|
mock_wait_for_status.assert_called_once_with(
|
|
6444
|
-
self.
|
|
6432
|
+
self.compute_client.get_server,
|
|
6445
6433
|
self.server.id,
|
|
6446
6434
|
callback=mock.ANY,
|
|
6447
6435
|
success_status=['active'],
|
|
@@ -6462,19 +6450,19 @@ class TestServerRebuild(TestServer):
|
|
|
6462
6450
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6463
6451
|
self.cmd.take_action(parsed_args)
|
|
6464
6452
|
|
|
6465
|
-
self.
|
|
6453
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6466
6454
|
self.server.id, ignore_missing=False
|
|
6467
6455
|
)
|
|
6468
6456
|
self.image_client.find_image.assert_not_called()
|
|
6469
6457
|
self.image_client.get_image.assert_has_calls(
|
|
6470
6458
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6471
6459
|
)
|
|
6472
|
-
self.
|
|
6460
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6473
6461
|
self.server, self.image
|
|
6474
6462
|
)
|
|
6475
6463
|
|
|
6476
6464
|
mock_wait_for_status.assert_called_once_with(
|
|
6477
|
-
self.
|
|
6465
|
+
self.compute_client.get_server,
|
|
6478
6466
|
self.server.id,
|
|
6479
6467
|
callback=mock.ANY,
|
|
6480
6468
|
success_status=['shutoff'],
|
|
@@ -6495,19 +6483,19 @@ class TestServerRebuild(TestServer):
|
|
|
6495
6483
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6496
6484
|
self.cmd.take_action(parsed_args)
|
|
6497
6485
|
|
|
6498
|
-
self.
|
|
6486
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6499
6487
|
self.server.id, ignore_missing=False
|
|
6500
6488
|
)
|
|
6501
6489
|
self.image_client.find_image.assert_not_called()
|
|
6502
6490
|
self.image_client.get_image.assert_has_calls(
|
|
6503
6491
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6504
6492
|
)
|
|
6505
|
-
self.
|
|
6493
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6506
6494
|
self.server, self.image
|
|
6507
6495
|
)
|
|
6508
6496
|
|
|
6509
6497
|
mock_wait_for_status.assert_called_once_with(
|
|
6510
|
-
self.
|
|
6498
|
+
self.compute_client.get_server,
|
|
6511
6499
|
self.server.id,
|
|
6512
6500
|
callback=mock.ANY,
|
|
6513
6501
|
success_status=['active'],
|
|
@@ -6527,12 +6515,12 @@ class TestServerRebuild(TestServer):
|
|
|
6527
6515
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
6528
6516
|
)
|
|
6529
6517
|
|
|
6530
|
-
self.
|
|
6518
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6531
6519
|
self.server.id, ignore_missing=False
|
|
6532
6520
|
)
|
|
6533
6521
|
self.image_client.find_image.assert_not_called()
|
|
6534
6522
|
self.image_client.get_image.assert_called_once_with(self.image.id)
|
|
6535
|
-
self.
|
|
6523
|
+
self.compute_client.rebuild_server.assert_not_called()
|
|
6536
6524
|
|
|
6537
6525
|
def test_rebuild_with_property(self):
|
|
6538
6526
|
arglist = [
|
|
@@ -6551,14 +6539,14 @@ class TestServerRebuild(TestServer):
|
|
|
6551
6539
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6552
6540
|
self.cmd.take_action(parsed_args)
|
|
6553
6541
|
|
|
6554
|
-
self.
|
|
6542
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6555
6543
|
self.server.id, ignore_missing=False
|
|
6556
6544
|
)
|
|
6557
6545
|
self.image_client.find_image.assert_not_called()
|
|
6558
6546
|
self.image_client.get_image.assert_has_calls(
|
|
6559
6547
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6560
6548
|
)
|
|
6561
|
-
self.
|
|
6549
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6562
6550
|
self.server, self.image, metadata=expected_properties
|
|
6563
6551
|
)
|
|
6564
6552
|
|
|
@@ -6579,14 +6567,14 @@ class TestServerRebuild(TestServer):
|
|
|
6579
6567
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6580
6568
|
self.cmd.take_action(parsed_args)
|
|
6581
6569
|
|
|
6582
|
-
self.
|
|
6570
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6583
6571
|
self.server.id, ignore_missing=False
|
|
6584
6572
|
)
|
|
6585
6573
|
self.image_client.find_image.assert_not_called()
|
|
6586
6574
|
self.image_client.get_image.assert_has_calls(
|
|
6587
6575
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6588
6576
|
)
|
|
6589
|
-
self.
|
|
6577
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6590
6578
|
self.server, self.image, key_name=self.server.key_name
|
|
6591
6579
|
)
|
|
6592
6580
|
|
|
@@ -6624,14 +6612,14 @@ class TestServerRebuild(TestServer):
|
|
|
6624
6612
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6625
6613
|
self.cmd.take_action(parsed_args)
|
|
6626
6614
|
|
|
6627
|
-
self.
|
|
6615
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6628
6616
|
self.server.id, ignore_missing=False
|
|
6629
6617
|
)
|
|
6630
6618
|
self.image_client.find_image.assert_not_called()
|
|
6631
6619
|
self.image_client.get_image.assert_has_calls(
|
|
6632
6620
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6633
6621
|
)
|
|
6634
|
-
self.
|
|
6622
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6635
6623
|
self.server, self.image, key_name=None
|
|
6636
6624
|
)
|
|
6637
6625
|
|
|
@@ -6679,14 +6667,14 @@ class TestServerRebuild(TestServer):
|
|
|
6679
6667
|
# Ensure the userdata file is opened
|
|
6680
6668
|
mock_file.assert_called_with('userdata.sh', 'rb')
|
|
6681
6669
|
|
|
6682
|
-
self.
|
|
6670
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6683
6671
|
self.server.id, ignore_missing=False
|
|
6684
6672
|
)
|
|
6685
6673
|
self.image_client.find_image.assert_not_called()
|
|
6686
6674
|
self.image_client.get_image.assert_has_calls(
|
|
6687
6675
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6688
6676
|
)
|
|
6689
|
-
self.
|
|
6677
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6690
6678
|
self.server,
|
|
6691
6679
|
self.image,
|
|
6692
6680
|
user_data=base64.b64encode(user_data).decode('utf-8'),
|
|
@@ -6726,14 +6714,14 @@ class TestServerRebuild(TestServer):
|
|
|
6726
6714
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6727
6715
|
self.cmd.take_action(parsed_args)
|
|
6728
6716
|
|
|
6729
|
-
self.
|
|
6717
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6730
6718
|
self.server.id, ignore_missing=False
|
|
6731
6719
|
)
|
|
6732
6720
|
self.image_client.find_image.assert_not_called()
|
|
6733
6721
|
self.image_client.get_image.assert_has_calls(
|
|
6734
6722
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6735
6723
|
)
|
|
6736
|
-
self.
|
|
6724
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6737
6725
|
self.server, self.image, user_data=None
|
|
6738
6726
|
)
|
|
6739
6727
|
|
|
@@ -6787,14 +6775,14 @@ class TestServerRebuild(TestServer):
|
|
|
6787
6775
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6788
6776
|
self.cmd.take_action(parsed_args)
|
|
6789
6777
|
|
|
6790
|
-
self.
|
|
6778
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6791
6779
|
self.server.id, ignore_missing=False
|
|
6792
6780
|
)
|
|
6793
6781
|
self.image_client.find_image.assert_not_called()
|
|
6794
6782
|
self.image_client.get_image.assert_has_calls(
|
|
6795
6783
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6796
6784
|
)
|
|
6797
|
-
self.
|
|
6785
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6798
6786
|
self.server, self.image, trusted_image_certificates=['foo', 'bar']
|
|
6799
6787
|
)
|
|
6800
6788
|
|
|
@@ -6833,14 +6821,14 @@ class TestServerRebuild(TestServer):
|
|
|
6833
6821
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6834
6822
|
self.cmd.take_action(parsed_args)
|
|
6835
6823
|
|
|
6836
|
-
self.
|
|
6824
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6837
6825
|
self.server.id, ignore_missing=False
|
|
6838
6826
|
)
|
|
6839
6827
|
self.image_client.find_image.assert_not_called()
|
|
6840
6828
|
self.image_client.get_image.assert_has_calls(
|
|
6841
6829
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6842
6830
|
)
|
|
6843
|
-
self.
|
|
6831
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6844
6832
|
self.server, self.image, trusted_image_certificates=None
|
|
6845
6833
|
)
|
|
6846
6834
|
|
|
@@ -6877,14 +6865,14 @@ class TestServerRebuild(TestServer):
|
|
|
6877
6865
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6878
6866
|
self.cmd.take_action(parsed_args)
|
|
6879
6867
|
|
|
6880
|
-
self.
|
|
6868
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6881
6869
|
self.server.id, ignore_missing=False
|
|
6882
6870
|
)
|
|
6883
6871
|
self.image_client.find_image.assert_not_called()
|
|
6884
6872
|
self.image_client.get_image.assert_has_calls(
|
|
6885
6873
|
[mock.call(self.image.id), mock.call(self.image.id)]
|
|
6886
6874
|
)
|
|
6887
|
-
self.
|
|
6875
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6888
6876
|
self.server, self.image, hostname='new-hostname'
|
|
6889
6877
|
)
|
|
6890
6878
|
|
|
@@ -6916,8 +6904,8 @@ class TestServerRebuildVolumeBacked(TestServer):
|
|
|
6916
6904
|
'image': '',
|
|
6917
6905
|
}
|
|
6918
6906
|
self.server = compute_fakes.create_one_sdk_server(attrs=attrs)
|
|
6919
|
-
self.
|
|
6920
|
-
self.
|
|
6907
|
+
self.compute_client.find_server.return_value = self.server
|
|
6908
|
+
self.compute_client.rebuild_server.return_value = self.server
|
|
6921
6909
|
|
|
6922
6910
|
self.cmd = server.RebuildServer(self.app, None)
|
|
6923
6911
|
|
|
@@ -6939,14 +6927,14 @@ class TestServerRebuildVolumeBacked(TestServer):
|
|
|
6939
6927
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
6940
6928
|
self.cmd.take_action(parsed_args)
|
|
6941
6929
|
|
|
6942
|
-
self.
|
|
6930
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
6943
6931
|
self.server.id, ignore_missing=False
|
|
6944
6932
|
)
|
|
6945
6933
|
self.image_client.find_image.assert_called_with(
|
|
6946
6934
|
self.new_image.id, ignore_missing=False
|
|
6947
6935
|
)
|
|
6948
6936
|
self.image_client.get_image.assert_not_called()
|
|
6949
|
-
self.
|
|
6937
|
+
self.compute_client.rebuild_server.assert_called_once_with(
|
|
6950
6938
|
self.server, self.new_image
|
|
6951
6939
|
)
|
|
6952
6940
|
|
|
@@ -7011,8 +6999,8 @@ class TestServerEvacuate(TestServer):
|
|
|
7011
6999
|
self.new_server = compute_fakes.create_one_sdk_server(attrs=attrs)
|
|
7012
7000
|
|
|
7013
7001
|
# Return value for utils.find_resource for server.
|
|
7014
|
-
self.
|
|
7015
|
-
self.
|
|
7002
|
+
self.compute_client.find_server.return_value = self.server
|
|
7003
|
+
self.compute_client.get_server.return_value = self.server
|
|
7016
7004
|
|
|
7017
7005
|
self.cmd = server.EvacuateServer(self.app, None)
|
|
7018
7006
|
|
|
@@ -7020,15 +7008,13 @@ class TestServerEvacuate(TestServer):
|
|
|
7020
7008
|
parsed_args = self.check_parser(self.cmd, args, verify_args)
|
|
7021
7009
|
self.cmd.take_action(parsed_args)
|
|
7022
7010
|
|
|
7023
|
-
self.
|
|
7011
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7024
7012
|
self.server.id, ignore_missing=False
|
|
7025
7013
|
)
|
|
7026
|
-
self.
|
|
7014
|
+
self.compute_client.evacuate_server.assert_called_once_with(
|
|
7027
7015
|
self.server, **evac_args
|
|
7028
7016
|
)
|
|
7029
|
-
self.
|
|
7030
|
-
self.server.id
|
|
7031
|
-
)
|
|
7017
|
+
self.compute_client.get_server.assert_called_once_with(self.server.id)
|
|
7032
7018
|
|
|
7033
7019
|
def test_evacuate(self):
|
|
7034
7020
|
args = [
|
|
@@ -7142,7 +7128,7 @@ class TestServerEvacuate(TestServer):
|
|
|
7142
7128
|
}
|
|
7143
7129
|
self._test_evacuate(args, verify_args, evac_args)
|
|
7144
7130
|
mock_wait_for_status.assert_called_once_with(
|
|
7145
|
-
self.
|
|
7131
|
+
self.compute_client.get_server,
|
|
7146
7132
|
self.server.id,
|
|
7147
7133
|
callback=mock.ANY,
|
|
7148
7134
|
)
|
|
@@ -7170,12 +7156,10 @@ class TestServerRemoveFixedIP(compute_fakes.TestComputev2):
|
|
|
7170
7156
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7171
7157
|
result = self.cmd.take_action(parsed_args)
|
|
7172
7158
|
|
|
7173
|
-
self.
|
|
7159
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7174
7160
|
self.server.id, ignore_missing=False
|
|
7175
7161
|
)
|
|
7176
|
-
self.
|
|
7177
|
-
self.server, '1.2.3.4'
|
|
7178
|
-
)
|
|
7162
|
+
self.compute_client.remove_fixed_ip_from_server(self.server, '1.2.3.4')
|
|
7179
7163
|
self.assertIsNone(result)
|
|
7180
7164
|
|
|
7181
7165
|
|
|
@@ -7184,7 +7168,7 @@ class TestServerRescue(compute_fakes.TestComputev2):
|
|
|
7184
7168
|
super().setUp()
|
|
7185
7169
|
|
|
7186
7170
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7187
|
-
self.
|
|
7171
|
+
self.compute_client.find_server.return_value = self.server
|
|
7188
7172
|
|
|
7189
7173
|
self.cmd = server.RescueServer(self.app, None)
|
|
7190
7174
|
|
|
@@ -7199,10 +7183,10 @@ class TestServerRescue(compute_fakes.TestComputev2):
|
|
|
7199
7183
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7200
7184
|
result = self.cmd.take_action(parsed_args)
|
|
7201
7185
|
|
|
7202
|
-
self.
|
|
7186
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7203
7187
|
self.server.id, ignore_missing=False
|
|
7204
7188
|
)
|
|
7205
|
-
self.
|
|
7189
|
+
self.compute_client.rescue_server.assert_called_once_with(
|
|
7206
7190
|
self.server, admin_pass=None, image_ref=None
|
|
7207
7191
|
)
|
|
7208
7192
|
self.assertIsNone(result)
|
|
@@ -7226,10 +7210,10 @@ class TestServerRescue(compute_fakes.TestComputev2):
|
|
|
7226
7210
|
self.image_client.find_image.assert_called_with(
|
|
7227
7211
|
new_image.id, ignore_missing=False
|
|
7228
7212
|
)
|
|
7229
|
-
self.
|
|
7213
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7230
7214
|
self.server.id, ignore_missing=False
|
|
7231
7215
|
)
|
|
7232
|
-
self.
|
|
7216
|
+
self.compute_client.rescue_server.assert_called_once_with(
|
|
7233
7217
|
self.server, admin_pass=None, image_ref=new_image.id
|
|
7234
7218
|
)
|
|
7235
7219
|
self.assertIsNone(result)
|
|
@@ -7249,10 +7233,10 @@ class TestServerRescue(compute_fakes.TestComputev2):
|
|
|
7249
7233
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7250
7234
|
result = self.cmd.take_action(parsed_args)
|
|
7251
7235
|
|
|
7252
|
-
self.
|
|
7236
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7253
7237
|
self.server.id, ignore_missing=False
|
|
7254
7238
|
)
|
|
7255
|
-
self.
|
|
7239
|
+
self.compute_client.rescue_server.assert_called_once_with(
|
|
7256
7240
|
self.server, admin_pass=password, image_ref=None
|
|
7257
7241
|
)
|
|
7258
7242
|
self.assertIsNone(result)
|
|
@@ -7264,7 +7248,7 @@ class TestServerRemoveFloatingIPCompute(compute_fakes.TestComputev2):
|
|
|
7264
7248
|
|
|
7265
7249
|
self.app.client_manager.network_endpoint_enabled = False
|
|
7266
7250
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7267
|
-
self.
|
|
7251
|
+
self.compute_client.find_server.return_value = self.server
|
|
7268
7252
|
|
|
7269
7253
|
self.cmd = server.RemoveFloatingIP(self.app, None)
|
|
7270
7254
|
|
|
@@ -7281,10 +7265,10 @@ class TestServerRemoveFloatingIPCompute(compute_fakes.TestComputev2):
|
|
|
7281
7265
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7282
7266
|
self.cmd.take_action(parsed_args)
|
|
7283
7267
|
|
|
7284
|
-
self.
|
|
7268
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7285
7269
|
self.server.name, ignore_missing=False
|
|
7286
7270
|
)
|
|
7287
|
-
self.
|
|
7271
|
+
self.compute_client.remove_floating_ip_from_server.assert_called_once_with(
|
|
7288
7272
|
self.server, '1.2.3.4'
|
|
7289
7273
|
)
|
|
7290
7274
|
|
|
@@ -7352,7 +7336,7 @@ class TestServerRemovePort(TestServer):
|
|
|
7352
7336
|
|
|
7353
7337
|
result = self.cmd.take_action(parsed_args)
|
|
7354
7338
|
|
|
7355
|
-
self.
|
|
7339
|
+
self.compute_client.delete_server_interface.assert_called_with(
|
|
7356
7340
|
port_id, server=servers[0], ignore_missing=False
|
|
7357
7341
|
)
|
|
7358
7342
|
self.assertIsNone(result)
|
|
@@ -7381,9 +7365,7 @@ class TestServerRemoveNetwork(TestServer):
|
|
|
7381
7365
|
|
|
7382
7366
|
self.find_network = mock.Mock()
|
|
7383
7367
|
self.app.client_manager.network.find_network = self.find_network
|
|
7384
|
-
self.
|
|
7385
|
-
self.fake_inf
|
|
7386
|
-
]
|
|
7368
|
+
self.compute_client.server_interfaces.return_value = [self.fake_inf]
|
|
7387
7369
|
|
|
7388
7370
|
def _test_server_remove_network(self, network_id):
|
|
7389
7371
|
self.fake_inf.net_id = network_id
|
|
@@ -7403,10 +7385,10 @@ class TestServerRemoveNetwork(TestServer):
|
|
|
7403
7385
|
|
|
7404
7386
|
result = self.cmd.take_action(parsed_args)
|
|
7405
7387
|
|
|
7406
|
-
self.
|
|
7388
|
+
self.compute_client.server_interfaces.assert_called_once_with(
|
|
7407
7389
|
servers[0]
|
|
7408
7390
|
)
|
|
7409
|
-
self.
|
|
7391
|
+
self.compute_client.delete_server_interface.assert_called_once_with(
|
|
7410
7392
|
'fake-port', server=servers[0]
|
|
7411
7393
|
)
|
|
7412
7394
|
self.assertIsNone(result)
|
|
@@ -7428,8 +7410,10 @@ class TestServerRemoveSecurityGroup(TestServer):
|
|
|
7428
7410
|
super().setUp()
|
|
7429
7411
|
|
|
7430
7412
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7431
|
-
self.
|
|
7432
|
-
self.
|
|
7413
|
+
self.compute_client.find_server.return_value = self.server
|
|
7414
|
+
self.compute_client.remove_security_group_from_server.return_value = (
|
|
7415
|
+
None
|
|
7416
|
+
)
|
|
7433
7417
|
|
|
7434
7418
|
# Get the command object to test
|
|
7435
7419
|
self.cmd = server.RemoveServerSecurityGroup(self.app, None)
|
|
@@ -7454,14 +7438,14 @@ class TestServerRemoveSecurityGroup(TestServer):
|
|
|
7454
7438
|
) as mock_find_nova_net_sg:
|
|
7455
7439
|
result = self.cmd.take_action(parsed_args)
|
|
7456
7440
|
|
|
7457
|
-
self.
|
|
7441
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7458
7442
|
self.server.id, ignore_missing=False
|
|
7459
7443
|
)
|
|
7460
|
-
self.
|
|
7444
|
+
self.compute_client.remove_security_group_from_server.assert_called_once_with(
|
|
7461
7445
|
self.server, {'name': 'fake_sg'}
|
|
7462
7446
|
)
|
|
7463
7447
|
mock_find_nova_net_sg.assert_called_once_with(
|
|
7464
|
-
self.
|
|
7448
|
+
self.compute_client, 'fake_sg'
|
|
7465
7449
|
)
|
|
7466
7450
|
self.assertIsNone(result)
|
|
7467
7451
|
|
|
@@ -7475,10 +7459,10 @@ class TestServerRemoveSecurityGroup(TestServer):
|
|
|
7475
7459
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7476
7460
|
result = self.cmd.take_action(parsed_args)
|
|
7477
7461
|
|
|
7478
|
-
self.
|
|
7462
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7479
7463
|
self.server.id, ignore_missing=False
|
|
7480
7464
|
)
|
|
7481
|
-
self.
|
|
7465
|
+
self.compute_client.remove_security_group_from_server.assert_called_once_with(
|
|
7482
7466
|
self.server, {'name': 'fake_sg'}
|
|
7483
7467
|
)
|
|
7484
7468
|
self.assertIsNone(result)
|
|
@@ -7489,12 +7473,12 @@ class TestServerResize(compute_fakes.TestComputev2):
|
|
|
7489
7473
|
super().setUp()
|
|
7490
7474
|
|
|
7491
7475
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7492
|
-
self.
|
|
7476
|
+
self.compute_client.find_server.return_value = self.server
|
|
7493
7477
|
self.flavor = compute_fakes.create_one_flavor()
|
|
7494
|
-
self.
|
|
7495
|
-
self.
|
|
7496
|
-
self.
|
|
7497
|
-
self.
|
|
7478
|
+
self.compute_client.find_flavor.return_value = self.flavor
|
|
7479
|
+
self.compute_client.resize_server.return_value = None
|
|
7480
|
+
self.compute_client.revert_server_resize.return_value = None
|
|
7481
|
+
self.compute_client.confirm_server_resize.return_value = None
|
|
7498
7482
|
|
|
7499
7483
|
# Get the command object to test
|
|
7500
7484
|
self.cmd = server.ResizeServer(self.app, None)
|
|
@@ -7512,11 +7496,11 @@ class TestServerResize(compute_fakes.TestComputev2):
|
|
|
7512
7496
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7513
7497
|
result = self.cmd.take_action(parsed_args)
|
|
7514
7498
|
|
|
7515
|
-
self.
|
|
7499
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7516
7500
|
self.server.id, ignore_missing=False
|
|
7517
7501
|
)
|
|
7518
|
-
self.
|
|
7519
|
-
self.
|
|
7502
|
+
self.compute_client.find_flavor.assert_not_called()
|
|
7503
|
+
self.compute_client.resize_server.assert_not_called()
|
|
7520
7504
|
self.assertIsNone(result)
|
|
7521
7505
|
|
|
7522
7506
|
def test_server_resize(self):
|
|
@@ -7535,17 +7519,17 @@ class TestServerResize(compute_fakes.TestComputev2):
|
|
|
7535
7519
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7536
7520
|
result = self.cmd.take_action(parsed_args)
|
|
7537
7521
|
|
|
7538
|
-
self.
|
|
7522
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7539
7523
|
self.server.id, ignore_missing=False
|
|
7540
7524
|
)
|
|
7541
|
-
self.
|
|
7525
|
+
self.compute_client.find_flavor.assert_called_once_with(
|
|
7542
7526
|
self.flavor.id, ignore_missing=False
|
|
7543
7527
|
)
|
|
7544
|
-
self.
|
|
7528
|
+
self.compute_client.resize_server.assert_called_once_with(
|
|
7545
7529
|
self.server, self.flavor
|
|
7546
7530
|
)
|
|
7547
|
-
self.
|
|
7548
|
-
self.
|
|
7531
|
+
self.compute_client.confirm_server_resize.assert_not_called()
|
|
7532
|
+
self.compute_client.revert_server_resize.assert_not_called()
|
|
7549
7533
|
self.assertIsNone(result)
|
|
7550
7534
|
|
|
7551
7535
|
def test_server_resize_confirm(self):
|
|
@@ -7563,15 +7547,15 @@ class TestServerResize(compute_fakes.TestComputev2):
|
|
|
7563
7547
|
with mock.patch.object(self.cmd.log, 'warning') as mock_warning:
|
|
7564
7548
|
result = self.cmd.take_action(parsed_args)
|
|
7565
7549
|
|
|
7566
|
-
self.
|
|
7550
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7567
7551
|
self.server.id, ignore_missing=False
|
|
7568
7552
|
)
|
|
7569
|
-
self.
|
|
7570
|
-
self.
|
|
7571
|
-
self.
|
|
7553
|
+
self.compute_client.find_flavor.assert_not_called()
|
|
7554
|
+
self.compute_client.resize_server.assert_not_called()
|
|
7555
|
+
self.compute_client.confirm_server_resize.assert_called_once_with(
|
|
7572
7556
|
self.server
|
|
7573
7557
|
)
|
|
7574
|
-
self.
|
|
7558
|
+
self.compute_client.revert_server_resize.assert_not_called()
|
|
7575
7559
|
self.assertIsNone(result)
|
|
7576
7560
|
|
|
7577
7561
|
# A warning should have been logged for using --confirm.
|
|
@@ -7596,13 +7580,13 @@ class TestServerResize(compute_fakes.TestComputev2):
|
|
|
7596
7580
|
with mock.patch.object(self.cmd.log, 'warning') as mock_warning:
|
|
7597
7581
|
result = self.cmd.take_action(parsed_args)
|
|
7598
7582
|
|
|
7599
|
-
self.
|
|
7583
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7600
7584
|
self.server.id, ignore_missing=False
|
|
7601
7585
|
)
|
|
7602
|
-
self.
|
|
7603
|
-
self.
|
|
7604
|
-
self.
|
|
7605
|
-
self.
|
|
7586
|
+
self.compute_client.find_flavor.assert_not_called()
|
|
7587
|
+
self.compute_client.resize_server.assert_not_called()
|
|
7588
|
+
self.compute_client.confirm_server_resize.assert_not_called()
|
|
7589
|
+
self.compute_client.revert_server_resize.assert_called_once_with(
|
|
7606
7590
|
self.server
|
|
7607
7591
|
)
|
|
7608
7592
|
self.assertIsNone(result)
|
|
@@ -7632,20 +7616,20 @@ class TestServerResize(compute_fakes.TestComputev2):
|
|
|
7632
7616
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7633
7617
|
self.cmd.take_action(parsed_args)
|
|
7634
7618
|
|
|
7635
|
-
self.
|
|
7619
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7636
7620
|
self.server.id, ignore_missing=False
|
|
7637
7621
|
)
|
|
7638
|
-
self.
|
|
7622
|
+
self.compute_client.find_flavor.assert_called_once_with(
|
|
7639
7623
|
self.flavor.id, ignore_missing=False
|
|
7640
7624
|
)
|
|
7641
|
-
self.
|
|
7625
|
+
self.compute_client.resize_server.assert_called_once_with(
|
|
7642
7626
|
self.server, self.flavor
|
|
7643
7627
|
)
|
|
7644
|
-
self.
|
|
7645
|
-
self.
|
|
7628
|
+
self.compute_client.confirm_server_resize.assert_not_called()
|
|
7629
|
+
self.compute_client.revert_server_resize.assert_not_called()
|
|
7646
7630
|
|
|
7647
7631
|
mock_wait_for_status.assert_called_once_with(
|
|
7648
|
-
self.
|
|
7632
|
+
self.compute_client.get_server,
|
|
7649
7633
|
self.server.id,
|
|
7650
7634
|
success_status=('active', 'verify_resize'),
|
|
7651
7635
|
callback=mock.ANY,
|
|
@@ -7672,20 +7656,20 @@ class TestServerResize(compute_fakes.TestComputev2):
|
|
|
7672
7656
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
7673
7657
|
)
|
|
7674
7658
|
|
|
7675
|
-
self.
|
|
7659
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7676
7660
|
self.server.id, ignore_missing=False
|
|
7677
7661
|
)
|
|
7678
|
-
self.
|
|
7662
|
+
self.compute_client.find_flavor.assert_called_once_with(
|
|
7679
7663
|
self.flavor.id, ignore_missing=False
|
|
7680
7664
|
)
|
|
7681
|
-
self.
|
|
7665
|
+
self.compute_client.resize_server.assert_called_once_with(
|
|
7682
7666
|
self.server, self.flavor
|
|
7683
7667
|
)
|
|
7684
|
-
self.
|
|
7685
|
-
self.
|
|
7668
|
+
self.compute_client.confirm_server_resize.assert_not_called()
|
|
7669
|
+
self.compute_client.revert_server_resize.assert_not_called()
|
|
7686
7670
|
|
|
7687
7671
|
mock_wait_for_status.assert_called_once_with(
|
|
7688
|
-
self.
|
|
7672
|
+
self.compute_client.get_server,
|
|
7689
7673
|
self.server.id,
|
|
7690
7674
|
success_status=('active', 'verify_resize'),
|
|
7691
7675
|
callback=mock.ANY,
|
|
@@ -7697,8 +7681,8 @@ class TestServerResizeConfirm(compute_fakes.TestComputev2):
|
|
|
7697
7681
|
super().setUp()
|
|
7698
7682
|
|
|
7699
7683
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7700
|
-
self.
|
|
7701
|
-
self.
|
|
7684
|
+
self.compute_client.find_server.return_value = self.server
|
|
7685
|
+
self.compute_client.confirm_server_resize.return_value = None
|
|
7702
7686
|
|
|
7703
7687
|
# Get the command object to test
|
|
7704
7688
|
self.cmd = server.ResizeConfirm(self.app, None)
|
|
@@ -7714,10 +7698,10 @@ class TestServerResizeConfirm(compute_fakes.TestComputev2):
|
|
|
7714
7698
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7715
7699
|
result = self.cmd.take_action(parsed_args)
|
|
7716
7700
|
|
|
7717
|
-
self.
|
|
7701
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7718
7702
|
self.server.id, ignore_missing=False
|
|
7719
7703
|
)
|
|
7720
|
-
self.
|
|
7704
|
+
self.compute_client.confirm_server_resize.assert_called_once_with(
|
|
7721
7705
|
self.server
|
|
7722
7706
|
)
|
|
7723
7707
|
self.assertIsNone(result)
|
|
@@ -7729,8 +7713,8 @@ class TestServerMigrateConfirm(compute_fakes.TestComputev2):
|
|
|
7729
7713
|
super().setUp()
|
|
7730
7714
|
|
|
7731
7715
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7732
|
-
self.
|
|
7733
|
-
self.
|
|
7716
|
+
self.compute_client.find_server.return_value = self.server
|
|
7717
|
+
self.compute_client.confirm_server_resize.return_value = None
|
|
7734
7718
|
|
|
7735
7719
|
# Get the command object to test
|
|
7736
7720
|
self.cmd = server.MigrateConfirm(self.app, None)
|
|
@@ -7747,10 +7731,10 @@ class TestServerMigrateConfirm(compute_fakes.TestComputev2):
|
|
|
7747
7731
|
with mock.patch.object(self.cmd.log, 'warning') as mock_warning:
|
|
7748
7732
|
result = self.cmd.take_action(parsed_args)
|
|
7749
7733
|
|
|
7750
|
-
self.
|
|
7734
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7751
7735
|
self.server.id, ignore_missing=False
|
|
7752
7736
|
)
|
|
7753
|
-
self.
|
|
7737
|
+
self.compute_client.confirm_server_resize.assert_called_once_with(
|
|
7754
7738
|
self.server
|
|
7755
7739
|
)
|
|
7756
7740
|
self.assertIsNone(result)
|
|
@@ -7767,8 +7751,8 @@ class TestServerConfirmMigration(compute_fakes.TestComputev2):
|
|
|
7767
7751
|
super().setUp()
|
|
7768
7752
|
|
|
7769
7753
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7770
|
-
self.
|
|
7771
|
-
self.
|
|
7754
|
+
self.compute_client.find_server.return_value = self.server
|
|
7755
|
+
self.compute_client.confirm_server_resize.return_value = None
|
|
7772
7756
|
|
|
7773
7757
|
# Get the command object to test
|
|
7774
7758
|
self.cmd = server.ConfirmMigration(self.app, None)
|
|
@@ -7784,10 +7768,10 @@ class TestServerConfirmMigration(compute_fakes.TestComputev2):
|
|
|
7784
7768
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7785
7769
|
result = self.cmd.take_action(parsed_args)
|
|
7786
7770
|
|
|
7787
|
-
self.
|
|
7771
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7788
7772
|
self.server.id, ignore_missing=False
|
|
7789
7773
|
)
|
|
7790
|
-
self.
|
|
7774
|
+
self.compute_client.confirm_server_resize.assert_called_once_with(
|
|
7791
7775
|
self.server
|
|
7792
7776
|
)
|
|
7793
7777
|
self.assertIsNone(result)
|
|
@@ -7798,8 +7782,8 @@ class TestServerResizeRevert(compute_fakes.TestComputev2):
|
|
|
7798
7782
|
super().setUp()
|
|
7799
7783
|
|
|
7800
7784
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7801
|
-
self.
|
|
7802
|
-
self.
|
|
7785
|
+
self.compute_client.find_server.return_value = self.server
|
|
7786
|
+
self.compute_client.revert_server_resize.return_value = None
|
|
7803
7787
|
|
|
7804
7788
|
# Get the command object to test
|
|
7805
7789
|
self.cmd = server.ResizeRevert(self.app, None)
|
|
@@ -7815,10 +7799,10 @@ class TestServerResizeRevert(compute_fakes.TestComputev2):
|
|
|
7815
7799
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7816
7800
|
result = self.cmd.take_action(parsed_args)
|
|
7817
7801
|
|
|
7818
|
-
self.
|
|
7802
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7819
7803
|
self.server.id, ignore_missing=False
|
|
7820
7804
|
)
|
|
7821
|
-
self.
|
|
7805
|
+
self.compute_client.revert_server_resize.assert_called_once_with(
|
|
7822
7806
|
self.server
|
|
7823
7807
|
)
|
|
7824
7808
|
self.assertIsNone(result)
|
|
@@ -7830,8 +7814,8 @@ class TestServerMigrateRevert(compute_fakes.TestComputev2):
|
|
|
7830
7814
|
super().setUp()
|
|
7831
7815
|
|
|
7832
7816
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7833
|
-
self.
|
|
7834
|
-
self.
|
|
7817
|
+
self.compute_client.find_server.return_value = self.server
|
|
7818
|
+
self.compute_client.revert_server_resize.return_value = None
|
|
7835
7819
|
|
|
7836
7820
|
# Get the command object to test
|
|
7837
7821
|
self.cmd = server.MigrateRevert(self.app, None)
|
|
@@ -7848,10 +7832,10 @@ class TestServerMigrateRevert(compute_fakes.TestComputev2):
|
|
|
7848
7832
|
with mock.patch.object(self.cmd.log, 'warning') as mock_warning:
|
|
7849
7833
|
result = self.cmd.take_action(parsed_args)
|
|
7850
7834
|
|
|
7851
|
-
self.
|
|
7835
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7852
7836
|
self.server.id, ignore_missing=False
|
|
7853
7837
|
)
|
|
7854
|
-
self.
|
|
7838
|
+
self.compute_client.revert_server_resize.assert_called_once_with(
|
|
7855
7839
|
self.server
|
|
7856
7840
|
)
|
|
7857
7841
|
self.assertIsNone(result)
|
|
@@ -7868,8 +7852,8 @@ class TestServerRevertMigration(compute_fakes.TestComputev2):
|
|
|
7868
7852
|
super().setUp()
|
|
7869
7853
|
|
|
7870
7854
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7871
|
-
self.
|
|
7872
|
-
self.
|
|
7855
|
+
self.compute_client.find_server.return_value = self.server
|
|
7856
|
+
self.compute_client.revert_server_resize.return_value = None
|
|
7873
7857
|
|
|
7874
7858
|
# Get the command object to test
|
|
7875
7859
|
self.cmd = server.RevertMigration(self.app, None)
|
|
@@ -7885,10 +7869,10 @@ class TestServerRevertMigration(compute_fakes.TestComputev2):
|
|
|
7885
7869
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7886
7870
|
result = self.cmd.take_action(parsed_args)
|
|
7887
7871
|
|
|
7888
|
-
self.
|
|
7872
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
7889
7873
|
self.server.id, ignore_missing=False
|
|
7890
7874
|
)
|
|
7891
|
-
self.
|
|
7875
|
+
self.compute_client.revert_server_resize.assert_called_once_with(
|
|
7892
7876
|
self.server
|
|
7893
7877
|
)
|
|
7894
7878
|
self.assertIsNone(result)
|
|
@@ -7927,7 +7911,7 @@ class TestServerSet(TestServer):
|
|
|
7927
7911
|
super().setUp()
|
|
7928
7912
|
|
|
7929
7913
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7930
|
-
self.
|
|
7914
|
+
self.compute_client.find_server.return_value = self.server
|
|
7931
7915
|
|
|
7932
7916
|
# Get the command object to test
|
|
7933
7917
|
self.cmd = server.SetServer(self.app, None)
|
|
@@ -7939,12 +7923,12 @@ class TestServerSet(TestServer):
|
|
|
7939
7923
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7940
7924
|
result = self.cmd.take_action(parsed_args)
|
|
7941
7925
|
|
|
7942
|
-
self.
|
|
7943
|
-
self.
|
|
7944
|
-
self.
|
|
7945
|
-
self.
|
|
7946
|
-
self.
|
|
7947
|
-
self.
|
|
7926
|
+
self.compute_client.update_server.assert_not_called()
|
|
7927
|
+
self.compute_client.set_server_metadata.assert_not_called()
|
|
7928
|
+
self.compute_client.reset_server_state.assert_not_called()
|
|
7929
|
+
self.compute_client.change_server_password.assert_not_called()
|
|
7930
|
+
self.compute_client.clear_server_password.assert_not_called()
|
|
7931
|
+
self.compute_client.add_tag_to_server.assert_not_called()
|
|
7948
7932
|
self.assertIsNone(result)
|
|
7949
7933
|
|
|
7950
7934
|
def test_server_set_with_state(self):
|
|
@@ -7961,14 +7945,14 @@ class TestServerSet(TestServer):
|
|
|
7961
7945
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
7962
7946
|
result = self.cmd.take_action(parsed_args)
|
|
7963
7947
|
|
|
7964
|
-
self.
|
|
7948
|
+
self.compute_client.reset_server_state.assert_called_once_with(
|
|
7965
7949
|
self.server, state='active'
|
|
7966
7950
|
)
|
|
7967
|
-
self.
|
|
7968
|
-
self.
|
|
7969
|
-
self.
|
|
7970
|
-
self.
|
|
7971
|
-
self.
|
|
7951
|
+
self.compute_client.update_server.assert_not_called()
|
|
7952
|
+
self.compute_client.set_server_metadata.assert_not_called()
|
|
7953
|
+
self.compute_client.change_server_password.assert_not_called()
|
|
7954
|
+
self.compute_client.clear_server_password.assert_not_called()
|
|
7955
|
+
self.compute_client.add_tag_to_server.assert_not_called()
|
|
7972
7956
|
self.assertIsNone(result)
|
|
7973
7957
|
|
|
7974
7958
|
def test_server_set_with_invalid_state(self):
|
|
@@ -8003,14 +7987,14 @@ class TestServerSet(TestServer):
|
|
|
8003
7987
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8004
7988
|
result = self.cmd.take_action(parsed_args)
|
|
8005
7989
|
|
|
8006
|
-
self.
|
|
7990
|
+
self.compute_client.update_server.assert_called_once_with(
|
|
8007
7991
|
self.server, name='foo_name'
|
|
8008
7992
|
)
|
|
8009
|
-
self.
|
|
8010
|
-
self.
|
|
8011
|
-
self.
|
|
8012
|
-
self.
|
|
8013
|
-
self.
|
|
7993
|
+
self.compute_client.set_server_metadata.assert_not_called()
|
|
7994
|
+
self.compute_client.reset_server_state.assert_not_called()
|
|
7995
|
+
self.compute_client.change_server_password.assert_not_called()
|
|
7996
|
+
self.compute_client.clear_server_password.assert_not_called()
|
|
7997
|
+
self.compute_client.add_tag_to_server.assert_not_called()
|
|
8014
7998
|
self.assertIsNone(result)
|
|
8015
7999
|
|
|
8016
8000
|
def test_server_set_with_property(self):
|
|
@@ -8029,14 +8013,14 @@ class TestServerSet(TestServer):
|
|
|
8029
8013
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8030
8014
|
result = self.cmd.take_action(parsed_args)
|
|
8031
8015
|
|
|
8032
|
-
self.
|
|
8016
|
+
self.compute_client.set_server_metadata.assert_called_once_with(
|
|
8033
8017
|
self.server, key1='value1', key2='value2'
|
|
8034
8018
|
)
|
|
8035
|
-
self.
|
|
8036
|
-
self.
|
|
8037
|
-
self.
|
|
8038
|
-
self.
|
|
8039
|
-
self.
|
|
8019
|
+
self.compute_client.update_server.assert_not_called()
|
|
8020
|
+
self.compute_client.reset_server_state.assert_not_called()
|
|
8021
|
+
self.compute_client.change_server_password.assert_not_called()
|
|
8022
|
+
self.compute_client.clear_server_password.assert_not_called()
|
|
8023
|
+
self.compute_client.add_tag_to_server.assert_not_called()
|
|
8040
8024
|
self.assertIsNone(result)
|
|
8041
8025
|
|
|
8042
8026
|
def test_server_set_with_password(self):
|
|
@@ -8053,14 +8037,14 @@ class TestServerSet(TestServer):
|
|
|
8053
8037
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8054
8038
|
result = self.cmd.take_action(parsed_args)
|
|
8055
8039
|
|
|
8056
|
-
self.
|
|
8040
|
+
self.compute_client.change_server_password.assert_called_once_with(
|
|
8057
8041
|
self.server, 'foo'
|
|
8058
8042
|
)
|
|
8059
|
-
self.
|
|
8060
|
-
self.
|
|
8061
|
-
self.
|
|
8062
|
-
self.
|
|
8063
|
-
self.
|
|
8043
|
+
self.compute_client.update_server.assert_not_called()
|
|
8044
|
+
self.compute_client.set_server_metadata.assert_not_called()
|
|
8045
|
+
self.compute_client.reset_server_state.assert_not_called()
|
|
8046
|
+
self.compute_client.clear_server_password.assert_not_called()
|
|
8047
|
+
self.compute_client.add_tag_to_server.assert_not_called()
|
|
8064
8048
|
self.assertIsNone(result)
|
|
8065
8049
|
|
|
8066
8050
|
def test_server_set_with_no_password(self):
|
|
@@ -8076,14 +8060,14 @@ class TestServerSet(TestServer):
|
|
|
8076
8060
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8077
8061
|
result = self.cmd.take_action(parsed_args)
|
|
8078
8062
|
|
|
8079
|
-
self.
|
|
8063
|
+
self.compute_client.clear_server_password.assert_called_once_with(
|
|
8080
8064
|
self.server
|
|
8081
8065
|
)
|
|
8082
|
-
self.
|
|
8083
|
-
self.
|
|
8084
|
-
self.
|
|
8085
|
-
self.
|
|
8086
|
-
self.
|
|
8066
|
+
self.compute_client.update_server.assert_not_called()
|
|
8067
|
+
self.compute_client.set_server_metadata.assert_not_called()
|
|
8068
|
+
self.compute_client.reset_server_state.assert_not_called()
|
|
8069
|
+
self.compute_client.change_server_password.assert_not_called()
|
|
8070
|
+
self.compute_client.add_tag_to_server.assert_not_called()
|
|
8087
8071
|
self.assertIsNone(result)
|
|
8088
8072
|
|
|
8089
8073
|
# TODO(stephenfin): Remove this in a future major version
|
|
@@ -8103,14 +8087,14 @@ class TestServerSet(TestServer):
|
|
|
8103
8087
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8104
8088
|
result = self.cmd.take_action(parsed_args)
|
|
8105
8089
|
|
|
8106
|
-
self.
|
|
8090
|
+
self.compute_client.change_server_password.assert_called_once_with(
|
|
8107
8091
|
self.server, mock.sentinel.fake_pass
|
|
8108
8092
|
)
|
|
8109
|
-
self.
|
|
8110
|
-
self.
|
|
8111
|
-
self.
|
|
8112
|
-
self.
|
|
8113
|
-
self.
|
|
8093
|
+
self.compute_client.update_server.assert_not_called()
|
|
8094
|
+
self.compute_client.set_server_metadata.assert_not_called()
|
|
8095
|
+
self.compute_client.reset_server_state.assert_not_called()
|
|
8096
|
+
self.compute_client.clear_server_password.assert_not_called()
|
|
8097
|
+
self.compute_client.add_tag_to_server.assert_not_called()
|
|
8114
8098
|
self.assertIsNone(result)
|
|
8115
8099
|
|
|
8116
8100
|
def test_server_set_with_description(self):
|
|
@@ -8129,14 +8113,14 @@ class TestServerSet(TestServer):
|
|
|
8129
8113
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8130
8114
|
result = self.cmd.take_action(parsed_args)
|
|
8131
8115
|
|
|
8132
|
-
self.
|
|
8116
|
+
self.compute_client.update_server.assert_called_once_with(
|
|
8133
8117
|
self.server, description='foo_description'
|
|
8134
8118
|
)
|
|
8135
|
-
self.
|
|
8136
|
-
self.
|
|
8137
|
-
self.
|
|
8138
|
-
self.
|
|
8139
|
-
self.
|
|
8119
|
+
self.compute_client.set_server_metadata.assert_not_called()
|
|
8120
|
+
self.compute_client.reset_server_state.assert_not_called()
|
|
8121
|
+
self.compute_client.change_server_password.assert_not_called()
|
|
8122
|
+
self.compute_client.clear_server_password.assert_not_called()
|
|
8123
|
+
self.compute_client.add_tag_to_server.assert_not_called()
|
|
8140
8124
|
self.assertIsNone(result)
|
|
8141
8125
|
|
|
8142
8126
|
def test_server_set_with_description_pre_v219(self):
|
|
@@ -8175,17 +8159,17 @@ class TestServerSet(TestServer):
|
|
|
8175
8159
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8176
8160
|
result = self.cmd.take_action(parsed_args)
|
|
8177
8161
|
|
|
8178
|
-
self.
|
|
8162
|
+
self.compute_client.add_tag_to_server.assert_has_calls(
|
|
8179
8163
|
[
|
|
8180
8164
|
mock.call(self.server, tag='tag1'),
|
|
8181
8165
|
mock.call(self.server, tag='tag2'),
|
|
8182
8166
|
]
|
|
8183
8167
|
)
|
|
8184
|
-
self.
|
|
8185
|
-
self.
|
|
8186
|
-
self.
|
|
8187
|
-
self.
|
|
8188
|
-
self.
|
|
8168
|
+
self.compute_client.update_server.assert_not_called()
|
|
8169
|
+
self.compute_client.set_server_metadata.assert_not_called()
|
|
8170
|
+
self.compute_client.reset_server_state.assert_not_called()
|
|
8171
|
+
self.compute_client.change_server_password.assert_not_called()
|
|
8172
|
+
self.compute_client.clear_server_password.assert_not_called()
|
|
8189
8173
|
self.assertIsNone(result)
|
|
8190
8174
|
|
|
8191
8175
|
def test_server_set_with_tag_pre_v226(self):
|
|
@@ -8227,14 +8211,14 @@ class TestServerSet(TestServer):
|
|
|
8227
8211
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8228
8212
|
result = self.cmd.take_action(parsed_args)
|
|
8229
8213
|
|
|
8230
|
-
self.
|
|
8214
|
+
self.compute_client.update_server.assert_called_once_with(
|
|
8231
8215
|
self.server, hostname='foo-hostname'
|
|
8232
8216
|
)
|
|
8233
|
-
self.
|
|
8234
|
-
self.
|
|
8235
|
-
self.
|
|
8236
|
-
self.
|
|
8237
|
-
self.
|
|
8217
|
+
self.compute_client.set_server_metadata.assert_not_called()
|
|
8218
|
+
self.compute_client.reset_server_state.assert_not_called()
|
|
8219
|
+
self.compute_client.change_server_password.assert_not_called()
|
|
8220
|
+
self.compute_client.clear_server_password.assert_not_called()
|
|
8221
|
+
self.compute_client.add_tag_to_server.assert_not_called()
|
|
8238
8222
|
self.assertIsNone(result)
|
|
8239
8223
|
|
|
8240
8224
|
def test_server_set_with_hostname_pre_v290(self):
|
|
@@ -8263,8 +8247,8 @@ class TestServerShelve(TestServer):
|
|
|
8263
8247
|
attrs={'status': 'ACTIVE'},
|
|
8264
8248
|
)
|
|
8265
8249
|
|
|
8266
|
-
self.
|
|
8267
|
-
self.
|
|
8250
|
+
self.compute_client.find_server.return_value = self.server
|
|
8251
|
+
self.compute_client.shelve_server.return_value = None
|
|
8268
8252
|
|
|
8269
8253
|
# Get the command object to test
|
|
8270
8254
|
self.cmd = server.ShelveServer(self.app, None)
|
|
@@ -8281,14 +8265,12 @@ class TestServerShelve(TestServer):
|
|
|
8281
8265
|
result = self.cmd.take_action(parsed_args)
|
|
8282
8266
|
self.assertIsNone(result)
|
|
8283
8267
|
|
|
8284
|
-
self.
|
|
8268
|
+
self.compute_client.find_server.assert_called_with(
|
|
8285
8269
|
self.server.name,
|
|
8286
8270
|
ignore_missing=False,
|
|
8287
8271
|
)
|
|
8288
|
-
self.
|
|
8289
|
-
|
|
8290
|
-
)
|
|
8291
|
-
self.compute_sdk_client.shelve_offload_server.assert_not_called()
|
|
8272
|
+
self.compute_client.shelve_server.assert_called_with(self.server.id)
|
|
8273
|
+
self.compute_client.shelve_offload_server.assert_not_called()
|
|
8292
8274
|
|
|
8293
8275
|
def test_shelve_already_shelved(self):
|
|
8294
8276
|
self.server.status = 'SHELVED'
|
|
@@ -8304,12 +8286,12 @@ class TestServerShelve(TestServer):
|
|
|
8304
8286
|
result = self.cmd.take_action(parsed_args)
|
|
8305
8287
|
self.assertIsNone(result)
|
|
8306
8288
|
|
|
8307
|
-
self.
|
|
8289
|
+
self.compute_client.find_server.assert_called_with(
|
|
8308
8290
|
self.server.name,
|
|
8309
8291
|
ignore_missing=False,
|
|
8310
8292
|
)
|
|
8311
|
-
self.
|
|
8312
|
-
self.
|
|
8293
|
+
self.compute_client.shelve_server.assert_not_called()
|
|
8294
|
+
self.compute_client.shelve_offload_server.assert_not_called()
|
|
8313
8295
|
|
|
8314
8296
|
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
|
|
8315
8297
|
def test_shelve_with_wait(self, mock_wait_for_status):
|
|
@@ -8324,16 +8306,14 @@ class TestServerShelve(TestServer):
|
|
|
8324
8306
|
result = self.cmd.take_action(parsed_args)
|
|
8325
8307
|
self.assertIsNone(result)
|
|
8326
8308
|
|
|
8327
|
-
self.
|
|
8309
|
+
self.compute_client.find_server.assert_called_with(
|
|
8328
8310
|
self.server.name,
|
|
8329
8311
|
ignore_missing=False,
|
|
8330
8312
|
)
|
|
8331
|
-
self.
|
|
8332
|
-
|
|
8333
|
-
)
|
|
8334
|
-
self.compute_sdk_client.shelve_offload_server.assert_not_called()
|
|
8313
|
+
self.compute_client.shelve_server.assert_called_with(self.server.id)
|
|
8314
|
+
self.compute_client.shelve_offload_server.assert_not_called()
|
|
8335
8315
|
mock_wait_for_status.assert_called_once_with(
|
|
8336
|
-
self.
|
|
8316
|
+
self.compute_client.get_server,
|
|
8337
8317
|
self.server.id,
|
|
8338
8318
|
callback=mock.ANY,
|
|
8339
8319
|
success_status=('shelved', 'shelved_offloaded'),
|
|
@@ -8353,25 +8333,21 @@ class TestServerShelve(TestServer):
|
|
|
8353
8333
|
self.assertIsNone(result)
|
|
8354
8334
|
|
|
8355
8335
|
# one call to retrieve to retrieve the server state before shelving
|
|
8356
|
-
self.
|
|
8336
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8357
8337
|
self.server.name,
|
|
8358
8338
|
ignore_missing=False,
|
|
8359
8339
|
)
|
|
8360
8340
|
# one call to retrieve the server state before offloading
|
|
8361
|
-
self.
|
|
8362
|
-
self.server.id
|
|
8363
|
-
)
|
|
8341
|
+
self.compute_client.get_server.assert_called_once_with(self.server.id)
|
|
8364
8342
|
# one call to shelve the server
|
|
8365
|
-
self.
|
|
8366
|
-
self.server.id
|
|
8367
|
-
)
|
|
8343
|
+
self.compute_client.shelve_server.assert_called_with(self.server.id)
|
|
8368
8344
|
# one call to shelve offload the server
|
|
8369
|
-
self.
|
|
8345
|
+
self.compute_client.shelve_offload_server.assert_called_once_with(
|
|
8370
8346
|
self.server.id,
|
|
8371
8347
|
)
|
|
8372
8348
|
# one call to wait for the shelve offload to complete
|
|
8373
8349
|
mock_wait_for_status.assert_called_once_with(
|
|
8374
|
-
self.
|
|
8350
|
+
self.compute_client.get_server,
|
|
8375
8351
|
self.server.id,
|
|
8376
8352
|
callback=mock.ANY,
|
|
8377
8353
|
success_status=('shelved', 'shelved_offloaded'),
|
|
@@ -8386,7 +8362,7 @@ class TestServerShow(TestServer):
|
|
|
8386
8362
|
self.image_client.get_image.return_value = self.image
|
|
8387
8363
|
|
|
8388
8364
|
self.flavor = compute_fakes.create_one_flavor()
|
|
8389
|
-
self.
|
|
8365
|
+
self.compute_client.find_flavor.return_value = self.flavor
|
|
8390
8366
|
|
|
8391
8367
|
self.topology = {
|
|
8392
8368
|
'nodes': [{'vcpu_set': [0, 1]}, {'vcpu_set': [2, 3]}],
|
|
@@ -8398,14 +8374,14 @@ class TestServerShow(TestServer):
|
|
|
8398
8374
|
'tenant_id': 'tenant-id-xxx',
|
|
8399
8375
|
'addresses': {'public': ['10.20.30.40', '2001:db8::f']},
|
|
8400
8376
|
}
|
|
8401
|
-
self.
|
|
8377
|
+
self.compute_client.get_server_diagnostics.return_value = {
|
|
8402
8378
|
'test': 'test'
|
|
8403
8379
|
}
|
|
8404
8380
|
self.server = compute_fakes.create_one_sdk_server(
|
|
8405
8381
|
attrs=server_info,
|
|
8406
8382
|
)
|
|
8407
8383
|
self.server.fetch_topology = mock.MagicMock(return_value=self.topology)
|
|
8408
|
-
self.
|
|
8384
|
+
self.compute_client.find_server.return_value = self.server
|
|
8409
8385
|
|
|
8410
8386
|
# Get the command object to test
|
|
8411
8387
|
self.cmd = server.ShowServer(self.app, None)
|
|
@@ -8534,10 +8510,10 @@ class TestServerShow(TestServer):
|
|
|
8534
8510
|
|
|
8535
8511
|
self.assertTupleEqual(self.columns, columns)
|
|
8536
8512
|
self.assertTupleEqual(self.data, data)
|
|
8537
|
-
self.
|
|
8513
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8538
8514
|
self.server.name, ignore_missing=False, details=True
|
|
8539
8515
|
)
|
|
8540
|
-
self.
|
|
8516
|
+
self.compute_client.get_server.assert_not_called()
|
|
8541
8517
|
|
|
8542
8518
|
def test_show_embedded_flavor(self):
|
|
8543
8519
|
# Tests using --os-compute-api-version >= 2.47 where the flavor
|
|
@@ -8566,10 +8542,10 @@ class TestServerShow(TestServer):
|
|
|
8566
8542
|
# Since the flavor details are in a dict we can't be sure of the
|
|
8567
8543
|
# ordering so just assert that one of the keys is in the output.
|
|
8568
8544
|
self.assertIn('original_name', data[columns.index('flavor')]._value)
|
|
8569
|
-
self.
|
|
8545
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8570
8546
|
self.server.name, ignore_missing=False, details=True
|
|
8571
8547
|
)
|
|
8572
|
-
self.
|
|
8548
|
+
self.compute_client.get_server.assert_not_called()
|
|
8573
8549
|
|
|
8574
8550
|
def test_show_diagnostics(self):
|
|
8575
8551
|
arglist = [
|
|
@@ -8587,13 +8563,13 @@ class TestServerShow(TestServer):
|
|
|
8587
8563
|
|
|
8588
8564
|
self.assertEqual(('test',), columns)
|
|
8589
8565
|
self.assertEqual(('test',), data)
|
|
8590
|
-
self.
|
|
8566
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8591
8567
|
self.server.name, ignore_missing=False, details=True
|
|
8592
8568
|
)
|
|
8593
|
-
self.
|
|
8569
|
+
self.compute_client.get_server_diagnostics.assert_called_once_with(
|
|
8594
8570
|
self.server
|
|
8595
8571
|
)
|
|
8596
|
-
self.
|
|
8572
|
+
self.compute_client.get_server.assert_not_called()
|
|
8597
8573
|
|
|
8598
8574
|
def test_show_topology(self):
|
|
8599
8575
|
self.set_compute_api_version('2.78')
|
|
@@ -8616,13 +8592,11 @@ class TestServerShow(TestServer):
|
|
|
8616
8592
|
|
|
8617
8593
|
self.assertCountEqual(self.columns, columns)
|
|
8618
8594
|
self.assertCountEqual(self.data, data)
|
|
8619
|
-
self.
|
|
8595
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8620
8596
|
self.server.name, ignore_missing=False, details=True
|
|
8621
8597
|
)
|
|
8622
|
-
self.server.fetch_topology.assert_called_once_with(
|
|
8623
|
-
|
|
8624
|
-
)
|
|
8625
|
-
self.compute_sdk_client.get_server.assert_not_called()
|
|
8598
|
+
self.server.fetch_topology.assert_called_once_with(self.compute_client)
|
|
8599
|
+
self.compute_client.get_server.assert_not_called()
|
|
8626
8600
|
|
|
8627
8601
|
def test_show_topology_pre_v278(self):
|
|
8628
8602
|
self.set_compute_api_version('2.77')
|
|
@@ -8641,11 +8615,11 @@ class TestServerShow(TestServer):
|
|
|
8641
8615
|
self.assertRaises(
|
|
8642
8616
|
exceptions.CommandError, self.cmd.take_action, parsed_args
|
|
8643
8617
|
)
|
|
8644
|
-
self.
|
|
8618
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8645
8619
|
self.server.name, ignore_missing=False, details=True
|
|
8646
8620
|
)
|
|
8647
8621
|
self.server.fetch_topology.assert_not_called()
|
|
8648
|
-
self.
|
|
8622
|
+
self.compute_client.get_server.assert_not_called()
|
|
8649
8623
|
|
|
8650
8624
|
|
|
8651
8625
|
@mock.patch('openstackclient.compute.v2.server.os.system')
|
|
@@ -8673,7 +8647,7 @@ class TestServerSsh(TestServer):
|
|
|
8673
8647
|
self.server = compute_fakes.create_one_sdk_server(
|
|
8674
8648
|
attrs=self.attrs,
|
|
8675
8649
|
)
|
|
8676
|
-
self.
|
|
8650
|
+
self.compute_client.find_server.return_value = self.server
|
|
8677
8651
|
|
|
8678
8652
|
def test_server_ssh_no_opts(self, mock_exec):
|
|
8679
8653
|
arglist = [
|
|
@@ -8696,7 +8670,7 @@ class TestServerSsh(TestServer):
|
|
|
8696
8670
|
with mock.patch.object(self.cmd.log, 'warning') as mock_warning:
|
|
8697
8671
|
result = self.cmd.take_action(parsed_args)
|
|
8698
8672
|
|
|
8699
|
-
self.
|
|
8673
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8700
8674
|
self.server.name, ignore_missing=False
|
|
8701
8675
|
)
|
|
8702
8676
|
self.assertIsNone(result)
|
|
@@ -8729,7 +8703,7 @@ class TestServerSsh(TestServer):
|
|
|
8729
8703
|
with mock.patch.object(self.cmd.log, 'warning') as mock_warning:
|
|
8730
8704
|
result = self.cmd.take_action(parsed_args)
|
|
8731
8705
|
|
|
8732
|
-
self.
|
|
8706
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8733
8707
|
self.server.name, ignore_missing=False
|
|
8734
8708
|
)
|
|
8735
8709
|
self.assertIsNone(result)
|
|
@@ -8763,7 +8737,7 @@ class TestServerSsh(TestServer):
|
|
|
8763
8737
|
with mock.patch.object(self.cmd.log, 'warning') as mock_warning:
|
|
8764
8738
|
result = self.cmd.take_action(parsed_args)
|
|
8765
8739
|
|
|
8766
|
-
self.
|
|
8740
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8767
8741
|
self.server.name, ignore_missing=False
|
|
8768
8742
|
)
|
|
8769
8743
|
self.assertIsNone(result)
|
|
@@ -8792,7 +8766,7 @@ class TestServerStart(TestServerAction):
|
|
|
8792
8766
|
|
|
8793
8767
|
def test_server_start_with_all_projects(self):
|
|
8794
8768
|
server = compute_fakes.create_one_sdk_server()
|
|
8795
|
-
self.
|
|
8769
|
+
self.compute_client.find_server.return_value = server
|
|
8796
8770
|
|
|
8797
8771
|
arglist = [
|
|
8798
8772
|
server.id,
|
|
@@ -8805,7 +8779,7 @@ class TestServerStart(TestServerAction):
|
|
|
8805
8779
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8806
8780
|
self.cmd.take_action(parsed_args)
|
|
8807
8781
|
|
|
8808
|
-
self.
|
|
8782
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8809
8783
|
server.id,
|
|
8810
8784
|
ignore_missing=False,
|
|
8811
8785
|
details=False,
|
|
@@ -8828,7 +8802,7 @@ class TestServerStop(TestServerAction):
|
|
|
8828
8802
|
|
|
8829
8803
|
def test_server_start_with_all_projects(self):
|
|
8830
8804
|
server = compute_fakes.create_one_sdk_server()
|
|
8831
|
-
self.
|
|
8805
|
+
self.compute_client.find_server.return_value = server
|
|
8832
8806
|
|
|
8833
8807
|
arglist = [
|
|
8834
8808
|
server.id,
|
|
@@ -8841,7 +8815,7 @@ class TestServerStop(TestServerAction):
|
|
|
8841
8815
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8842
8816
|
self.cmd.take_action(parsed_args)
|
|
8843
8817
|
|
|
8844
|
-
self.
|
|
8818
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8845
8819
|
server.id,
|
|
8846
8820
|
ignore_missing=False,
|
|
8847
8821
|
details=False,
|
|
@@ -8896,7 +8870,7 @@ class TestServerUnrescue(compute_fakes.TestComputev2):
|
|
|
8896
8870
|
super().setUp()
|
|
8897
8871
|
|
|
8898
8872
|
self.server = compute_fakes.create_one_sdk_server()
|
|
8899
|
-
self.
|
|
8873
|
+
self.compute_client.find_server.return_value = self.server
|
|
8900
8874
|
|
|
8901
8875
|
self.cmd = server.UnrescueServer(self.app, None)
|
|
8902
8876
|
|
|
@@ -8911,10 +8885,10 @@ class TestServerUnrescue(compute_fakes.TestComputev2):
|
|
|
8911
8885
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8912
8886
|
result = self.cmd.take_action(parsed_args)
|
|
8913
8887
|
|
|
8914
|
-
self.
|
|
8888
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
8915
8889
|
self.server.id, ignore_missing=False
|
|
8916
8890
|
)
|
|
8917
|
-
self.
|
|
8891
|
+
self.compute_client.unrescue_server.assert_called_once_with(
|
|
8918
8892
|
self.server
|
|
8919
8893
|
)
|
|
8920
8894
|
self.assertIsNone(result)
|
|
@@ -8925,7 +8899,7 @@ class TestServerUnset(TestServer):
|
|
|
8925
8899
|
super().setUp()
|
|
8926
8900
|
|
|
8927
8901
|
self.server = compute_fakes.create_one_sdk_server()
|
|
8928
|
-
self.
|
|
8902
|
+
self.compute_client.find_server.return_value = self.server
|
|
8929
8903
|
|
|
8930
8904
|
# Get the command object to test
|
|
8931
8905
|
self.cmd = server.UnsetServer(self.app, None)
|
|
@@ -8941,12 +8915,10 @@ class TestServerUnset(TestServer):
|
|
|
8941
8915
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8942
8916
|
result = self.cmd.take_action(parsed_args)
|
|
8943
8917
|
|
|
8944
|
-
self.
|
|
8945
|
-
|
|
8946
|
-
)
|
|
8947
|
-
self.
|
|
8948
|
-
self.compute_sdk_client.update_server.assert_not_called()
|
|
8949
|
-
self.compute_sdk_client.remove_tag_from_server.assert_not_called()
|
|
8918
|
+
self.compute_client.find_server(self.server.id, ignore_missing=False)
|
|
8919
|
+
self.compute_client.delete_server_metadata.assert_not_called()
|
|
8920
|
+
self.compute_client.update_server.assert_not_called()
|
|
8921
|
+
self.compute_client.remove_tag_from_server.assert_not_called()
|
|
8950
8922
|
self.assertIsNone(result)
|
|
8951
8923
|
|
|
8952
8924
|
def test_server_unset_with_property(self):
|
|
@@ -8965,15 +8937,13 @@ class TestServerUnset(TestServer):
|
|
|
8965
8937
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8966
8938
|
result = self.cmd.take_action(parsed_args)
|
|
8967
8939
|
|
|
8968
|
-
self.
|
|
8969
|
-
|
|
8970
|
-
)
|
|
8971
|
-
self.compute_sdk_client.delete_server_metadata.assert_called_once_with(
|
|
8940
|
+
self.compute_client.find_server(self.server.id, ignore_missing=False)
|
|
8941
|
+
self.compute_client.delete_server_metadata.assert_called_once_with(
|
|
8972
8942
|
self.server,
|
|
8973
8943
|
['key1', 'key2'],
|
|
8974
8944
|
)
|
|
8975
|
-
self.
|
|
8976
|
-
self.
|
|
8945
|
+
self.compute_client.update_server.assert_not_called()
|
|
8946
|
+
self.compute_client.remove_tag_from_server.assert_not_called()
|
|
8977
8947
|
self.assertIsNone(result)
|
|
8978
8948
|
|
|
8979
8949
|
def test_server_unset_with_description(self):
|
|
@@ -8992,14 +8962,12 @@ class TestServerUnset(TestServer):
|
|
|
8992
8962
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8993
8963
|
result = self.cmd.take_action(parsed_args)
|
|
8994
8964
|
|
|
8995
|
-
self.
|
|
8996
|
-
|
|
8997
|
-
)
|
|
8998
|
-
self.compute_sdk_client.update_server.assert_called_once_with(
|
|
8965
|
+
self.compute_client.find_server(self.server.id, ignore_missing=False)
|
|
8966
|
+
self.compute_client.update_server.assert_called_once_with(
|
|
8999
8967
|
self.server, description=''
|
|
9000
8968
|
)
|
|
9001
|
-
self.
|
|
9002
|
-
self.
|
|
8969
|
+
self.compute_client.delete_server_metadata.assert_not_called()
|
|
8970
|
+
self.compute_client.remove_tag_from_server.assert_not_called()
|
|
9003
8971
|
self.assertIsNone(result)
|
|
9004
8972
|
|
|
9005
8973
|
def test_server_unset_with_description_pre_v219(self):
|
|
@@ -9042,17 +9010,15 @@ class TestServerUnset(TestServer):
|
|
|
9042
9010
|
result = self.cmd.take_action(parsed_args)
|
|
9043
9011
|
self.assertIsNone(result)
|
|
9044
9012
|
|
|
9045
|
-
self.
|
|
9046
|
-
|
|
9047
|
-
)
|
|
9048
|
-
self.compute_sdk_client.remove_tag_from_server.assert_has_calls(
|
|
9013
|
+
self.compute_client.find_server(self.server.id, ignore_missing=False)
|
|
9014
|
+
self.compute_client.remove_tag_from_server.assert_has_calls(
|
|
9049
9015
|
[
|
|
9050
9016
|
mock.call(self.server, 'tag1'),
|
|
9051
9017
|
mock.call(self.server, 'tag2'),
|
|
9052
9018
|
]
|
|
9053
9019
|
)
|
|
9054
|
-
self.
|
|
9055
|
-
self.
|
|
9020
|
+
self.compute_client.delete_server_metadata.assert_not_called()
|
|
9021
|
+
self.compute_client.update_server.assert_not_called()
|
|
9056
9022
|
|
|
9057
9023
|
def test_server_unset_with_tag_pre_v226(self):
|
|
9058
9024
|
self.set_compute_api_version('2.25')
|
|
@@ -9086,8 +9052,8 @@ class TestServerUnshelve(TestServer):
|
|
|
9086
9052
|
attrs={'status': 'SHELVED'},
|
|
9087
9053
|
)
|
|
9088
9054
|
|
|
9089
|
-
self.
|
|
9090
|
-
self.
|
|
9055
|
+
self.compute_client.find_server.return_value = self.server
|
|
9056
|
+
self.compute_client.unshelve_server.return_value = None
|
|
9091
9057
|
|
|
9092
9058
|
# Get the command object to test
|
|
9093
9059
|
self.cmd = server.UnshelveServer(self.app, None)
|
|
@@ -9103,11 +9069,11 @@ class TestServerUnshelve(TestServer):
|
|
|
9103
9069
|
|
|
9104
9070
|
self.cmd.take_action(parsed_args)
|
|
9105
9071
|
|
|
9106
|
-
self.
|
|
9072
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
9107
9073
|
self.server.id,
|
|
9108
9074
|
ignore_missing=False,
|
|
9109
9075
|
)
|
|
9110
|
-
self.
|
|
9076
|
+
self.compute_client.unshelve_server.assert_called_once_with(
|
|
9111
9077
|
self.server.id
|
|
9112
9078
|
)
|
|
9113
9079
|
|
|
@@ -9127,11 +9093,11 @@ class TestServerUnshelve(TestServer):
|
|
|
9127
9093
|
|
|
9128
9094
|
self.cmd.take_action(parsed_args)
|
|
9129
9095
|
|
|
9130
|
-
self.
|
|
9096
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
9131
9097
|
self.server.id,
|
|
9132
9098
|
ignore_missing=False,
|
|
9133
9099
|
)
|
|
9134
|
-
self.
|
|
9100
|
+
self.compute_client.unshelve_server.assert_called_once_with(
|
|
9135
9101
|
self.server.id,
|
|
9136
9102
|
availability_zone='foo-az',
|
|
9137
9103
|
)
|
|
@@ -9173,11 +9139,11 @@ class TestServerUnshelve(TestServer):
|
|
|
9173
9139
|
|
|
9174
9140
|
self.cmd.take_action(parsed_args)
|
|
9175
9141
|
|
|
9176
|
-
self.
|
|
9142
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
9177
9143
|
self.server.id,
|
|
9178
9144
|
ignore_missing=False,
|
|
9179
9145
|
)
|
|
9180
|
-
self.
|
|
9146
|
+
self.compute_client.unshelve_server.assert_called_once_with(
|
|
9181
9147
|
self.server.id,
|
|
9182
9148
|
host='server1',
|
|
9183
9149
|
)
|
|
@@ -9219,11 +9185,11 @@ class TestServerUnshelve(TestServer):
|
|
|
9219
9185
|
|
|
9220
9186
|
self.cmd.take_action(parsed_args)
|
|
9221
9187
|
|
|
9222
|
-
self.
|
|
9188
|
+
self.compute_client.find_server.assert_called_once_with(
|
|
9223
9189
|
self.server.id,
|
|
9224
9190
|
ignore_missing=False,
|
|
9225
9191
|
)
|
|
9226
|
-
self.
|
|
9192
|
+
self.compute_client.unshelve_server.assert_called_once_with(
|
|
9227
9193
|
self.server.id,
|
|
9228
9194
|
availability_zone=None,
|
|
9229
9195
|
)
|
|
@@ -9295,15 +9261,13 @@ class TestServerUnshelve(TestServer):
|
|
|
9295
9261
|
result = self.cmd.take_action(parsed_args)
|
|
9296
9262
|
self.assertIsNone(result)
|
|
9297
9263
|
|
|
9298
|
-
self.
|
|
9264
|
+
self.compute_client.find_server.assert_called_with(
|
|
9299
9265
|
self.server.name,
|
|
9300
9266
|
ignore_missing=False,
|
|
9301
9267
|
)
|
|
9302
|
-
self.
|
|
9303
|
-
self.server.id
|
|
9304
|
-
)
|
|
9268
|
+
self.compute_client.unshelve_server.assert_called_with(self.server.id)
|
|
9305
9269
|
mock_wait_for_status.assert_called_once_with(
|
|
9306
|
-
self.
|
|
9270
|
+
self.compute_client.get_server,
|
|
9307
9271
|
self.server.id,
|
|
9308
9272
|
callback=mock.ANY,
|
|
9309
9273
|
success_status=('active', 'shutoff'),
|
|
@@ -9395,7 +9359,7 @@ class TestServerGeneral(TestServer):
|
|
|
9395
9359
|
self.image_client.get_image.return_value = _image
|
|
9396
9360
|
|
|
9397
9361
|
_flavor = compute_fakes.create_one_flavor()
|
|
9398
|
-
self.
|
|
9362
|
+
self.compute_client.find_flavor.return_value = _flavor
|
|
9399
9363
|
|
|
9400
9364
|
server_info = {
|
|
9401
9365
|
'image': {'id': _image.id},
|
|
@@ -9407,7 +9371,7 @@ class TestServerGeneral(TestServer):
|
|
|
9407
9371
|
'volumes_attached': [{"id": "6344fe9d-ef20-45b2-91a6"}],
|
|
9408
9372
|
}
|
|
9409
9373
|
_server = compute_fakes.create_one_sdk_server(server_info)
|
|
9410
|
-
self.
|
|
9374
|
+
self.compute_client.get_server.return_value = _server
|
|
9411
9375
|
|
|
9412
9376
|
expected = {
|
|
9413
9377
|
'OS-DCF:diskConfig': None,
|
|
@@ -9458,14 +9422,14 @@ class TestServerGeneral(TestServer):
|
|
|
9458
9422
|
}
|
|
9459
9423
|
|
|
9460
9424
|
actual = server._prep_server_detail(
|
|
9461
|
-
self.
|
|
9425
|
+
self.compute_client,
|
|
9462
9426
|
self.image_client,
|
|
9463
9427
|
_server,
|
|
9464
9428
|
)
|
|
9465
9429
|
|
|
9466
9430
|
self.assertCountEqual(expected, actual)
|
|
9467
9431
|
# this should be called since we need the flavor (< 2.47)
|
|
9468
|
-
self.
|
|
9432
|
+
self.compute_client.find_flavor.assert_called_once_with(
|
|
9469
9433
|
_flavor.id, ignore_missing=False
|
|
9470
9434
|
)
|
|
9471
9435
|
|
|
@@ -9474,7 +9438,7 @@ class TestServerGeneral(TestServer):
|
|
|
9474
9438
|
self.image_client.get_image.return_value = _image
|
|
9475
9439
|
|
|
9476
9440
|
_flavor = compute_fakes.create_one_flavor()
|
|
9477
|
-
self.
|
|
9441
|
+
self.compute_client.find_flavor.return_value = _flavor
|
|
9478
9442
|
|
|
9479
9443
|
server_info = {
|
|
9480
9444
|
'image': {'id': _image.id},
|
|
@@ -9494,7 +9458,7 @@ class TestServerGeneral(TestServer):
|
|
|
9494
9458
|
'volumes_attached': [{"id": "6344fe9d-ef20-45b2-91a6"}],
|
|
9495
9459
|
}
|
|
9496
9460
|
_server = compute_fakes.create_one_sdk_server(server_info)
|
|
9497
|
-
self.
|
|
9461
|
+
self.compute_client.get_server.return_value = _server
|
|
9498
9462
|
|
|
9499
9463
|
expected = {
|
|
9500
9464
|
'OS-DCF:diskConfig': None,
|
|
@@ -9545,11 +9509,11 @@ class TestServerGeneral(TestServer):
|
|
|
9545
9509
|
}
|
|
9546
9510
|
|
|
9547
9511
|
actual = server._prep_server_detail(
|
|
9548
|
-
self.
|
|
9512
|
+
self.compute_client,
|
|
9549
9513
|
self.image_client,
|
|
9550
9514
|
_server,
|
|
9551
9515
|
)
|
|
9552
9516
|
|
|
9553
9517
|
self.assertCountEqual(expected, actual)
|
|
9554
9518
|
# this shouldn't be called since we have a full flavor (>= 2.47)
|
|
9555
|
-
self.
|
|
9519
|
+
self.compute_client.find_flavor.assert_not_called()
|