python-openstackclient 6.3.0__py3-none-any.whl → 6.5.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 +4 -4
- openstackclient/common/pagination.py +82 -0
- openstackclient/compute/v2/flavor.py +2 -16
- openstackclient/compute/v2/hypervisor.py +2 -21
- openstackclient/compute/v2/keypair.py +2 -9
- openstackclient/compute/v2/server.py +220 -131
- openstackclient/compute/v2/server_event.py +30 -19
- openstackclient/compute/v2/server_group.py +2 -23
- openstackclient/compute/v2/server_migration.py +2 -22
- openstackclient/compute/v2/usage.py +4 -6
- openstackclient/identity/v3/mapping.py +25 -3
- openstackclient/identity/v3/policy.py +3 -1
- openstackclient/image/v2/cache.py +218 -0
- openstackclient/image/v2/image.py +40 -17
- openstackclient/image/v2/metadef_namespaces.py +25 -21
- openstackclient/image/v2/metadef_objects.py +189 -0
- openstackclient/image/v2/metadef_properties.py +284 -0
- openstackclient/network/utils.py +100 -0
- openstackclient/network/v2/default_security_group_rule.py +418 -0
- openstackclient/network/v2/local_ip_association.py +1 -1
- openstackclient/network/v2/ndp_proxy.py +7 -3
- openstackclient/network/v2/network.py +2 -2
- openstackclient/network/v2/port.py +65 -19
- openstackclient/network/v2/security_group_rule.py +18 -111
- openstackclient/network/v2/subnet.py +1 -0
- openstackclient/object/v1/container.py +2 -12
- openstackclient/object/v1/object.py +2 -11
- openstackclient/tests/functional/base.py +13 -6
- openstackclient/tests/functional/identity/v3/test_role.py +11 -3
- openstackclient/tests/functional/network/v2/common.py +7 -1
- openstackclient/tests/functional/network/v2/test_address_group.py +2 -4
- openstackclient/tests/functional/network/v2/test_address_scope.py +0 -6
- openstackclient/tests/functional/network/v2/test_default_security_group_rule.py +67 -0
- openstackclient/tests/functional/network/v2/test_floating_ip.py +3 -6
- openstackclient/tests/functional/network/v2/test_ip_availability.py +3 -8
- openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py +3 -4
- openstackclient/tests/functional/network/v2/test_local_ip.py +2 -4
- openstackclient/tests/functional/network/v2/test_network.py +18 -17
- openstackclient/tests/functional/network/v2/test_network_agent.py +24 -21
- openstackclient/tests/functional/network/v2/test_network_flavor.py +0 -6
- openstackclient/tests/functional/network/v2/test_network_flavor_profile.py +0 -6
- openstackclient/tests/functional/network/v2/test_network_meter.py +6 -6
- openstackclient/tests/functional/network/v2/test_network_meter_rule.py +7 -8
- openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py +1 -3
- openstackclient/tests/functional/network/v2/test_network_qos_policy.py +4 -4
- openstackclient/tests/functional/network/v2/test_network_qos_rule.py +16 -20
- openstackclient/tests/functional/network/v2/test_network_qos_rule_type.py +4 -4
- openstackclient/tests/functional/network/v2/test_network_rbac.py +1 -4
- openstackclient/tests/functional/network/v2/test_network_segment.py +7 -12
- openstackclient/tests/functional/network/v2/test_network_segment_range.py +3 -4
- openstackclient/tests/functional/network/v2/test_network_service_provider.py +2 -4
- openstackclient/tests/functional/network/v2/test_network_trunk.py +3 -3
- openstackclient/tests/functional/network/v2/test_port.py +2 -8
- openstackclient/tests/functional/network/v2/test_router.py +0 -6
- openstackclient/tests/functional/network/v2/test_security_group.py +1 -4
- openstackclient/tests/functional/network/v2/test_security_group_rule.py +1 -4
- openstackclient/tests/functional/network/v2/test_subnet.py +4 -22
- openstackclient/tests/functional/network/v2/test_subnet_pool.py +0 -6
- openstackclient/tests/unit/common/test_availability_zone.py +28 -30
- openstackclient/tests/unit/common/test_extension.py +1 -4
- openstackclient/tests/unit/common/test_limits.py +2 -4
- openstackclient/tests/unit/common/test_project_cleanup.py +3 -10
- openstackclient/tests/unit/common/test_quota.py +18 -24
- openstackclient/tests/unit/compute/v2/fakes.py +24 -11
- openstackclient/tests/unit/compute/v2/test_agent.py +1 -1
- openstackclient/tests/unit/compute/v2/test_aggregate.py +62 -72
- openstackclient/tests/unit/compute/v2/test_console.py +18 -30
- openstackclient/tests/unit/compute/v2/test_flavor.py +85 -89
- openstackclient/tests/unit/compute/v2/test_host.py +12 -19
- openstackclient/tests/unit/compute/v2/test_hypervisor.py +23 -25
- openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +2 -6
- openstackclient/tests/unit/compute/v2/test_keypair.py +25 -39
- openstackclient/tests/unit/compute/v2/test_server.py +316 -365
- openstackclient/tests/unit/compute/v2/test_server_backup.py +5 -17
- openstackclient/tests/unit/compute/v2/test_server_event.py +23 -25
- openstackclient/tests/unit/compute/v2/test_server_group.py +41 -33
- openstackclient/tests/unit/compute/v2/test_server_image.py +6 -18
- openstackclient/tests/unit/compute/v2/test_server_migration.py +45 -45
- openstackclient/tests/unit/compute/v2/test_server_volume.py +15 -31
- openstackclient/tests/unit/compute/v2/test_service.py +51 -56
- openstackclient/tests/unit/compute/v2/test_usage.py +10 -13
- openstackclient/tests/unit/fakes.py +4 -0
- openstackclient/tests/unit/identity/v3/test_mappings.py +9 -4
- openstackclient/tests/unit/identity/v3/test_trust.py +0 -2
- openstackclient/tests/unit/image/v1/fakes.py +2 -1
- openstackclient/tests/unit/image/v1/test_image.py +1 -1
- openstackclient/tests/unit/image/v2/fakes.py +82 -0
- openstackclient/tests/unit/image/v2/test_cache.py +214 -0
- openstackclient/tests/unit/image/v2/test_image.py +62 -4
- openstackclient/tests/unit/image/v2/test_metadef_namespaces.py +5 -19
- openstackclient/tests/unit/image/v2/test_metadef_objects.py +162 -0
- openstackclient/tests/unit/image/v2/test_metadef_properties.py +227 -0
- openstackclient/tests/unit/integ/cli/test_shell.py +0 -2
- openstackclient/tests/unit/network/test_common.py +3 -3
- openstackclient/tests/unit/network/v2/fakes.py +1 -0
- openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +1133 -0
- openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +5 -13
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +1 -9
- openstackclient/tests/unit/network/v2/test_network.py +33 -0
- openstackclient/tests/unit/network/v2/test_network_compute.py +5 -11
- openstackclient/tests/unit/network/v2/test_network_trunk.py +6 -8
- openstackclient/tests/unit/network/v2/test_port.py +83 -38
- openstackclient/tests/unit/network/v2/test_security_group_compute.py +7 -15
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +19 -27
- openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +3 -6
- openstackclient/tests/unit/network/v2/test_subnet.py +92 -0
- openstackclient/tests/unit/network/v2/test_subnet_pool.py +11 -13
- openstackclient/tests/unit/test_shell.py +1 -7
- openstackclient/tests/unit/utils.py +10 -4
- openstackclient/tests/unit/volume/v1/fakes.py +7 -1
- openstackclient/tests/unit/volume/v1/test_qos_specs.py +2 -2
- openstackclient/tests/unit/volume/v1/test_service.py +1 -1
- openstackclient/tests/unit/volume/v1/test_transfer_request.py +2 -2
- openstackclient/tests/unit/volume/v1/test_type.py +2 -4
- openstackclient/tests/unit/volume/v1/test_volume.py +5 -7
- openstackclient/tests/unit/volume/v1/test_volume_backup.py +4 -4
- openstackclient/tests/unit/volume/v2/fakes.py +32 -12
- openstackclient/tests/unit/volume/v2/test_backup_record.py +1 -1
- openstackclient/tests/unit/volume/v2/test_consistency_group.py +4 -6
- openstackclient/tests/unit/volume/v2/test_consistency_group_snapshot.py +2 -4
- openstackclient/tests/unit/volume/v2/test_qos_specs.py +2 -2
- openstackclient/tests/unit/volume/v2/test_service.py +1 -1
- openstackclient/tests/unit/volume/v2/test_volume.py +78 -16
- openstackclient/tests/unit/volume/v2/test_volume_backend.py +10 -22
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +76 -89
- openstackclient/tests/unit/volume/v2/test_volume_host.py +1 -1
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +5 -7
- openstackclient/tests/unit/volume/v2/test_volume_transfer_request.py +4 -8
- openstackclient/tests/unit/volume/v2/test_volume_type.py +164 -24
- openstackclient/tests/unit/volume/v3/fakes.py +91 -15
- openstackclient/tests/unit/volume/v3/test_block_storage_cleanup.py +3 -7
- openstackclient/tests/unit/volume/v3/test_block_storage_cluster.py +11 -31
- openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +6 -16
- openstackclient/tests/unit/volume/v3/test_block_storage_manage.py +219 -157
- openstackclient/tests/unit/volume/v3/test_block_storage_resource_filter.py +32 -23
- openstackclient/tests/unit/volume/v3/test_volume.py +50 -48
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +17 -47
- openstackclient/tests/unit/volume/v3/test_volume_group.py +23 -65
- openstackclient/tests/unit/volume/v3/test_volume_group_snapshot.py +88 -77
- openstackclient/tests/unit/volume/v3/test_volume_group_type.py +14 -42
- openstackclient/tests/unit/volume/v3/test_volume_message.py +10 -28
- openstackclient/volume/v1/volume.py +2 -14
- openstackclient/volume/v2/volume.py +30 -15
- openstackclient/volume/v2/volume_backend.py +10 -18
- openstackclient/volume/v2/volume_backup.py +18 -15
- openstackclient/volume/v2/volume_snapshot.py +2 -12
- openstackclient/volume/v2/volume_type.py +211 -14
- openstackclient/volume/v3/block_storage_manage.py +72 -11
- openstackclient/volume/v3/block_storage_resource_filter.py +33 -11
- openstackclient/volume/v3/volume_attachment.py +2 -14
- openstackclient/volume/v3/volume_group_snapshot.py +27 -27
- openstackclient/volume/v3/volume_message.py +2 -13
- {python_openstackclient-6.3.0.dist-info → python_openstackclient-6.5.0.dist-info}/AUTHORS +11 -0
- {python_openstackclient-6.3.0.dist-info → python_openstackclient-6.5.0.dist-info}/METADATA +6 -5
- {python_openstackclient-6.3.0.dist-info → python_openstackclient-6.5.0.dist-info}/RECORD +160 -151
- {python_openstackclient-6.3.0.dist-info → python_openstackclient-6.5.0.dist-info}/entry_points.txt +23 -5
- python_openstackclient-6.5.0.dist-info/pbr.json +1 -0
- openstackclient/tests/unit/common/test_parseractions.py +0 -233
- python_openstackclient-6.3.0.dist-info/pbr.json +0 -1
- {python_openstackclient-6.3.0.dist-info → python_openstackclient-6.5.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-6.3.0.dist-info → python_openstackclient-6.5.0.dist-info}/WHEEL +0 -0
- {python_openstackclient-6.3.0.dist-info → python_openstackclient-6.5.0.dist-info}/top_level.txt +0 -0
|
@@ -55,29 +55,15 @@ class TestAggregate(compute_fakes.TestComputev2):
|
|
|
55
55
|
fake_ag.uuid,
|
|
56
56
|
)
|
|
57
57
|
|
|
58
|
-
def setUp(self):
|
|
59
|
-
super(TestAggregate, self).setUp()
|
|
60
|
-
|
|
61
|
-
# Get a shortcut to the AggregateManager Mock
|
|
62
|
-
self.app.client_manager.sdk_connection = mock.Mock()
|
|
63
|
-
self.app.client_manager.sdk_connection.compute = mock.Mock()
|
|
64
|
-
self.sdk_client = self.app.client_manager.sdk_connection.compute
|
|
65
|
-
self.sdk_client.aggregates = mock.Mock()
|
|
66
|
-
self.sdk_client.find_aggregate = mock.Mock()
|
|
67
|
-
self.sdk_client.create_aggregate = mock.Mock()
|
|
68
|
-
self.sdk_client.update_aggregate = mock.Mock()
|
|
69
|
-
self.sdk_client.update_aggregate = mock.Mock()
|
|
70
|
-
self.sdk_client.set_aggregate_metadata = mock.Mock()
|
|
71
|
-
self.sdk_client.add_host_to_aggregate = mock.Mock()
|
|
72
|
-
self.sdk_client.remove_host_from_aggregate = mock.Mock()
|
|
73
|
-
|
|
74
58
|
|
|
75
59
|
class TestAggregateAddHost(TestAggregate):
|
|
76
60
|
def setUp(self):
|
|
77
61
|
super(TestAggregateAddHost, self).setUp()
|
|
78
62
|
|
|
79
|
-
self.
|
|
80
|
-
self.
|
|
63
|
+
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
64
|
+
self.compute_sdk_client.add_host_to_aggregate.return_value = (
|
|
65
|
+
self.fake_ag
|
|
66
|
+
)
|
|
81
67
|
self.cmd = aggregate.AddAggregateHost(self.app, None)
|
|
82
68
|
|
|
83
69
|
def test_aggregate_add_host(self):
|
|
@@ -91,10 +77,10 @@ class TestAggregateAddHost(TestAggregate):
|
|
|
91
77
|
]
|
|
92
78
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
93
79
|
columns, data = self.cmd.take_action(parsed_args)
|
|
94
|
-
self.
|
|
80
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
95
81
|
parsed_args.aggregate, ignore_missing=False
|
|
96
82
|
)
|
|
97
|
-
self.
|
|
83
|
+
self.compute_sdk_client.add_host_to_aggregate.assert_called_once_with(
|
|
98
84
|
self.fake_ag.id, parsed_args.host
|
|
99
85
|
)
|
|
100
86
|
self.assertEqual(self.columns, columns)
|
|
@@ -105,8 +91,10 @@ class TestAggregateCreate(TestAggregate):
|
|
|
105
91
|
def setUp(self):
|
|
106
92
|
super(TestAggregateCreate, self).setUp()
|
|
107
93
|
|
|
108
|
-
self.
|
|
109
|
-
self.
|
|
94
|
+
self.compute_sdk_client.create_aggregate.return_value = self.fake_ag
|
|
95
|
+
self.compute_sdk_client.set_aggregate_metadata.return_value = (
|
|
96
|
+
self.fake_ag
|
|
97
|
+
)
|
|
110
98
|
self.cmd = aggregate.CreateAggregate(self.app, None)
|
|
111
99
|
|
|
112
100
|
def test_aggregate_create(self):
|
|
@@ -118,7 +106,7 @@ class TestAggregateCreate(TestAggregate):
|
|
|
118
106
|
]
|
|
119
107
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
120
108
|
columns, data = self.cmd.take_action(parsed_args)
|
|
121
|
-
self.
|
|
109
|
+
self.compute_sdk_client.create_aggregate.assert_called_once_with(
|
|
122
110
|
name=parsed_args.name
|
|
123
111
|
)
|
|
124
112
|
self.assertEqual(self.columns, columns)
|
|
@@ -137,7 +125,7 @@ class TestAggregateCreate(TestAggregate):
|
|
|
137
125
|
|
|
138
126
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
139
127
|
columns, data = self.cmd.take_action(parsed_args)
|
|
140
|
-
self.
|
|
128
|
+
self.compute_sdk_client.create_aggregate.assert_called_once_with(
|
|
141
129
|
name=parsed_args.name, availability_zone=parsed_args.zone
|
|
142
130
|
)
|
|
143
131
|
self.assertEqual(self.columns, columns)
|
|
@@ -157,10 +145,10 @@ class TestAggregateCreate(TestAggregate):
|
|
|
157
145
|
]
|
|
158
146
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
159
147
|
columns, data = self.cmd.take_action(parsed_args)
|
|
160
|
-
self.
|
|
148
|
+
self.compute_sdk_client.create_aggregate.assert_called_once_with(
|
|
161
149
|
name=parsed_args.name
|
|
162
150
|
)
|
|
163
|
-
self.
|
|
151
|
+
self.compute_sdk_client.set_aggregate_metadata.assert_called_once_with(
|
|
164
152
|
self.fake_ag.id, parsed_args.properties
|
|
165
153
|
)
|
|
166
154
|
self.assertEqual(self.columns, columns)
|
|
@@ -173,7 +161,7 @@ class TestAggregateDelete(TestAggregate):
|
|
|
173
161
|
def setUp(self):
|
|
174
162
|
super(TestAggregateDelete, self).setUp()
|
|
175
163
|
|
|
176
|
-
self.
|
|
164
|
+
self.compute_sdk_client.find_aggregate = compute_fakes.get_aggregates(
|
|
177
165
|
self.fake_ags
|
|
178
166
|
)
|
|
179
167
|
self.cmd = aggregate.DeleteAggregate(self.app, None)
|
|
@@ -185,10 +173,10 @@ class TestAggregateDelete(TestAggregate):
|
|
|
185
173
|
]
|
|
186
174
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
187
175
|
self.cmd.take_action(parsed_args)
|
|
188
|
-
self.
|
|
176
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
189
177
|
self.fake_ags[0].id, ignore_missing=False
|
|
190
178
|
)
|
|
191
|
-
self.
|
|
179
|
+
self.compute_sdk_client.delete_aggregate.assert_called_once_with(
|
|
192
180
|
self.fake_ags[0].id, ignore_missing=False
|
|
193
181
|
)
|
|
194
182
|
|
|
@@ -206,8 +194,8 @@ class TestAggregateDelete(TestAggregate):
|
|
|
206
194
|
calls = []
|
|
207
195
|
for a in self.fake_ags:
|
|
208
196
|
calls.append(call(a.id, ignore_missing=False))
|
|
209
|
-
self.
|
|
210
|
-
self.
|
|
197
|
+
self.compute_sdk_client.find_aggregate.assert_has_calls(calls)
|
|
198
|
+
self.compute_sdk_client.delete_aggregate.assert_has_calls(calls)
|
|
211
199
|
|
|
212
200
|
def test_delete_multiple_agggregates_with_exception(self):
|
|
213
201
|
arglist = [
|
|
@@ -220,7 +208,7 @@ class TestAggregateDelete(TestAggregate):
|
|
|
220
208
|
|
|
221
209
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
222
210
|
|
|
223
|
-
self.
|
|
211
|
+
self.compute_sdk_client.find_aggregate.side_effect = [
|
|
224
212
|
self.fake_ags[0],
|
|
225
213
|
sdk_exceptions.NotFoundException,
|
|
226
214
|
]
|
|
@@ -233,8 +221,8 @@ class TestAggregateDelete(TestAggregate):
|
|
|
233
221
|
calls = []
|
|
234
222
|
for a in arglist:
|
|
235
223
|
calls.append(call(a, ignore_missing=False))
|
|
236
|
-
self.
|
|
237
|
-
self.
|
|
224
|
+
self.compute_sdk_client.find_aggregate.assert_has_calls(calls)
|
|
225
|
+
self.compute_sdk_client.delete_aggregate.assert_called_with(
|
|
238
226
|
self.fake_ags[0].id, ignore_missing=False
|
|
239
227
|
)
|
|
240
228
|
|
|
@@ -281,7 +269,7 @@ class TestAggregateList(TestAggregate):
|
|
|
281
269
|
def setUp(self):
|
|
282
270
|
super(TestAggregateList, self).setUp()
|
|
283
271
|
|
|
284
|
-
self.
|
|
272
|
+
self.compute_sdk_client.aggregates.return_value = [self.fake_ag]
|
|
285
273
|
self.cmd = aggregate.ListAggregate(self.app, None)
|
|
286
274
|
|
|
287
275
|
def test_aggregate_list(self):
|
|
@@ -309,8 +297,10 @@ class TestAggregateRemoveHost(TestAggregate):
|
|
|
309
297
|
def setUp(self):
|
|
310
298
|
super(TestAggregateRemoveHost, self).setUp()
|
|
311
299
|
|
|
312
|
-
self.
|
|
313
|
-
self.
|
|
300
|
+
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
301
|
+
self.compute_sdk_client.remove_host_from_aggregate.return_value = (
|
|
302
|
+
self.fake_ag
|
|
303
|
+
)
|
|
314
304
|
self.cmd = aggregate.RemoveAggregateHost(self.app, None)
|
|
315
305
|
|
|
316
306
|
def test_aggregate_remove_host(self):
|
|
@@ -324,10 +314,10 @@ class TestAggregateRemoveHost(TestAggregate):
|
|
|
324
314
|
]
|
|
325
315
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
326
316
|
columns, data = self.cmd.take_action(parsed_args)
|
|
327
|
-
self.
|
|
317
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
328
318
|
parsed_args.aggregate, ignore_missing=False
|
|
329
319
|
)
|
|
330
|
-
self.
|
|
320
|
+
self.compute_sdk_client.remove_host_from_aggregate.assert_called_once_with(
|
|
331
321
|
self.fake_ag.id, parsed_args.host
|
|
332
322
|
)
|
|
333
323
|
self.assertEqual(self.columns, columns)
|
|
@@ -338,7 +328,7 @@ class TestAggregateSet(TestAggregate):
|
|
|
338
328
|
def setUp(self):
|
|
339
329
|
super(TestAggregateSet, self).setUp()
|
|
340
330
|
|
|
341
|
-
self.
|
|
331
|
+
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
342
332
|
self.cmd = aggregate.SetAggregate(self.app, None)
|
|
343
333
|
|
|
344
334
|
def test_aggregate_set_no_option(self):
|
|
@@ -351,11 +341,11 @@ class TestAggregateSet(TestAggregate):
|
|
|
351
341
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
352
342
|
result = self.cmd.take_action(parsed_args)
|
|
353
343
|
|
|
354
|
-
self.
|
|
344
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
355
345
|
parsed_args.aggregate, ignore_missing=False
|
|
356
346
|
)
|
|
357
|
-
self.assertNotCalled(self.
|
|
358
|
-
self.assertNotCalled(self.
|
|
347
|
+
self.assertNotCalled(self.compute_sdk_client.update_aggregate)
|
|
348
|
+
self.assertNotCalled(self.compute_sdk_client.set_aggregate_metadata)
|
|
359
349
|
self.assertIsNone(result)
|
|
360
350
|
|
|
361
351
|
def test_aggregate_set_with_name(self):
|
|
@@ -371,13 +361,13 @@ class TestAggregateSet(TestAggregate):
|
|
|
371
361
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
372
362
|
result = self.cmd.take_action(parsed_args)
|
|
373
363
|
|
|
374
|
-
self.
|
|
364
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
375
365
|
parsed_args.aggregate, ignore_missing=False
|
|
376
366
|
)
|
|
377
|
-
self.
|
|
367
|
+
self.compute_sdk_client.update_aggregate.assert_called_once_with(
|
|
378
368
|
self.fake_ag.id, name=parsed_args.name
|
|
379
369
|
)
|
|
380
|
-
self.assertNotCalled(self.
|
|
370
|
+
self.assertNotCalled(self.compute_sdk_client.set_aggregate_metadata)
|
|
381
371
|
self.assertIsNone(result)
|
|
382
372
|
|
|
383
373
|
def test_aggregate_set_with_zone(self):
|
|
@@ -393,13 +383,13 @@ class TestAggregateSet(TestAggregate):
|
|
|
393
383
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
394
384
|
result = self.cmd.take_action(parsed_args)
|
|
395
385
|
|
|
396
|
-
self.
|
|
386
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
397
387
|
parsed_args.aggregate, ignore_missing=False
|
|
398
388
|
)
|
|
399
|
-
self.
|
|
389
|
+
self.compute_sdk_client.update_aggregate.assert_called_once_with(
|
|
400
390
|
self.fake_ag.id, availability_zone=parsed_args.zone
|
|
401
391
|
)
|
|
402
|
-
self.assertNotCalled(self.
|
|
392
|
+
self.assertNotCalled(self.compute_sdk_client.set_aggregate_metadata)
|
|
403
393
|
self.assertIsNone(result)
|
|
404
394
|
|
|
405
395
|
def test_aggregate_set_with_property(self):
|
|
@@ -417,11 +407,11 @@ class TestAggregateSet(TestAggregate):
|
|
|
417
407
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
418
408
|
result = self.cmd.take_action(parsed_args)
|
|
419
409
|
|
|
420
|
-
self.
|
|
410
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
421
411
|
parsed_args.aggregate, ignore_missing=False
|
|
422
412
|
)
|
|
423
|
-
self.assertNotCalled(self.
|
|
424
|
-
self.
|
|
413
|
+
self.assertNotCalled(self.compute_sdk_client.update_aggregate)
|
|
414
|
+
self.compute_sdk_client.set_aggregate_metadata.assert_called_once_with(
|
|
425
415
|
self.fake_ag.id, parsed_args.properties
|
|
426
416
|
)
|
|
427
417
|
self.assertIsNone(result)
|
|
@@ -440,11 +430,11 @@ class TestAggregateSet(TestAggregate):
|
|
|
440
430
|
]
|
|
441
431
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
442
432
|
result = self.cmd.take_action(parsed_args)
|
|
443
|
-
self.
|
|
433
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
444
434
|
parsed_args.aggregate, ignore_missing=False
|
|
445
435
|
)
|
|
446
|
-
self.assertNotCalled(self.
|
|
447
|
-
self.
|
|
436
|
+
self.assertNotCalled(self.compute_sdk_client.update_aggregate)
|
|
437
|
+
self.compute_sdk_client.set_aggregate_metadata.assert_called_once_with(
|
|
448
438
|
self.fake_ag.id, {'key1': None, 'key2': 'value2'}
|
|
449
439
|
)
|
|
450
440
|
self.assertIsNone(result)
|
|
@@ -460,11 +450,11 @@ class TestAggregateSet(TestAggregate):
|
|
|
460
450
|
]
|
|
461
451
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
462
452
|
result = self.cmd.take_action(parsed_args)
|
|
463
|
-
self.
|
|
453
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
464
454
|
parsed_args.aggregate, ignore_missing=False
|
|
465
455
|
)
|
|
466
|
-
self.assertNotCalled(self.
|
|
467
|
-
self.
|
|
456
|
+
self.assertNotCalled(self.compute_sdk_client.update_aggregate)
|
|
457
|
+
self.compute_sdk_client.set_aggregate_metadata.assert_called_once_with(
|
|
468
458
|
self.fake_ag.id, {'key1': None}
|
|
469
459
|
)
|
|
470
460
|
self.assertIsNone(result)
|
|
@@ -483,13 +473,13 @@ class TestAggregateSet(TestAggregate):
|
|
|
483
473
|
]
|
|
484
474
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
485
475
|
result = self.cmd.take_action(parsed_args)
|
|
486
|
-
self.
|
|
476
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
487
477
|
parsed_args.aggregate, ignore_missing=False
|
|
488
478
|
)
|
|
489
|
-
self.
|
|
479
|
+
self.compute_sdk_client.update_aggregate.assert_called_once_with(
|
|
490
480
|
self.fake_ag.id, availability_zone=parsed_args.zone
|
|
491
481
|
)
|
|
492
|
-
self.
|
|
482
|
+
self.compute_sdk_client.set_aggregate_metadata.assert_called_once_with(
|
|
493
483
|
self.fake_ag.id, {'key1': None}
|
|
494
484
|
)
|
|
495
485
|
self.assertIsNone(result)
|
|
@@ -525,7 +515,7 @@ class TestAggregateShow(TestAggregate):
|
|
|
525
515
|
def setUp(self):
|
|
526
516
|
super(TestAggregateShow, self).setUp()
|
|
527
517
|
|
|
528
|
-
self.
|
|
518
|
+
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
529
519
|
self.cmd = aggregate.ShowAggregate(self.app, None)
|
|
530
520
|
|
|
531
521
|
def test_aggregate_show(self):
|
|
@@ -537,7 +527,7 @@ class TestAggregateShow(TestAggregate):
|
|
|
537
527
|
]
|
|
538
528
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
539
529
|
columns, data = self.cmd.take_action(parsed_args)
|
|
540
|
-
self.
|
|
530
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
541
531
|
parsed_args.aggregate, ignore_missing=False
|
|
542
532
|
)
|
|
543
533
|
|
|
@@ -549,7 +539,7 @@ class TestAggregateUnset(TestAggregate):
|
|
|
549
539
|
def setUp(self):
|
|
550
540
|
super(TestAggregateUnset, self).setUp()
|
|
551
541
|
|
|
552
|
-
self.
|
|
542
|
+
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
553
543
|
self.cmd = aggregate.UnsetAggregate(self.app, None)
|
|
554
544
|
|
|
555
545
|
def test_aggregate_unset(self):
|
|
@@ -565,7 +555,7 @@ class TestAggregateUnset(TestAggregate):
|
|
|
565
555
|
|
|
566
556
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
567
557
|
result = self.cmd.take_action(parsed_args)
|
|
568
|
-
self.
|
|
558
|
+
self.compute_sdk_client.set_aggregate_metadata.assert_called_once_with(
|
|
569
559
|
self.fake_ag.id, {'unset_key': None}
|
|
570
560
|
)
|
|
571
561
|
self.assertIsNone(result)
|
|
@@ -585,7 +575,7 @@ class TestAggregateUnset(TestAggregate):
|
|
|
585
575
|
|
|
586
576
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
587
577
|
result = self.cmd.take_action(parsed_args)
|
|
588
|
-
self.
|
|
578
|
+
self.compute_sdk_client.set_aggregate_metadata.assert_called_once_with(
|
|
589
579
|
self.fake_ag.id, {'unset_key1': None, 'unset_key2': None}
|
|
590
580
|
)
|
|
591
581
|
self.assertIsNone(result)
|
|
@@ -600,7 +590,7 @@ class TestAggregateUnset(TestAggregate):
|
|
|
600
590
|
]
|
|
601
591
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
602
592
|
result = self.cmd.take_action(parsed_args)
|
|
603
|
-
self.assertNotCalled(self.
|
|
593
|
+
self.assertNotCalled(self.compute_sdk_client.set_aggregate_metadata)
|
|
604
594
|
self.assertIsNone(result)
|
|
605
595
|
|
|
606
596
|
|
|
@@ -610,7 +600,7 @@ class TestAggregateCacheImage(TestAggregate):
|
|
|
610
600
|
def setUp(self):
|
|
611
601
|
super(TestAggregateCacheImage, self).setUp()
|
|
612
602
|
|
|
613
|
-
self.
|
|
603
|
+
self.compute_sdk_client.find_aggregate.return_value = self.fake_ag
|
|
614
604
|
self.find_image_mock = mock.Mock(side_effect=self.images)
|
|
615
605
|
self.app.client_manager.sdk_connection.image.find_image = (
|
|
616
606
|
self.find_image_mock
|
|
@@ -639,10 +629,10 @@ class TestAggregateCacheImage(TestAggregate):
|
|
|
639
629
|
]
|
|
640
630
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
641
631
|
self.cmd.take_action(parsed_args)
|
|
642
|
-
self.
|
|
632
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
643
633
|
parsed_args.aggregate, ignore_missing=False
|
|
644
634
|
)
|
|
645
|
-
self.
|
|
635
|
+
self.compute_sdk_client.aggregate_precache_images.assert_called_once_with(
|
|
646
636
|
self.fake_ag.id, [self.images[0].id]
|
|
647
637
|
)
|
|
648
638
|
|
|
@@ -659,9 +649,9 @@ class TestAggregateCacheImage(TestAggregate):
|
|
|
659
649
|
]
|
|
660
650
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
661
651
|
self.cmd.take_action(parsed_args)
|
|
662
|
-
self.
|
|
652
|
+
self.compute_sdk_client.find_aggregate.assert_called_once_with(
|
|
663
653
|
parsed_args.aggregate, ignore_missing=False
|
|
664
654
|
)
|
|
665
|
-
self.
|
|
655
|
+
self.compute_sdk_client.aggregate_precache_images.assert_called_once_with(
|
|
666
656
|
self.fake_ag.id, [self.images[0].id, self.images[1].id]
|
|
667
657
|
)
|
|
@@ -20,25 +20,13 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
|
|
|
20
20
|
from openstackclient.tests.unit import utils
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
class
|
|
24
|
-
def setUp(self):
|
|
25
|
-
super(TestConsole, self).setUp()
|
|
26
|
-
|
|
27
|
-
# SDK mock
|
|
28
|
-
self.app.client_manager.sdk_connection = mock.Mock()
|
|
29
|
-
self.app.client_manager.sdk_connection.compute = mock.Mock()
|
|
30
|
-
self.sdk_client = self.app.client_manager.sdk_connection.compute
|
|
31
|
-
self.sdk_client.find_server = mock.Mock()
|
|
32
|
-
self.sdk_client.get_server_console_output = mock.Mock()
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class TestConsoleLog(TestConsole):
|
|
23
|
+
class TestConsoleLog(compute_fakes.TestComputev2):
|
|
36
24
|
_server = compute_fakes.create_one_server()
|
|
37
25
|
|
|
38
26
|
def setUp(self):
|
|
39
27
|
super(TestConsoleLog, self).setUp()
|
|
40
28
|
|
|
41
|
-
self.
|
|
29
|
+
self.compute_sdk_client.find_server.return_value = self._server
|
|
42
30
|
|
|
43
31
|
self.cmd = console.ShowConsoleLog(self.app, None)
|
|
44
32
|
|
|
@@ -59,13 +47,13 @@ class TestConsoleLog(TestConsole):
|
|
|
59
47
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
60
48
|
|
|
61
49
|
output = {'output': '1st line\n2nd line\n'}
|
|
62
|
-
self.
|
|
50
|
+
self.compute_sdk_client.get_server_console_output.return_value = output
|
|
63
51
|
self.cmd.take_action(parsed_args)
|
|
64
52
|
|
|
65
|
-
self.
|
|
53
|
+
self.compute_sdk_client.find_server.assert_called_with(
|
|
66
54
|
name_or_id='fake_server', ignore_missing=False
|
|
67
55
|
)
|
|
68
|
-
self.
|
|
56
|
+
self.compute_sdk_client.get_server_console_output.assert_called_with(
|
|
69
57
|
self._server.id, length=None
|
|
70
58
|
)
|
|
71
59
|
stdout = self.app.stdout.content
|
|
@@ -77,29 +65,29 @@ class TestConsoleLog(TestConsole):
|
|
|
77
65
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
78
66
|
|
|
79
67
|
output = {'output': '1st line\n2nd line'}
|
|
80
|
-
self.
|
|
68
|
+
self.compute_sdk_client.get_server_console_output.return_value = output
|
|
81
69
|
self.cmd.take_action(parsed_args)
|
|
82
70
|
|
|
83
|
-
self.
|
|
71
|
+
self.compute_sdk_client.find_server.assert_called_with(
|
|
84
72
|
name_or_id='fake_server', ignore_missing=False
|
|
85
73
|
)
|
|
86
|
-
self.
|
|
74
|
+
self.compute_sdk_client.get_server_console_output.assert_called_with(
|
|
87
75
|
self._server.id, length=15
|
|
88
76
|
)
|
|
89
77
|
|
|
90
78
|
|
|
91
|
-
class TestConsoleUrlShow(
|
|
79
|
+
class TestConsoleUrlShow(compute_fakes.TestComputev2):
|
|
92
80
|
_server = compute_fakes.create_one_server()
|
|
93
81
|
|
|
94
82
|
def setUp(self):
|
|
95
83
|
super(TestConsoleUrlShow, self).setUp()
|
|
96
|
-
self.
|
|
84
|
+
self.compute_sdk_client.find_server.return_value = self._server
|
|
97
85
|
fake_console_data = {
|
|
98
86
|
'url': 'http://localhost',
|
|
99
87
|
'protocol': 'fake_protocol',
|
|
100
88
|
'type': 'fake_type',
|
|
101
89
|
}
|
|
102
|
-
self.
|
|
90
|
+
self.compute_sdk_client.create_console = mock.Mock(
|
|
103
91
|
return_value=fake_console_data
|
|
104
92
|
)
|
|
105
93
|
|
|
@@ -126,7 +114,7 @@ class TestConsoleUrlShow(TestConsole):
|
|
|
126
114
|
]
|
|
127
115
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
128
116
|
columns, data = self.cmd.take_action(parsed_args)
|
|
129
|
-
self.
|
|
117
|
+
self.compute_sdk_client.create_console.assert_called_once_with(
|
|
130
118
|
self._server.id, console_type='novnc'
|
|
131
119
|
)
|
|
132
120
|
self.assertEqual(self.columns, columns)
|
|
@@ -143,7 +131,7 @@ class TestConsoleUrlShow(TestConsole):
|
|
|
143
131
|
]
|
|
144
132
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
145
133
|
columns, data = self.cmd.take_action(parsed_args)
|
|
146
|
-
self.
|
|
134
|
+
self.compute_sdk_client.create_console.assert_called_once_with(
|
|
147
135
|
self._server.id, console_type='novnc'
|
|
148
136
|
)
|
|
149
137
|
self.assertEqual(self.columns, columns)
|
|
@@ -160,7 +148,7 @@ class TestConsoleUrlShow(TestConsole):
|
|
|
160
148
|
]
|
|
161
149
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
162
150
|
columns, data = self.cmd.take_action(parsed_args)
|
|
163
|
-
self.
|
|
151
|
+
self.compute_sdk_client.create_console.assert_called_once_with(
|
|
164
152
|
self._server.id, console_type='xvpvnc'
|
|
165
153
|
)
|
|
166
154
|
self.assertEqual(self.columns, columns)
|
|
@@ -177,7 +165,7 @@ class TestConsoleUrlShow(TestConsole):
|
|
|
177
165
|
]
|
|
178
166
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
179
167
|
columns, data = self.cmd.take_action(parsed_args)
|
|
180
|
-
self.
|
|
168
|
+
self.compute_sdk_client.create_console.assert_called_once_with(
|
|
181
169
|
self._server.id, console_type='spice-html5'
|
|
182
170
|
)
|
|
183
171
|
self.assertEqual(self.columns, columns)
|
|
@@ -194,7 +182,7 @@ class TestConsoleUrlShow(TestConsole):
|
|
|
194
182
|
]
|
|
195
183
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
196
184
|
columns, data = self.cmd.take_action(parsed_args)
|
|
197
|
-
self.
|
|
185
|
+
self.compute_sdk_client.create_console.assert_called_once_with(
|
|
198
186
|
self._server.id, console_type='rdp-html5'
|
|
199
187
|
)
|
|
200
188
|
self.assertEqual(self.columns, columns)
|
|
@@ -211,7 +199,7 @@ class TestConsoleUrlShow(TestConsole):
|
|
|
211
199
|
]
|
|
212
200
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
213
201
|
columns, data = self.cmd.take_action(parsed_args)
|
|
214
|
-
self.
|
|
202
|
+
self.compute_sdk_client.create_console.assert_called_once_with(
|
|
215
203
|
self._server.id, console_type='serial'
|
|
216
204
|
)
|
|
217
205
|
self.assertEqual(self.columns, columns)
|
|
@@ -228,7 +216,7 @@ class TestConsoleUrlShow(TestConsole):
|
|
|
228
216
|
]
|
|
229
217
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
230
218
|
columns, data = self.cmd.take_action(parsed_args)
|
|
231
|
-
self.
|
|
219
|
+
self.compute_sdk_client.create_console.assert_called_once_with(
|
|
232
220
|
self._server.id, console_type='webmks'
|
|
233
221
|
)
|
|
234
222
|
self.assertEqual(self.columns, columns)
|