python-openstackclient 7.4.0__py3-none-any.whl → 8.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openstackclient/common/availability_zone.py +3 -6
- openstackclient/common/clientmanager.py +2 -1
- openstackclient/common/envvars.py +57 -0
- openstackclient/common/extension.py +3 -11
- openstackclient/common/limits.py +1 -1
- openstackclient/common/project_cleanup.py +3 -2
- openstackclient/common/quota.py +54 -28
- openstackclient/compute/client.py +7 -5
- openstackclient/compute/v2/agent.py +5 -5
- openstackclient/compute/v2/aggregate.py +17 -15
- openstackclient/compute/v2/console.py +10 -4
- openstackclient/compute/v2/console_connection.py +48 -0
- openstackclient/compute/v2/flavor.py +14 -18
- openstackclient/compute/v2/host.py +3 -3
- openstackclient/compute/v2/hypervisor.py +10 -4
- openstackclient/compute/v2/hypervisor_stats.py +1 -1
- openstackclient/compute/v2/keypair.py +18 -13
- openstackclient/compute/v2/server.py +144 -121
- openstackclient/compute/v2/server_backup.py +1 -1
- openstackclient/compute/v2/server_event.py +8 -17
- openstackclient/compute/v2/server_group.py +6 -6
- openstackclient/compute/v2/server_image.py +1 -1
- openstackclient/compute/v2/server_migration.py +6 -6
- openstackclient/compute/v2/server_volume.py +4 -4
- openstackclient/compute/v2/service.py +9 -13
- openstackclient/compute/v2/usage.py +4 -6
- openstackclient/identity/client.py +2 -4
- openstackclient/identity/common.py +95 -17
- openstackclient/identity/v2_0/ec2creds.py +4 -3
- openstackclient/identity/v2_0/endpoint.py +12 -10
- openstackclient/identity/v2_0/project.py +6 -6
- openstackclient/identity/v2_0/role.py +1 -1
- openstackclient/identity/v2_0/service.py +7 -7
- openstackclient/identity/v2_0/user.py +6 -21
- openstackclient/identity/v3/access_rule.py +2 -5
- openstackclient/identity/v3/application_credential.py +2 -2
- openstackclient/identity/v3/consumer.py +4 -3
- openstackclient/identity/v3/credential.py +6 -7
- openstackclient/identity/v3/domain.py +63 -44
- openstackclient/identity/v3/ec2creds.py +4 -3
- openstackclient/identity/v3/endpoint.py +104 -88
- openstackclient/identity/v3/endpoint_group.py +1 -1
- openstackclient/identity/v3/group.py +116 -72
- openstackclient/identity/v3/identity_provider.py +1 -2
- openstackclient/identity/v3/limit.py +4 -9
- openstackclient/identity/v3/mapping.py +4 -3
- openstackclient/identity/v3/policy.py +5 -8
- openstackclient/identity/v3/project.py +23 -6
- openstackclient/identity/v3/region.py +2 -5
- openstackclient/identity/v3/registered_limit.py +4 -8
- openstackclient/identity/v3/role.py +15 -16
- openstackclient/identity/v3/service.py +8 -8
- openstackclient/identity/v3/service_provider.py +3 -6
- openstackclient/identity/v3/tag.py +2 -2
- openstackclient/identity/v3/token.py +1 -2
- openstackclient/identity/v3/trust.py +74 -25
- openstackclient/identity/v3/user.py +47 -11
- openstackclient/image/client.py +7 -5
- openstackclient/image/v1/image.py +11 -15
- openstackclient/image/v2/cache.py +2 -4
- openstackclient/image/v2/image.py +41 -48
- openstackclient/image/v2/metadef_namespaces.py +4 -3
- openstackclient/image/v2/metadef_resource_type_association.py +1 -2
- openstackclient/image/v2/metadef_resource_types.py +1 -2
- openstackclient/locale/tr_TR/LC_MESSAGES/openstackclient.po +9 -1370
- openstackclient/network/client.py +4 -16
- openstackclient/network/common.py +16 -12
- openstackclient/network/utils.py +3 -3
- openstackclient/network/v2/address_group.py +5 -9
- openstackclient/network/v2/address_scope.py +2 -3
- openstackclient/network/v2/default_security_group_rule.py +1 -2
- openstackclient/network/v2/floating_ip.py +69 -47
- openstackclient/network/v2/floating_ip_port_forwarding.py +7 -7
- openstackclient/network/v2/ip_availability.py +1 -2
- openstackclient/network/v2/l3_conntrack_helper.py +8 -12
- openstackclient/network/v2/local_ip.py +24 -26
- openstackclient/network/v2/local_ip_association.py +4 -5
- openstackclient/network/v2/ndp_proxy.py +9 -10
- openstackclient/network/v2/network.py +12 -16
- openstackclient/network/v2/network_agent.py +29 -37
- openstackclient/network/v2/network_auto_allocated_topology.py +4 -5
- openstackclient/network/v2/network_flavor.py +1 -1
- openstackclient/network/v2/network_flavor_profile.py +5 -5
- openstackclient/network/v2/network_meter.py +3 -3
- openstackclient/network/v2/network_meter_rule.py +5 -8
- openstackclient/network/v2/network_qos_policy.py +4 -4
- openstackclient/network/v2/network_qos_rule.py +7 -16
- openstackclient/network/v2/network_rbac.py +4 -4
- openstackclient/network/v2/network_segment.py +6 -7
- openstackclient/network/v2/network_segment_range.py +16 -20
- openstackclient/network/v2/network_trunk.py +24 -16
- openstackclient/network/v2/port.py +28 -29
- openstackclient/network/v2/router.py +53 -42
- openstackclient/network/v2/security_group.py +13 -19
- openstackclient/network/v2/security_group_rule.py +10 -11
- openstackclient/network/v2/subnet.py +31 -30
- openstackclient/network/v2/subnet_pool.py +4 -4
- openstackclient/object/client.py +2 -3
- openstackclient/object/v1/container.py +2 -3
- openstackclient/object/v1/object.py +2 -9
- openstackclient/shell.py +22 -5
- openstackclient/tests/functional/base.py +7 -3
- openstackclient/tests/functional/common/test_quota.py +3 -1
- openstackclient/tests/functional/compute/v2/common.py +12 -6
- openstackclient/tests/functional/compute/v2/test_keypair.py +41 -5
- openstackclient/tests/functional/compute/v2/test_server.py +2 -3
- openstackclient/tests/functional/compute/v2/test_server_event.py +1 -1
- openstackclient/tests/functional/identity/v2/test_user.py +1 -1
- openstackclient/tests/functional/identity/v3/common.py +3 -8
- openstackclient/tests/functional/identity/v3/test_application_credential.py +10 -10
- openstackclient/tests/functional/identity/v3/test_endpoint.py +3 -3
- openstackclient/tests/functional/identity/v3/test_group.py +3 -3
- openstackclient/tests/functional/identity/v3/test_idp.py +3 -7
- openstackclient/tests/functional/identity/v3/test_limit.py +4 -4
- openstackclient/tests/functional/identity/v3/test_project.py +5 -14
- openstackclient/tests/functional/identity/v3/test_region.py +1 -3
- openstackclient/tests/functional/identity/v3/test_registered_limit.py +3 -3
- openstackclient/tests/functional/identity/v3/test_role.py +1 -1
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +13 -31
- openstackclient/tests/functional/identity/v3/test_service_provider.py +3 -7
- openstackclient/tests/functional/identity/v3/test_user.py +8 -8
- openstackclient/tests/functional/network/v2/common.py +7 -3
- openstackclient/tests/functional/network/v2/test_address_group.py +4 -0
- openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py +15 -11
- openstackclient/tests/functional/network/v2/test_local_ip.py +4 -0
- openstackclient/tests/functional/network/v2/test_network_meter_rule.py +2 -2
- openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py +2 -3
- openstackclient/tests/functional/network/v2/test_network_rbac.py +2 -2
- openstackclient/tests/functional/network/v2/test_network_trunk.py +1 -1
- openstackclient/tests/functional/network/v2/test_port.py +17 -7
- openstackclient/tests/functional/network/v2/test_router.py +42 -0
- openstackclient/tests/functional/network/v2/test_subnet_pool.py +4 -0
- openstackclient/tests/unit/api/test_compute_v2.py +67 -87
- openstackclient/tests/unit/common/test_availability_zone.py +6 -14
- openstackclient/tests/unit/common/test_command.py +1 -1
- openstackclient/tests/unit/common/test_extension.py +5 -7
- openstackclient/tests/unit/common/test_limits.py +1 -1
- openstackclient/tests/unit/common/test_project_cleanup.py +5 -6
- openstackclient/tests/unit/common/test_quota.py +51 -28
- openstackclient/tests/unit/compute/v2/fakes.py +85 -315
- openstackclient/tests/unit/compute/v2/test_agent.py +16 -16
- openstackclient/tests/unit/compute/v2/test_aggregate.py +56 -60
- openstackclient/tests/unit/compute/v2/test_console.py +34 -17
- openstackclient/tests/unit/compute/v2/test_console_connection.py +72 -0
- openstackclient/tests/unit/compute/v2/test_flavor.py +72 -72
- openstackclient/tests/unit/compute/v2/test_host.py +8 -8
- openstackclient/tests/unit/compute/v2/test_hypervisor.py +22 -30
- openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +2 -2
- openstackclient/tests/unit/compute/v2/test_keypair.py +36 -29
- openstackclient/tests/unit/compute/v2/test_server.py +693 -606
- openstackclient/tests/unit/compute/v2/test_server_backup.py +36 -77
- openstackclient/tests/unit/compute/v2/test_server_event.py +18 -20
- openstackclient/tests/unit/compute/v2/test_server_group.py +25 -31
- openstackclient/tests/unit/compute/v2/test_server_image.py +37 -78
- openstackclient/tests/unit/compute/v2/test_server_migration.py +41 -41
- openstackclient/tests/unit/compute/v2/test_server_volume.py +12 -12
- openstackclient/tests/unit/compute/v2/test_service.py +39 -45
- openstackclient/tests/unit/compute/v2/test_usage.py +5 -5
- openstackclient/tests/unit/identity/v2_0/fakes.py +1 -1
- openstackclient/tests/unit/identity/v3/test_access_rule.py +1 -3
- openstackclient/tests/unit/identity/v3/test_application_credential.py +48 -26
- openstackclient/tests/unit/identity/v3/test_domain.py +115 -105
- openstackclient/tests/unit/identity/v3/test_endpoint.py +167 -172
- openstackclient/tests/unit/identity/v3/test_group.py +353 -202
- openstackclient/tests/unit/identity/v3/test_mappings.py +2 -2
- openstackclient/tests/unit/identity/v3/test_project.py +16 -0
- openstackclient/tests/unit/identity/v3/test_trust.py +5 -2
- openstackclient/tests/unit/identity/v3/test_user.py +102 -6
- openstackclient/tests/unit/image/v1/fakes.py +2 -2
- openstackclient/tests/unit/image/v1/test_image.py +8 -9
- openstackclient/tests/unit/image/v2/test_image.py +84 -46
- openstackclient/tests/unit/integ/cli/test_shell.py +1 -2
- openstackclient/tests/unit/network/test_common.py +2 -2
- openstackclient/tests/unit/network/v2/fakes.py +405 -485
- openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +8 -14
- openstackclient/tests/unit/network/v2/test_floating_ip_network.py +62 -54
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +1 -1
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +2 -2
- openstackclient/tests/unit/network/v2/test_ndp_proxy.py +1 -3
- openstackclient/tests/unit/network/v2/test_network.py +4 -4
- openstackclient/tests/unit/network/v2/test_network_agent.py +15 -29
- openstackclient/tests/unit/network/v2/test_network_compute.py +11 -11
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +16 -19
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +79 -152
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +4 -6
- openstackclient/tests/unit/network/v2/test_network_rbac.py +2 -2
- openstackclient/tests/unit/network/v2/test_network_trunk.py +2 -2
- openstackclient/tests/unit/network/v2/test_port.py +21 -22
- openstackclient/tests/unit/network/v2/test_router.py +130 -51
- openstackclient/tests/unit/network/v2/test_security_group_compute.py +11 -19
- openstackclient/tests/unit/network/v2/test_security_group_network.py +25 -27
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +15 -17
- openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +33 -39
- openstackclient/tests/unit/object/v1/test_object_all.py +4 -3
- openstackclient/tests/unit/test_shell.py +16 -13
- openstackclient/tests/unit/volume/v2/fakes.py +1 -2
- openstackclient/tests/unit/volume/v2/test_service.py +57 -91
- openstackclient/tests/unit/volume/v2/test_volume.py +109 -106
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +141 -148
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +293 -283
- openstackclient/tests/unit/volume/v2/test_volume_transfer_request.py +1 -1
- openstackclient/tests/unit/volume/v3/fakes.py +2 -8
- openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +61 -71
- openstackclient/tests/unit/volume/v3/test_service.py +221 -141
- openstackclient/tests/unit/volume/v3/test_volume.py +131 -120
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +4 -4
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +198 -203
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +683 -49
- openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py +1 -1
- openstackclient/volume/client.py +1 -3
- openstackclient/volume/v2/consistency_group.py +4 -8
- openstackclient/volume/v2/consistency_group_snapshot.py +1 -2
- openstackclient/volume/v2/qos_specs.py +1 -2
- openstackclient/volume/v2/service.py +41 -38
- openstackclient/volume/v2/volume.py +71 -53
- openstackclient/volume/v2/volume_backup.py +15 -10
- openstackclient/volume/v2/volume_snapshot.py +129 -93
- openstackclient/volume/v2/volume_transfer_request.py +0 -3
- openstackclient/volume/v2/volume_type.py +10 -21
- openstackclient/volume/v3/block_storage_cluster.py +3 -3
- openstackclient/volume/v3/block_storage_log_level.py +22 -28
- openstackclient/volume/v3/block_storage_manage.py +1 -3
- openstackclient/volume/v3/service.py +105 -14
- openstackclient/volume/v3/volume.py +218 -58
- openstackclient/volume/v3/volume_attachment.py +3 -2
- openstackclient/volume/v3/volume_backup.py +31 -27
- openstackclient/volume/v3/volume_group.py +2 -1
- openstackclient/volume/v3/volume_group_snapshot.py +2 -1
- openstackclient/volume/v3/volume_snapshot.py +489 -13
- openstackclient/volume/v3/volume_type.py +10 -21
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/AUTHORS +11 -0
- python_openstackclient-8.1.0.dist-info/METADATA +264 -0
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/RECORD +238 -259
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/entry_points.txt +7 -47
- python_openstackclient-8.1.0.dist-info/pbr.json +1 -0
- openstackclient/tests/functional/volume/v1/__init__.py +0 -0
- openstackclient/tests/functional/volume/v1/common.py +0 -35
- openstackclient/tests/functional/volume/v1/test_qos.py +0 -100
- openstackclient/tests/functional/volume/v1/test_service.py +0 -76
- openstackclient/tests/functional/volume/v1/test_snapshot.py +0 -232
- openstackclient/tests/functional/volume/v1/test_transfer_request.py +0 -111
- openstackclient/tests/functional/volume/v1/test_volume.py +0 -228
- openstackclient/tests/functional/volume/v1/test_volume_type.py +0 -213
- openstackclient/tests/unit/volume/v1/__init__.py +0 -0
- openstackclient/tests/unit/volume/v1/fakes.py +0 -615
- openstackclient/tests/unit/volume/v1/test_qos_specs.py +0 -471
- openstackclient/tests/unit/volume/v1/test_service.py +0 -295
- openstackclient/tests/unit/volume/v1/test_transfer_request.py +0 -380
- openstackclient/tests/unit/volume/v1/test_type.py +0 -633
- openstackclient/tests/unit/volume/v1/test_volume.py +0 -1447
- openstackclient/tests/unit/volume/v1/test_volume_backup.py +0 -435
- openstackclient/volume/v1/__init__.py +0 -0
- openstackclient/volume/v1/qos_specs.py +0 -377
- openstackclient/volume/v1/service.py +0 -136
- openstackclient/volume/v1/volume.py +0 -734
- openstackclient/volume/v1/volume_backup.py +0 -302
- openstackclient/volume/v1/volume_snapshot.py +0 -433
- openstackclient/volume/v1/volume_transfer_request.py +0 -200
- openstackclient/volume/v1/volume_type.py +0 -520
- python_openstackclient-7.4.0.dist-info/METADATA +0 -172
- python_openstackclient-7.4.0.dist-info/pbr.json +0 -1
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/top_level.txt +0 -0
|
@@ -61,7 +61,7 @@ class TestAgentCreate(compute_fakes.TestComputev2):
|
|
|
61
61
|
self._agent['version'],
|
|
62
62
|
)
|
|
63
63
|
|
|
64
|
-
self.
|
|
64
|
+
self.compute_client.post.return_value = fakes.FakeResponse(
|
|
65
65
|
data={'agent': self._agent}
|
|
66
66
|
)
|
|
67
67
|
self.cmd = agent.CreateAgent(self.app, None)
|
|
@@ -87,7 +87,7 @@ class TestAgentCreate(compute_fakes.TestComputev2):
|
|
|
87
87
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
88
88
|
columns, data = self.cmd.take_action(parsed_args)
|
|
89
89
|
|
|
90
|
-
self.
|
|
90
|
+
self.compute_client.post.assert_called_with(
|
|
91
91
|
'/os-agents',
|
|
92
92
|
json={
|
|
93
93
|
'agent': {
|
|
@@ -110,7 +110,7 @@ class TestAgentDelete(compute_fakes.TestComputev2):
|
|
|
110
110
|
def setUp(self):
|
|
111
111
|
super().setUp()
|
|
112
112
|
|
|
113
|
-
self.
|
|
113
|
+
self.compute_client.delete.return_value = fakes.FakeResponse(
|
|
114
114
|
status_code=http.HTTPStatus.NO_CONTENT
|
|
115
115
|
)
|
|
116
116
|
|
|
@@ -125,7 +125,7 @@ class TestAgentDelete(compute_fakes.TestComputev2):
|
|
|
125
125
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
126
126
|
result = self.cmd.take_action(parsed_args)
|
|
127
127
|
|
|
128
|
-
self.
|
|
128
|
+
self.compute_client.delete.assert_called_once_with(
|
|
129
129
|
'/os-agents/123',
|
|
130
130
|
microversion='2.1',
|
|
131
131
|
)
|
|
@@ -143,7 +143,7 @@ class TestAgentDelete(compute_fakes.TestComputev2):
|
|
|
143
143
|
calls = [
|
|
144
144
|
mock.call(f'/os-agents/{x}', microversion='2.1') for x in arglist
|
|
145
145
|
]
|
|
146
|
-
self.
|
|
146
|
+
self.compute_client.delete.assert_has_calls(calls)
|
|
147
147
|
self.assertIsNone(result)
|
|
148
148
|
|
|
149
149
|
def test_delete_multiple_agents_exception(self):
|
|
@@ -154,7 +154,7 @@ class TestAgentDelete(compute_fakes.TestComputev2):
|
|
|
154
154
|
|
|
155
155
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
156
156
|
|
|
157
|
-
self.
|
|
157
|
+
self.compute_client.delete.side_effect = [
|
|
158
158
|
fakes.FakeResponse(status_code=http.HTTPStatus.NO_CONTENT),
|
|
159
159
|
fakes.FakeResponse(status_code=http.HTTPStatus.NO_CONTENT),
|
|
160
160
|
fakes.FakeResponse(status_code=http.HTTPStatus.NOT_FOUND),
|
|
@@ -166,7 +166,7 @@ class TestAgentDelete(compute_fakes.TestComputev2):
|
|
|
166
166
|
calls = [
|
|
167
167
|
mock.call(f'/os-agents/{x}', microversion='2.1') for x in arglist
|
|
168
168
|
]
|
|
169
|
-
self.
|
|
169
|
+
self.compute_client.delete.assert_has_calls(calls)
|
|
170
170
|
|
|
171
171
|
def test_agent_delete_no_input(self):
|
|
172
172
|
arglist = []
|
|
@@ -208,7 +208,7 @@ class TestAgentList(compute_fakes.TestComputev2):
|
|
|
208
208
|
for _agent in _agents
|
|
209
209
|
]
|
|
210
210
|
|
|
211
|
-
self.
|
|
211
|
+
self.compute_client.get.return_value = fakes.FakeResponse(
|
|
212
212
|
data={'agents': _agents},
|
|
213
213
|
)
|
|
214
214
|
self.cmd = agent.ListAgent(self.app, None)
|
|
@@ -222,7 +222,7 @@ class TestAgentList(compute_fakes.TestComputev2):
|
|
|
222
222
|
|
|
223
223
|
self.assertEqual(self.columns, columns)
|
|
224
224
|
self.assertEqual(self.data, list(data))
|
|
225
|
-
self.
|
|
225
|
+
self.compute_client.get.assert_called_once_with(
|
|
226
226
|
'/os-agents',
|
|
227
227
|
microversion='2.1',
|
|
228
228
|
)
|
|
@@ -241,7 +241,7 @@ class TestAgentList(compute_fakes.TestComputev2):
|
|
|
241
241
|
|
|
242
242
|
self.assertEqual(self.columns, columns)
|
|
243
243
|
self.assertEqual(self.data, list(data))
|
|
244
|
-
self.
|
|
244
|
+
self.compute_client.get.assert_called_once_with(
|
|
245
245
|
'/os-agents?hypervisor=hypervisor',
|
|
246
246
|
microversion='2.1',
|
|
247
247
|
)
|
|
@@ -252,10 +252,10 @@ class TestAgentSet(compute_fakes.TestComputev2):
|
|
|
252
252
|
super().setUp()
|
|
253
253
|
|
|
254
254
|
self.agent = _generate_fake_agent()
|
|
255
|
-
self.
|
|
255
|
+
self.compute_client.get.return_value = fakes.FakeResponse(
|
|
256
256
|
data={'agents': [self.agent]},
|
|
257
257
|
)
|
|
258
|
-
self.
|
|
258
|
+
self.compute_client.put.return_value = fakes.FakeResponse()
|
|
259
259
|
|
|
260
260
|
self.cmd = agent.SetAgent(self.app, None)
|
|
261
261
|
|
|
@@ -269,7 +269,7 @@ class TestAgentSet(compute_fakes.TestComputev2):
|
|
|
269
269
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
270
270
|
result = self.cmd.take_action(parsed_args)
|
|
271
271
|
|
|
272
|
-
self.
|
|
272
|
+
self.compute_client.put.assert_called_once_with(
|
|
273
273
|
f'/os-agents/{self.agent["agent_id"]}',
|
|
274
274
|
json={
|
|
275
275
|
'para': {
|
|
@@ -297,7 +297,7 @@ class TestAgentSet(compute_fakes.TestComputev2):
|
|
|
297
297
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
298
298
|
result = self.cmd.take_action(parsed_args)
|
|
299
299
|
|
|
300
|
-
self.
|
|
300
|
+
self.compute_client.put.assert_called_once_with(
|
|
301
301
|
f'/os-agents/{self.agent["agent_id"]}',
|
|
302
302
|
json={
|
|
303
303
|
'para': {
|
|
@@ -325,7 +325,7 @@ class TestAgentSet(compute_fakes.TestComputev2):
|
|
|
325
325
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
326
326
|
result = self.cmd.take_action(parsed_args)
|
|
327
327
|
|
|
328
|
-
self.
|
|
328
|
+
self.compute_client.put.assert_called_once_with(
|
|
329
329
|
f'/os-agents/{self.agent["agent_id"]}',
|
|
330
330
|
json={
|
|
331
331
|
'para': {
|
|
@@ -353,7 +353,7 @@ class TestAgentSet(compute_fakes.TestComputev2):
|
|
|
353
353
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
354
354
|
result = self.cmd.take_action(parsed_args)
|
|
355
355
|
|
|
356
|
-
self.
|
|
356
|
+
self.compute_client.put.assert_called_once_with(
|
|
357
357
|
f'/os-agents/{self.agent["agent_id"]}',
|
|
358
358
|
json={
|
|
359
359
|
'para': {
|
|
@@ -66,10 +66,8 @@ class TestAggregateAddHost(TestAggregate):
|
|
|
66
66
|
def setUp(self):
|
|
67
67
|
super().setUp()
|
|
68
68
|
|
|
69
|
-
self.
|
|
70
|
-
self.
|
|
71
|
-
self.fake_ag
|
|
72
|
-
)
|
|
69
|
+
self.compute_client.find_aggregate.return_value = self.fake_ag
|
|
70
|
+
self.compute_client.add_host_to_aggregate.return_value = self.fake_ag
|
|
73
71
|
self.cmd = aggregate.AddAggregateHost(self.app, None)
|
|
74
72
|
|
|
75
73
|
def test_aggregate_add_host(self):
|
|
@@ -83,10 +81,10 @@ class TestAggregateAddHost(TestAggregate):
|
|
|
83
81
|
]
|
|
84
82
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
85
83
|
columns, data = self.cmd.take_action(parsed_args)
|
|
86
|
-
self.
|
|
84
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
87
85
|
parsed_args.aggregate, ignore_missing=False
|
|
88
86
|
)
|
|
89
|
-
self.
|
|
87
|
+
self.compute_client.add_host_to_aggregate.assert_called_once_with(
|
|
90
88
|
self.fake_ag.id, parsed_args.host
|
|
91
89
|
)
|
|
92
90
|
self.assertEqual(self.columns, columns)
|
|
@@ -97,10 +95,8 @@ class TestAggregateCreate(TestAggregate):
|
|
|
97
95
|
def setUp(self):
|
|
98
96
|
super().setUp()
|
|
99
97
|
|
|
100
|
-
self.
|
|
101
|
-
self.
|
|
102
|
-
self.fake_ag
|
|
103
|
-
)
|
|
98
|
+
self.compute_client.create_aggregate.return_value = self.fake_ag
|
|
99
|
+
self.compute_client.set_aggregate_metadata.return_value = self.fake_ag
|
|
104
100
|
self.cmd = aggregate.CreateAggregate(self.app, None)
|
|
105
101
|
|
|
106
102
|
def test_aggregate_create(self):
|
|
@@ -112,7 +108,7 @@ class TestAggregateCreate(TestAggregate):
|
|
|
112
108
|
]
|
|
113
109
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
114
110
|
columns, data = self.cmd.take_action(parsed_args)
|
|
115
|
-
self.
|
|
111
|
+
self.compute_client.create_aggregate.assert_called_once_with(
|
|
116
112
|
name=parsed_args.name
|
|
117
113
|
)
|
|
118
114
|
self.assertEqual(self.columns, columns)
|
|
@@ -131,7 +127,7 @@ class TestAggregateCreate(TestAggregate):
|
|
|
131
127
|
|
|
132
128
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
133
129
|
columns, data = self.cmd.take_action(parsed_args)
|
|
134
|
-
self.
|
|
130
|
+
self.compute_client.create_aggregate.assert_called_once_with(
|
|
135
131
|
name=parsed_args.name, availability_zone=parsed_args.zone
|
|
136
132
|
)
|
|
137
133
|
self.assertEqual(self.columns, columns)
|
|
@@ -151,10 +147,10 @@ class TestAggregateCreate(TestAggregate):
|
|
|
151
147
|
]
|
|
152
148
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
153
149
|
columns, data = self.cmd.take_action(parsed_args)
|
|
154
|
-
self.
|
|
150
|
+
self.compute_client.create_aggregate.assert_called_once_with(
|
|
155
151
|
name=parsed_args.name
|
|
156
152
|
)
|
|
157
|
-
self.
|
|
153
|
+
self.compute_client.set_aggregate_metadata.assert_called_once_with(
|
|
158
154
|
self.fake_ag.id, parsed_args.properties
|
|
159
155
|
)
|
|
160
156
|
self.assertEqual(self.columns, columns)
|
|
@@ -169,7 +165,7 @@ class TestAggregateDelete(TestAggregate):
|
|
|
169
165
|
sdk_fakes.generate_fake_resources(_aggregate.Aggregate, 2)
|
|
170
166
|
)
|
|
171
167
|
|
|
172
|
-
self.
|
|
168
|
+
self.compute_client.find_aggregate = mock.Mock(
|
|
173
169
|
side_effect=[self.fake_ags[0], self.fake_ags[1]]
|
|
174
170
|
)
|
|
175
171
|
self.cmd = aggregate.DeleteAggregate(self.app, None)
|
|
@@ -181,10 +177,10 @@ class TestAggregateDelete(TestAggregate):
|
|
|
181
177
|
]
|
|
182
178
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
183
179
|
self.cmd.take_action(parsed_args)
|
|
184
|
-
self.
|
|
180
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
185
181
|
self.fake_ags[0].id, ignore_missing=False
|
|
186
182
|
)
|
|
187
|
-
self.
|
|
183
|
+
self.compute_client.delete_aggregate.assert_called_once_with(
|
|
188
184
|
self.fake_ags[0].id, ignore_missing=False
|
|
189
185
|
)
|
|
190
186
|
|
|
@@ -202,8 +198,8 @@ class TestAggregateDelete(TestAggregate):
|
|
|
202
198
|
calls = []
|
|
203
199
|
for a in self.fake_ags:
|
|
204
200
|
calls.append(call(a.id, ignore_missing=False))
|
|
205
|
-
self.
|
|
206
|
-
self.
|
|
201
|
+
self.compute_client.find_aggregate.assert_has_calls(calls)
|
|
202
|
+
self.compute_client.delete_aggregate.assert_has_calls(calls)
|
|
207
203
|
|
|
208
204
|
def test_delete_multiple_agggregates_with_exception(self):
|
|
209
205
|
arglist = [
|
|
@@ -216,7 +212,7 @@ class TestAggregateDelete(TestAggregate):
|
|
|
216
212
|
|
|
217
213
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
218
214
|
|
|
219
|
-
self.
|
|
215
|
+
self.compute_client.find_aggregate.side_effect = [
|
|
220
216
|
self.fake_ags[0],
|
|
221
217
|
sdk_exceptions.NotFoundException,
|
|
222
218
|
]
|
|
@@ -229,8 +225,8 @@ class TestAggregateDelete(TestAggregate):
|
|
|
229
225
|
calls = []
|
|
230
226
|
for a in arglist:
|
|
231
227
|
calls.append(call(a, ignore_missing=False))
|
|
232
|
-
self.
|
|
233
|
-
self.
|
|
228
|
+
self.compute_client.find_aggregate.assert_has_calls(calls)
|
|
229
|
+
self.compute_client.delete_aggregate.assert_called_with(
|
|
234
230
|
self.fake_ags[0].id, ignore_missing=False
|
|
235
231
|
)
|
|
236
232
|
|
|
@@ -239,7 +235,7 @@ class TestAggregateList(TestAggregate):
|
|
|
239
235
|
def setUp(self):
|
|
240
236
|
super().setUp()
|
|
241
237
|
|
|
242
|
-
self.
|
|
238
|
+
self.compute_client.aggregates.return_value = [self.fake_ag]
|
|
243
239
|
self.cmd = aggregate.ListAggregate(self.app, None)
|
|
244
240
|
|
|
245
241
|
def test_aggregate_list(self):
|
|
@@ -333,8 +329,8 @@ class TestAggregateRemoveHost(TestAggregate):
|
|
|
333
329
|
def setUp(self):
|
|
334
330
|
super().setUp()
|
|
335
331
|
|
|
336
|
-
self.
|
|
337
|
-
self.
|
|
332
|
+
self.compute_client.find_aggregate.return_value = self.fake_ag
|
|
333
|
+
self.compute_client.remove_host_from_aggregate.return_value = (
|
|
338
334
|
self.fake_ag
|
|
339
335
|
)
|
|
340
336
|
self.cmd = aggregate.RemoveAggregateHost(self.app, None)
|
|
@@ -350,10 +346,10 @@ class TestAggregateRemoveHost(TestAggregate):
|
|
|
350
346
|
]
|
|
351
347
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
352
348
|
columns, data = self.cmd.take_action(parsed_args)
|
|
353
|
-
self.
|
|
349
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
354
350
|
parsed_args.aggregate, ignore_missing=False
|
|
355
351
|
)
|
|
356
|
-
self.
|
|
352
|
+
self.compute_client.remove_host_from_aggregate.assert_called_once_with(
|
|
357
353
|
self.fake_ag.id, parsed_args.host
|
|
358
354
|
)
|
|
359
355
|
self.assertEqual(self.columns, columns)
|
|
@@ -364,7 +360,7 @@ class TestAggregateSet(TestAggregate):
|
|
|
364
360
|
def setUp(self):
|
|
365
361
|
super().setUp()
|
|
366
362
|
|
|
367
|
-
self.
|
|
363
|
+
self.compute_client.find_aggregate.return_value = self.fake_ag
|
|
368
364
|
self.cmd = aggregate.SetAggregate(self.app, None)
|
|
369
365
|
|
|
370
366
|
def test_aggregate_set_no_option(self):
|
|
@@ -377,11 +373,11 @@ class TestAggregateSet(TestAggregate):
|
|
|
377
373
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
378
374
|
result = self.cmd.take_action(parsed_args)
|
|
379
375
|
|
|
380
|
-
self.
|
|
376
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
381
377
|
parsed_args.aggregate, ignore_missing=False
|
|
382
378
|
)
|
|
383
|
-
self.assertNotCalled(self.
|
|
384
|
-
self.assertNotCalled(self.
|
|
379
|
+
self.assertNotCalled(self.compute_client.update_aggregate)
|
|
380
|
+
self.assertNotCalled(self.compute_client.set_aggregate_metadata)
|
|
385
381
|
self.assertIsNone(result)
|
|
386
382
|
|
|
387
383
|
def test_aggregate_set_with_name(self):
|
|
@@ -397,13 +393,13 @@ class TestAggregateSet(TestAggregate):
|
|
|
397
393
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
398
394
|
result = self.cmd.take_action(parsed_args)
|
|
399
395
|
|
|
400
|
-
self.
|
|
396
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
401
397
|
parsed_args.aggregate, ignore_missing=False
|
|
402
398
|
)
|
|
403
|
-
self.
|
|
399
|
+
self.compute_client.update_aggregate.assert_called_once_with(
|
|
404
400
|
self.fake_ag.id, name=parsed_args.name
|
|
405
401
|
)
|
|
406
|
-
self.assertNotCalled(self.
|
|
402
|
+
self.assertNotCalled(self.compute_client.set_aggregate_metadata)
|
|
407
403
|
self.assertIsNone(result)
|
|
408
404
|
|
|
409
405
|
def test_aggregate_set_with_zone(self):
|
|
@@ -419,13 +415,13 @@ class TestAggregateSet(TestAggregate):
|
|
|
419
415
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
420
416
|
result = self.cmd.take_action(parsed_args)
|
|
421
417
|
|
|
422
|
-
self.
|
|
418
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
423
419
|
parsed_args.aggregate, ignore_missing=False
|
|
424
420
|
)
|
|
425
|
-
self.
|
|
421
|
+
self.compute_client.update_aggregate.assert_called_once_with(
|
|
426
422
|
self.fake_ag.id, availability_zone=parsed_args.zone
|
|
427
423
|
)
|
|
428
|
-
self.assertNotCalled(self.
|
|
424
|
+
self.assertNotCalled(self.compute_client.set_aggregate_metadata)
|
|
429
425
|
self.assertIsNone(result)
|
|
430
426
|
|
|
431
427
|
def test_aggregate_set_with_property(self):
|
|
@@ -443,11 +439,11 @@ class TestAggregateSet(TestAggregate):
|
|
|
443
439
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
444
440
|
result = self.cmd.take_action(parsed_args)
|
|
445
441
|
|
|
446
|
-
self.
|
|
442
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
447
443
|
parsed_args.aggregate, ignore_missing=False
|
|
448
444
|
)
|
|
449
|
-
self.assertNotCalled(self.
|
|
450
|
-
self.
|
|
445
|
+
self.assertNotCalled(self.compute_client.update_aggregate)
|
|
446
|
+
self.compute_client.set_aggregate_metadata.assert_called_once_with(
|
|
451
447
|
self.fake_ag.id, parsed_args.properties
|
|
452
448
|
)
|
|
453
449
|
self.assertIsNone(result)
|
|
@@ -466,11 +462,11 @@ class TestAggregateSet(TestAggregate):
|
|
|
466
462
|
]
|
|
467
463
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
468
464
|
result = self.cmd.take_action(parsed_args)
|
|
469
|
-
self.
|
|
465
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
470
466
|
parsed_args.aggregate, ignore_missing=False
|
|
471
467
|
)
|
|
472
|
-
self.assertNotCalled(self.
|
|
473
|
-
self.
|
|
468
|
+
self.assertNotCalled(self.compute_client.update_aggregate)
|
|
469
|
+
self.compute_client.set_aggregate_metadata.assert_called_once_with(
|
|
474
470
|
self.fake_ag.id, {'key1': None, 'key2': 'value2'}
|
|
475
471
|
)
|
|
476
472
|
self.assertIsNone(result)
|
|
@@ -486,11 +482,11 @@ class TestAggregateSet(TestAggregate):
|
|
|
486
482
|
]
|
|
487
483
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
488
484
|
result = self.cmd.take_action(parsed_args)
|
|
489
|
-
self.
|
|
485
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
490
486
|
parsed_args.aggregate, ignore_missing=False
|
|
491
487
|
)
|
|
492
|
-
self.assertNotCalled(self.
|
|
493
|
-
self.
|
|
488
|
+
self.assertNotCalled(self.compute_client.update_aggregate)
|
|
489
|
+
self.compute_client.set_aggregate_metadata.assert_called_once_with(
|
|
494
490
|
self.fake_ag.id, {'key1': None}
|
|
495
491
|
)
|
|
496
492
|
self.assertIsNone(result)
|
|
@@ -509,13 +505,13 @@ class TestAggregateSet(TestAggregate):
|
|
|
509
505
|
]
|
|
510
506
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
511
507
|
result = self.cmd.take_action(parsed_args)
|
|
512
|
-
self.
|
|
508
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
513
509
|
parsed_args.aggregate, ignore_missing=False
|
|
514
510
|
)
|
|
515
|
-
self.
|
|
511
|
+
self.compute_client.update_aggregate.assert_called_once_with(
|
|
516
512
|
self.fake_ag.id, availability_zone=parsed_args.zone
|
|
517
513
|
)
|
|
518
|
-
self.
|
|
514
|
+
self.compute_client.set_aggregate_metadata.assert_called_once_with(
|
|
519
515
|
self.fake_ag.id, {'key1': None}
|
|
520
516
|
)
|
|
521
517
|
self.assertIsNone(result)
|
|
@@ -538,7 +534,7 @@ class TestAggregateShow(TestAggregate):
|
|
|
538
534
|
def setUp(self):
|
|
539
535
|
super().setUp()
|
|
540
536
|
|
|
541
|
-
self.
|
|
537
|
+
self.compute_client.find_aggregate.return_value = self.fake_ag
|
|
542
538
|
self.cmd = aggregate.ShowAggregate(self.app, None)
|
|
543
539
|
|
|
544
540
|
self.data = (
|
|
@@ -563,7 +559,7 @@ class TestAggregateShow(TestAggregate):
|
|
|
563
559
|
]
|
|
564
560
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
565
561
|
columns, data = self.cmd.take_action(parsed_args)
|
|
566
|
-
self.
|
|
562
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
567
563
|
parsed_args.aggregate, ignore_missing=False
|
|
568
564
|
)
|
|
569
565
|
|
|
@@ -575,7 +571,7 @@ class TestAggregateUnset(TestAggregate):
|
|
|
575
571
|
def setUp(self):
|
|
576
572
|
super().setUp()
|
|
577
573
|
|
|
578
|
-
self.
|
|
574
|
+
self.compute_client.find_aggregate.return_value = self.fake_ag
|
|
579
575
|
self.cmd = aggregate.UnsetAggregate(self.app, None)
|
|
580
576
|
|
|
581
577
|
def test_aggregate_unset(self):
|
|
@@ -591,7 +587,7 @@ class TestAggregateUnset(TestAggregate):
|
|
|
591
587
|
|
|
592
588
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
593
589
|
result = self.cmd.take_action(parsed_args)
|
|
594
|
-
self.
|
|
590
|
+
self.compute_client.set_aggregate_metadata.assert_called_once_with(
|
|
595
591
|
self.fake_ag.id, {'unset_key': None}
|
|
596
592
|
)
|
|
597
593
|
self.assertIsNone(result)
|
|
@@ -611,7 +607,7 @@ class TestAggregateUnset(TestAggregate):
|
|
|
611
607
|
|
|
612
608
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
613
609
|
result = self.cmd.take_action(parsed_args)
|
|
614
|
-
self.
|
|
610
|
+
self.compute_client.set_aggregate_metadata.assert_called_once_with(
|
|
615
611
|
self.fake_ag.id, {'unset_key1': None, 'unset_key2': None}
|
|
616
612
|
)
|
|
617
613
|
self.assertIsNone(result)
|
|
@@ -626,7 +622,7 @@ class TestAggregateUnset(TestAggregate):
|
|
|
626
622
|
]
|
|
627
623
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
628
624
|
result = self.cmd.take_action(parsed_args)
|
|
629
|
-
self.assertNotCalled(self.
|
|
625
|
+
self.assertNotCalled(self.compute_client.set_aggregate_metadata)
|
|
630
626
|
self.assertIsNone(result)
|
|
631
627
|
|
|
632
628
|
|
|
@@ -636,7 +632,7 @@ class TestAggregateCacheImage(TestAggregate):
|
|
|
636
632
|
def setUp(self):
|
|
637
633
|
super().setUp()
|
|
638
634
|
|
|
639
|
-
self.
|
|
635
|
+
self.compute_client.find_aggregate.return_value = self.fake_ag
|
|
640
636
|
self.find_image_mock = mock.Mock(side_effect=self.images)
|
|
641
637
|
self.app.client_manager.sdk_connection.image.find_image = (
|
|
642
638
|
self.find_image_mock
|
|
@@ -667,10 +663,10 @@ class TestAggregateCacheImage(TestAggregate):
|
|
|
667
663
|
]
|
|
668
664
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
669
665
|
self.cmd.take_action(parsed_args)
|
|
670
|
-
self.
|
|
666
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
671
667
|
parsed_args.aggregate, ignore_missing=False
|
|
672
668
|
)
|
|
673
|
-
self.
|
|
669
|
+
self.compute_client.aggregate_precache_images.assert_called_once_with(
|
|
674
670
|
self.fake_ag.id, [self.images[0].id]
|
|
675
671
|
)
|
|
676
672
|
|
|
@@ -688,9 +684,9 @@ class TestAggregateCacheImage(TestAggregate):
|
|
|
688
684
|
]
|
|
689
685
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
690
686
|
self.cmd.take_action(parsed_args)
|
|
691
|
-
self.
|
|
687
|
+
self.compute_client.find_aggregate.assert_called_once_with(
|
|
692
688
|
parsed_args.aggregate, ignore_missing=False
|
|
693
689
|
)
|
|
694
|
-
self.
|
|
690
|
+
self.compute_client.aggregate_precache_images.assert_called_once_with(
|
|
695
691
|
self.fake_ag.id, [self.images[0].id, self.images[1].id]
|
|
696
692
|
)
|
|
@@ -28,7 +28,7 @@ class TestConsoleLog(compute_fakes.TestComputev2):
|
|
|
28
28
|
super().setUp()
|
|
29
29
|
|
|
30
30
|
self._server = sdk_fakes.generate_fake_resource(_server.Server)
|
|
31
|
-
self.
|
|
31
|
+
self.compute_client.find_server.return_value = self._server
|
|
32
32
|
|
|
33
33
|
self.cmd = console.ShowConsoleLog(self.app, None)
|
|
34
34
|
|
|
@@ -49,13 +49,13 @@ class TestConsoleLog(compute_fakes.TestComputev2):
|
|
|
49
49
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
50
50
|
|
|
51
51
|
output = {'output': '1st line\n2nd line\n'}
|
|
52
|
-
self.
|
|
52
|
+
self.compute_client.get_server_console_output.return_value = output
|
|
53
53
|
self.cmd.take_action(parsed_args)
|
|
54
54
|
|
|
55
|
-
self.
|
|
55
|
+
self.compute_client.find_server.assert_called_with(
|
|
56
56
|
name_or_id='fake_server', ignore_missing=False
|
|
57
57
|
)
|
|
58
|
-
self.
|
|
58
|
+
self.compute_client.get_server_console_output.assert_called_with(
|
|
59
59
|
self._server.id, length=None
|
|
60
60
|
)
|
|
61
61
|
stdout = self.app.stdout.content
|
|
@@ -67,13 +67,13 @@ class TestConsoleLog(compute_fakes.TestComputev2):
|
|
|
67
67
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
68
68
|
|
|
69
69
|
output = {'output': '1st line\n2nd line'}
|
|
70
|
-
self.
|
|
70
|
+
self.compute_client.get_server_console_output.return_value = output
|
|
71
71
|
self.cmd.take_action(parsed_args)
|
|
72
72
|
|
|
73
|
-
self.
|
|
73
|
+
self.compute_client.find_server.assert_called_with(
|
|
74
74
|
name_or_id='fake_server', ignore_missing=False
|
|
75
75
|
)
|
|
76
|
-
self.
|
|
76
|
+
self.compute_client.get_server_console_output.assert_called_with(
|
|
77
77
|
self._server.id, length=15
|
|
78
78
|
)
|
|
79
79
|
|
|
@@ -83,14 +83,14 @@ class TestConsoleUrlShow(compute_fakes.TestComputev2):
|
|
|
83
83
|
super().setUp()
|
|
84
84
|
|
|
85
85
|
self._server = sdk_fakes.generate_fake_resource(_server.Server)
|
|
86
|
-
self.
|
|
86
|
+
self.compute_client.find_server.return_value = self._server
|
|
87
87
|
|
|
88
88
|
fake_console_data = {
|
|
89
89
|
'url': 'http://localhost',
|
|
90
90
|
'protocol': 'fake_protocol',
|
|
91
91
|
'type': 'fake_type',
|
|
92
92
|
}
|
|
93
|
-
self.
|
|
93
|
+
self.compute_client.create_console = mock.Mock(
|
|
94
94
|
return_value=fake_console_data
|
|
95
95
|
)
|
|
96
96
|
|
|
@@ -117,7 +117,7 @@ class TestConsoleUrlShow(compute_fakes.TestComputev2):
|
|
|
117
117
|
]
|
|
118
118
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
119
119
|
columns, data = self.cmd.take_action(parsed_args)
|
|
120
|
-
self.
|
|
120
|
+
self.compute_client.create_console.assert_called_once_with(
|
|
121
121
|
self._server.id, console_type='novnc'
|
|
122
122
|
)
|
|
123
123
|
self.assertEqual(self.columns, columns)
|
|
@@ -134,7 +134,7 @@ class TestConsoleUrlShow(compute_fakes.TestComputev2):
|
|
|
134
134
|
]
|
|
135
135
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
136
136
|
columns, data = self.cmd.take_action(parsed_args)
|
|
137
|
-
self.
|
|
137
|
+
self.compute_client.create_console.assert_called_once_with(
|
|
138
138
|
self._server.id, console_type='novnc'
|
|
139
139
|
)
|
|
140
140
|
self.assertEqual(self.columns, columns)
|
|
@@ -151,13 +151,13 @@ class TestConsoleUrlShow(compute_fakes.TestComputev2):
|
|
|
151
151
|
]
|
|
152
152
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
153
153
|
columns, data = self.cmd.take_action(parsed_args)
|
|
154
|
-
self.
|
|
154
|
+
self.compute_client.create_console.assert_called_once_with(
|
|
155
155
|
self._server.id, console_type='xvpvnc'
|
|
156
156
|
)
|
|
157
157
|
self.assertEqual(self.columns, columns)
|
|
158
158
|
self.assertEqual(self.data, data)
|
|
159
159
|
|
|
160
|
-
def
|
|
160
|
+
def test_console_url_show_with_spice_html5(self):
|
|
161
161
|
arglist = [
|
|
162
162
|
'--spice',
|
|
163
163
|
'foo_vm',
|
|
@@ -168,12 +168,29 @@ class TestConsoleUrlShow(compute_fakes.TestComputev2):
|
|
|
168
168
|
]
|
|
169
169
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
170
170
|
columns, data = self.cmd.take_action(parsed_args)
|
|
171
|
-
self.
|
|
171
|
+
self.compute_client.create_console.assert_called_once_with(
|
|
172
172
|
self._server.id, console_type='spice-html5'
|
|
173
173
|
)
|
|
174
174
|
self.assertEqual(self.columns, columns)
|
|
175
175
|
self.assertEqual(self.data, data)
|
|
176
176
|
|
|
177
|
+
def test_console_url_show_with_spice_direct(self):
|
|
178
|
+
arglist = [
|
|
179
|
+
'--spice-direct',
|
|
180
|
+
'foo_vm',
|
|
181
|
+
]
|
|
182
|
+
verifylist = [
|
|
183
|
+
('url_type', 'spice-direct'),
|
|
184
|
+
('server', 'foo_vm'),
|
|
185
|
+
]
|
|
186
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
187
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
188
|
+
self.compute_client.create_console.assert_called_once_with(
|
|
189
|
+
self._server.id, console_type='spice-direct'
|
|
190
|
+
)
|
|
191
|
+
self.assertEqual(self.columns, columns)
|
|
192
|
+
self.assertEqual(self.data, data)
|
|
193
|
+
|
|
177
194
|
def test_console_url_show_with_rdp(self):
|
|
178
195
|
arglist = [
|
|
179
196
|
'--rdp',
|
|
@@ -185,7 +202,7 @@ class TestConsoleUrlShow(compute_fakes.TestComputev2):
|
|
|
185
202
|
]
|
|
186
203
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
187
204
|
columns, data = self.cmd.take_action(parsed_args)
|
|
188
|
-
self.
|
|
205
|
+
self.compute_client.create_console.assert_called_once_with(
|
|
189
206
|
self._server.id, console_type='rdp-html5'
|
|
190
207
|
)
|
|
191
208
|
self.assertEqual(self.columns, columns)
|
|
@@ -202,7 +219,7 @@ class TestConsoleUrlShow(compute_fakes.TestComputev2):
|
|
|
202
219
|
]
|
|
203
220
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
204
221
|
columns, data = self.cmd.take_action(parsed_args)
|
|
205
|
-
self.
|
|
222
|
+
self.compute_client.create_console.assert_called_once_with(
|
|
206
223
|
self._server.id, console_type='serial'
|
|
207
224
|
)
|
|
208
225
|
self.assertEqual(self.columns, columns)
|
|
@@ -219,7 +236,7 @@ class TestConsoleUrlShow(compute_fakes.TestComputev2):
|
|
|
219
236
|
]
|
|
220
237
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
221
238
|
columns, data = self.cmd.take_action(parsed_args)
|
|
222
|
-
self.
|
|
239
|
+
self.compute_client.create_console.assert_called_once_with(
|
|
223
240
|
self._server.id, console_type='webmks'
|
|
224
241
|
)
|
|
225
242
|
self.assertEqual(self.columns, columns)
|