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
|
@@ -25,23 +25,13 @@ from openstackclient.compute.v2 import hypervisor
|
|
|
25
25
|
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
class
|
|
29
|
-
def setUp(self):
|
|
30
|
-
super().setUp()
|
|
31
|
-
|
|
32
|
-
# Create and get a shortcut to the compute client mock
|
|
33
|
-
self.app.client_manager.sdk_connection = mock.Mock()
|
|
34
|
-
self.sdk_client = self.app.client_manager.sdk_connection.compute
|
|
35
|
-
self.sdk_client.reset_mock()
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
class TestHypervisorList(TestHypervisor):
|
|
28
|
+
class TestHypervisorList(compute_fakes.TestComputev2):
|
|
39
29
|
def setUp(self):
|
|
40
30
|
super().setUp()
|
|
41
31
|
|
|
42
32
|
# Fake hypervisors to be listed up
|
|
43
33
|
self.hypervisors = compute_fakes.create_hypervisors()
|
|
44
|
-
self.
|
|
34
|
+
self.compute_sdk_client.hypervisors.return_value = self.hypervisors
|
|
45
35
|
|
|
46
36
|
self.columns = (
|
|
47
37
|
"ID",
|
|
@@ -115,7 +105,7 @@ class TestHypervisorList(TestHypervisor):
|
|
|
115
105
|
# containing the data to be listed.
|
|
116
106
|
columns, data = self.cmd.take_action(parsed_args)
|
|
117
107
|
|
|
118
|
-
self.
|
|
108
|
+
self.compute_sdk_client.hypervisors.assert_called_with(details=True)
|
|
119
109
|
self.assertEqual(self.columns, columns)
|
|
120
110
|
self.assertEqual(self.data, tuple(data))
|
|
121
111
|
|
|
@@ -130,7 +120,9 @@ class TestHypervisorList(TestHypervisor):
|
|
|
130
120
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
131
121
|
|
|
132
122
|
# Fake the return value of search()
|
|
133
|
-
self.
|
|
123
|
+
self.compute_sdk_client.hypervisors.return_value = [
|
|
124
|
+
self.hypervisors[0]
|
|
125
|
+
]
|
|
134
126
|
|
|
135
127
|
self.data = (
|
|
136
128
|
(
|
|
@@ -147,7 +139,7 @@ class TestHypervisorList(TestHypervisor):
|
|
|
147
139
|
# containing the data to be listed.
|
|
148
140
|
columns, data = self.cmd.take_action(parsed_args)
|
|
149
141
|
|
|
150
|
-
self.
|
|
142
|
+
self.compute_sdk_client.hypervisors.assert_called_with(
|
|
151
143
|
hypervisor_hostname_pattern=self.hypervisors[0].name, details=True
|
|
152
144
|
)
|
|
153
145
|
self.assertEqual(self.columns, columns)
|
|
@@ -164,7 +156,9 @@ class TestHypervisorList(TestHypervisor):
|
|
|
164
156
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
165
157
|
|
|
166
158
|
# Fake exception raised from search()
|
|
167
|
-
self.
|
|
159
|
+
self.compute_sdk_client.hypervisors.side_effect = exceptions.NotFound(
|
|
160
|
+
None
|
|
161
|
+
)
|
|
168
162
|
|
|
169
163
|
self.assertRaises(
|
|
170
164
|
exceptions.NotFound, self.cmd.take_action, parsed_args
|
|
@@ -212,7 +206,7 @@ class TestHypervisorList(TestHypervisor):
|
|
|
212
206
|
# containing the data to be listed.
|
|
213
207
|
columns, data = self.cmd.take_action(parsed_args)
|
|
214
208
|
|
|
215
|
-
self.
|
|
209
|
+
self.compute_sdk_client.hypervisors.assert_called_with(details=True)
|
|
216
210
|
self.assertEqual(self.columns_long, columns)
|
|
217
211
|
self.assertEqual(self.data_long, tuple(data))
|
|
218
212
|
|
|
@@ -229,7 +223,9 @@ class TestHypervisorList(TestHypervisor):
|
|
|
229
223
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
230
224
|
self.cmd.take_action(parsed_args)
|
|
231
225
|
|
|
232
|
-
self.
|
|
226
|
+
self.compute_sdk_client.hypervisors.assert_called_with(
|
|
227
|
+
limit=1, details=True
|
|
228
|
+
)
|
|
233
229
|
|
|
234
230
|
@mock.patch.object(sdk_utils, 'supports_microversion', return_value=False)
|
|
235
231
|
def test_hypervisor_list_with_limit_pre_v233(self, sm_mock):
|
|
@@ -263,7 +259,7 @@ class TestHypervisorList(TestHypervisor):
|
|
|
263
259
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
264
260
|
self.cmd.take_action(parsed_args)
|
|
265
261
|
|
|
266
|
-
self.
|
|
262
|
+
self.compute_sdk_client.hypervisors.assert_called_with(
|
|
267
263
|
marker='test_hyp', details=True
|
|
268
264
|
)
|
|
269
265
|
|
|
@@ -287,7 +283,7 @@ class TestHypervisorList(TestHypervisor):
|
|
|
287
283
|
)
|
|
288
284
|
|
|
289
285
|
|
|
290
|
-
class TestHypervisorShow(
|
|
286
|
+
class TestHypervisorShow(compute_fakes.TestComputev2):
|
|
291
287
|
def setUp(self):
|
|
292
288
|
super().setUp()
|
|
293
289
|
|
|
@@ -304,10 +300,10 @@ class TestHypervisorShow(TestHypervisor):
|
|
|
304
300
|
)
|
|
305
301
|
|
|
306
302
|
# Return value of compute_client.find_hypervisor
|
|
307
|
-
self.
|
|
303
|
+
self.compute_sdk_client.find_hypervisor.return_value = self.hypervisor
|
|
308
304
|
|
|
309
305
|
# Return value of compute_client.aggregates()
|
|
310
|
-
self.
|
|
306
|
+
self.compute_sdk_client.aggregates.return_value = []
|
|
311
307
|
|
|
312
308
|
# Return value of compute_client.get_hypervisor_uptime()
|
|
313
309
|
uptime_info = {
|
|
@@ -317,7 +313,9 @@ class TestHypervisorShow(TestHypervisor):
|
|
|
317
313
|
'hypervisor_hostname': self.hypervisor.name,
|
|
318
314
|
'uptime': uptime_string,
|
|
319
315
|
}
|
|
320
|
-
self.
|
|
316
|
+
self.compute_sdk_client.get_hypervisor_uptime.return_value = (
|
|
317
|
+
uptime_info
|
|
318
|
+
)
|
|
321
319
|
|
|
322
320
|
self.columns_v288 = (
|
|
323
321
|
'aggregates',
|
|
@@ -458,7 +456,7 @@ class TestHypervisorShow(TestHypervisor):
|
|
|
458
456
|
# before microversion 2.28, nova returned a stringified version of this
|
|
459
457
|
# field
|
|
460
458
|
self.hypervisor.cpu_info = json.dumps(self.hypervisor.cpu_info)
|
|
461
|
-
self.
|
|
459
|
+
self.compute_sdk_client.find_hypervisor.return_value = self.hypervisor
|
|
462
460
|
|
|
463
461
|
arglist = [
|
|
464
462
|
self.hypervisor.name,
|
|
@@ -488,7 +486,7 @@ class TestHypervisorShow(TestHypervisor):
|
|
|
488
486
|
]
|
|
489
487
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
490
488
|
|
|
491
|
-
self.
|
|
489
|
+
self.compute_sdk_client.get_hypervisor_uptime.side_effect = (
|
|
492
490
|
nova_exceptions.HTTPNotImplemented(501)
|
|
493
491
|
)
|
|
494
492
|
|
|
@@ -23,11 +23,7 @@ class TestHypervisorStats(compute_fakes.TestComputev2):
|
|
|
23
23
|
def setUp(self):
|
|
24
24
|
super(TestHypervisorStats, self).setUp()
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
self.app.client_manager.sdk_connection = mock.Mock()
|
|
28
|
-
self.app.client_manager.sdk_connection.compute = mock.Mock()
|
|
29
|
-
self.sdk_client = self.app.client_manager.sdk_connection.compute
|
|
30
|
-
self.sdk_client.get = mock.Mock()
|
|
26
|
+
self.compute_sdk_client.get = mock.Mock()
|
|
31
27
|
|
|
32
28
|
|
|
33
29
|
# Not in fakes.py because hypervisor stats has been deprecated
|
|
@@ -71,7 +67,7 @@ class TestHypervisorStatsShow(TestHypervisorStats):
|
|
|
71
67
|
def setUp(self):
|
|
72
68
|
super(TestHypervisorStatsShow, self).setUp()
|
|
73
69
|
|
|
74
|
-
self.
|
|
70
|
+
self.compute_sdk_client.get.return_value = fakes.FakeResponse(
|
|
75
71
|
data={'hypervisor_statistics': self._stats}
|
|
76
72
|
)
|
|
77
73
|
|
|
@@ -11,14 +11,12 @@
|
|
|
11
11
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
12
12
|
# License for the specific language governing permissions and limitations
|
|
13
13
|
# under the License.
|
|
14
|
-
#
|
|
15
14
|
|
|
16
15
|
import copy
|
|
17
16
|
from unittest import mock
|
|
18
17
|
from unittest.mock import call
|
|
19
18
|
import uuid
|
|
20
19
|
|
|
21
|
-
from novaclient import api_versions
|
|
22
20
|
from openstack import utils as sdk_utils
|
|
23
21
|
from osc_lib import exceptions
|
|
24
22
|
|
|
@@ -42,14 +40,6 @@ class TestKeypair(compute_fakes.TestComputev2):
|
|
|
42
40
|
loaded=True,
|
|
43
41
|
)
|
|
44
42
|
|
|
45
|
-
self.app.client_manager.sdk_connection = mock.Mock()
|
|
46
|
-
self.app.client_manager.sdk_connection.compute = mock.Mock()
|
|
47
|
-
self.sdk_client = self.app.client_manager.sdk_connection.compute
|
|
48
|
-
self.sdk_client.keypairs = mock.Mock()
|
|
49
|
-
self.sdk_client.create_keypair = mock.Mock()
|
|
50
|
-
self.sdk_client.delete_keypair = mock.Mock()
|
|
51
|
-
self.sdk_client.find_keypair = mock.Mock()
|
|
52
|
-
|
|
53
43
|
|
|
54
44
|
class TestKeypairCreate(TestKeypair):
|
|
55
45
|
def setUp(self):
|
|
@@ -79,7 +69,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
79
69
|
# Get the command object to test
|
|
80
70
|
self.cmd = keypair.CreateKeypair(self.app, None)
|
|
81
71
|
|
|
82
|
-
self.
|
|
72
|
+
self.compute_sdk_client.create_keypair.return_value = self.keypair
|
|
83
73
|
|
|
84
74
|
@mock.patch.object(
|
|
85
75
|
keypair,
|
|
@@ -97,7 +87,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
97
87
|
|
|
98
88
|
columns, data = self.cmd.take_action(parsed_args)
|
|
99
89
|
|
|
100
|
-
self.
|
|
90
|
+
self.compute_sdk_client.create_keypair.assert_called_with(
|
|
101
91
|
name=self.keypair.name,
|
|
102
92
|
public_key=mock_generate.return_value.public_key,
|
|
103
93
|
)
|
|
@@ -135,7 +125,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
135
125
|
|
|
136
126
|
columns, data = self.cmd.take_action(parsed_args)
|
|
137
127
|
|
|
138
|
-
self.
|
|
128
|
+
self.compute_sdk_client.create_keypair.assert_called_with(
|
|
139
129
|
name=self.keypair.name,
|
|
140
130
|
public_key=self.keypair.public_key,
|
|
141
131
|
)
|
|
@@ -168,7 +158,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
168
158
|
|
|
169
159
|
columns, data = self.cmd.take_action(parsed_args)
|
|
170
160
|
|
|
171
|
-
self.
|
|
161
|
+
self.compute_sdk_client.create_keypair.assert_called_with(
|
|
172
162
|
name=self.keypair.name,
|
|
173
163
|
public_key=mock_generate.return_value.public_key,
|
|
174
164
|
)
|
|
@@ -184,7 +174,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
184
174
|
@mock.patch.object(sdk_utils, 'supports_microversion', return_value=True)
|
|
185
175
|
def test_keypair_create_with_key_type(self, sm_mock):
|
|
186
176
|
for key_type in ['x509', 'ssh']:
|
|
187
|
-
self.
|
|
177
|
+
self.compute_sdk_client.create_keypair.return_value = self.keypair
|
|
188
178
|
|
|
189
179
|
self.data = (
|
|
190
180
|
self.keypair.created_at,
|
|
@@ -215,7 +205,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
215
205
|
m_file.read.return_value = 'dummy'
|
|
216
206
|
columns, data = self.cmd.take_action(parsed_args)
|
|
217
207
|
|
|
218
|
-
self.
|
|
208
|
+
self.compute_sdk_client.create_keypair.assert_called_with(
|
|
219
209
|
name=self.keypair.name,
|
|
220
210
|
public_key=self.keypair.public_key,
|
|
221
211
|
key_type=key_type,
|
|
@@ -274,7 +264,7 @@ class TestKeypairCreate(TestKeypair):
|
|
|
274
264
|
|
|
275
265
|
columns, data = self.cmd.take_action(parsed_args)
|
|
276
266
|
|
|
277
|
-
self.
|
|
267
|
+
self.compute_sdk_client.create_keypair.assert_called_with(
|
|
278
268
|
name=self.keypair.name,
|
|
279
269
|
user_id=identity_fakes.user_id,
|
|
280
270
|
public_key=mock_generate.return_value.public_key,
|
|
@@ -323,7 +313,7 @@ class TestKeypairDelete(TestKeypair):
|
|
|
323
313
|
ret = self.cmd.take_action(parsed_args)
|
|
324
314
|
|
|
325
315
|
self.assertIsNone(ret)
|
|
326
|
-
self.
|
|
316
|
+
self.compute_sdk_client.delete_keypair.assert_called_with(
|
|
327
317
|
self.keypairs[0].name, ignore_missing=False
|
|
328
318
|
)
|
|
329
319
|
|
|
@@ -341,7 +331,7 @@ class TestKeypairDelete(TestKeypair):
|
|
|
341
331
|
calls = []
|
|
342
332
|
for k in self.keypairs:
|
|
343
333
|
calls.append(call(k.name, ignore_missing=False))
|
|
344
|
-
self.
|
|
334
|
+
self.compute_sdk_client.delete_keypair.assert_has_calls(calls)
|
|
345
335
|
self.assertIsNone(result)
|
|
346
336
|
|
|
347
337
|
def test_delete_multiple_keypairs_with_exception(self):
|
|
@@ -355,7 +345,7 @@ class TestKeypairDelete(TestKeypair):
|
|
|
355
345
|
|
|
356
346
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
357
347
|
|
|
358
|
-
self.
|
|
348
|
+
self.compute_sdk_client.delete_keypair.side_effect = [
|
|
359
349
|
None,
|
|
360
350
|
exceptions.CommandError,
|
|
361
351
|
]
|
|
@@ -368,7 +358,7 @@ class TestKeypairDelete(TestKeypair):
|
|
|
368
358
|
calls = []
|
|
369
359
|
for k in arglist:
|
|
370
360
|
calls.append(call(k, ignore_missing=False))
|
|
371
|
-
self.
|
|
361
|
+
self.compute_sdk_client.delete_keypair.assert_has_calls(calls)
|
|
372
362
|
|
|
373
363
|
@mock.patch.object(sdk_utils, 'supports_microversion', return_value=True)
|
|
374
364
|
def test_keypair_delete_with_user(self, sm_mock):
|
|
@@ -382,7 +372,7 @@ class TestKeypairDelete(TestKeypair):
|
|
|
382
372
|
ret = self.cmd.take_action(parsed_args)
|
|
383
373
|
|
|
384
374
|
self.assertIsNone(ret)
|
|
385
|
-
self.
|
|
375
|
+
self.compute_sdk_client.delete_keypair.assert_called_with(
|
|
386
376
|
self.keypairs[0].name,
|
|
387
377
|
user_id=identity_fakes.user_id,
|
|
388
378
|
ignore_missing=False,
|
|
@@ -390,10 +380,6 @@ class TestKeypairDelete(TestKeypair):
|
|
|
390
380
|
|
|
391
381
|
@mock.patch.object(sdk_utils, 'supports_microversion', return_value=False)
|
|
392
382
|
def test_keypair_delete_with_user_pre_v210(self, sm_mock):
|
|
393
|
-
self.app.client_manager.compute.api_version = api_versions.APIVersion(
|
|
394
|
-
'2.9'
|
|
395
|
-
)
|
|
396
|
-
|
|
397
383
|
arglist = ['--user', identity_fakes.user_name, self.keypairs[0].name]
|
|
398
384
|
verifylist = [
|
|
399
385
|
('user', identity_fakes.user_name),
|
|
@@ -410,13 +396,13 @@ class TestKeypairDelete(TestKeypair):
|
|
|
410
396
|
|
|
411
397
|
|
|
412
398
|
class TestKeypairList(TestKeypair):
|
|
413
|
-
# Return value of self.
|
|
399
|
+
# Return value of self.compute_sdk_client.keypairs().
|
|
414
400
|
keypairs = compute_fakes.create_keypairs(count=1)
|
|
415
401
|
|
|
416
402
|
def setUp(self):
|
|
417
403
|
super().setUp()
|
|
418
404
|
|
|
419
|
-
self.
|
|
405
|
+
self.compute_sdk_client.keypairs.return_value = self.keypairs
|
|
420
406
|
|
|
421
407
|
# Get the command object to test
|
|
422
408
|
self.cmd = keypair.ListKeypair(self.app, None)
|
|
@@ -435,7 +421,7 @@ class TestKeypairList(TestKeypair):
|
|
|
435
421
|
|
|
436
422
|
# Set expected values
|
|
437
423
|
|
|
438
|
-
self.
|
|
424
|
+
self.compute_sdk_client.keypairs.assert_called_with()
|
|
439
425
|
|
|
440
426
|
self.assertEqual(('Name', 'Fingerprint'), columns)
|
|
441
427
|
self.assertEqual(
|
|
@@ -457,7 +443,7 @@ class TestKeypairList(TestKeypair):
|
|
|
457
443
|
|
|
458
444
|
# Set expected values
|
|
459
445
|
|
|
460
|
-
self.
|
|
446
|
+
self.compute_sdk_client.keypairs.assert_called_with()
|
|
461
447
|
|
|
462
448
|
self.assertEqual(('Name', 'Fingerprint', 'Type'), columns)
|
|
463
449
|
self.assertEqual(
|
|
@@ -493,7 +479,7 @@ class TestKeypairList(TestKeypair):
|
|
|
493
479
|
columns, data = self.cmd.take_action(parsed_args)
|
|
494
480
|
|
|
495
481
|
users_mock.get.assert_called_with(identity_fakes.user_name)
|
|
496
|
-
self.
|
|
482
|
+
self.compute_sdk_client.keypairs.assert_called_with(
|
|
497
483
|
user_id=identity_fakes.user_id,
|
|
498
484
|
)
|
|
499
485
|
|
|
@@ -555,7 +541,7 @@ class TestKeypairList(TestKeypair):
|
|
|
555
541
|
|
|
556
542
|
projects_mock.get.assert_called_with(identity_fakes.project_name)
|
|
557
543
|
users_mock.list.assert_called_with(tenant_id=identity_fakes.project_id)
|
|
558
|
-
self.
|
|
544
|
+
self.compute_sdk_client.keypairs.assert_called_with(
|
|
559
545
|
user_id=identity_fakes.user_id,
|
|
560
546
|
)
|
|
561
547
|
|
|
@@ -615,7 +601,7 @@ class TestKeypairList(TestKeypair):
|
|
|
615
601
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
616
602
|
self.cmd.take_action(parsed_args)
|
|
617
603
|
|
|
618
|
-
self.
|
|
604
|
+
self.compute_sdk_client.keypairs.assert_called_with(limit=1)
|
|
619
605
|
|
|
620
606
|
@mock.patch.object(
|
|
621
607
|
sdk_utils, 'supports_microversion', new=mock.Mock(return_value=False)
|
|
@@ -653,7 +639,7 @@ class TestKeypairList(TestKeypair):
|
|
|
653
639
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
654
640
|
self.cmd.take_action(parsed_args)
|
|
655
641
|
|
|
656
|
-
self.
|
|
642
|
+
self.compute_sdk_client.keypairs.assert_called_with(marker='test_kp')
|
|
657
643
|
|
|
658
644
|
@mock.patch.object(
|
|
659
645
|
sdk_utils, 'supports_microversion', new=mock.Mock(return_value=False)
|
|
@@ -709,7 +695,7 @@ class TestKeypairShow(TestKeypair):
|
|
|
709
695
|
|
|
710
696
|
def test_keypair_show(self):
|
|
711
697
|
self.keypair = compute_fakes.create_one_keypair()
|
|
712
|
-
self.
|
|
698
|
+
self.compute_sdk_client.find_keypair.return_value = self.keypair
|
|
713
699
|
|
|
714
700
|
self.data = (
|
|
715
701
|
self.keypair.created_at,
|
|
@@ -728,7 +714,7 @@ class TestKeypairShow(TestKeypair):
|
|
|
728
714
|
|
|
729
715
|
columns, data = self.cmd.take_action(parsed_args)
|
|
730
716
|
|
|
731
|
-
self.
|
|
717
|
+
self.compute_sdk_client.find_keypair.assert_called_with(
|
|
732
718
|
self.keypair.name, ignore_missing=False
|
|
733
719
|
)
|
|
734
720
|
|
|
@@ -737,7 +723,7 @@ class TestKeypairShow(TestKeypair):
|
|
|
737
723
|
|
|
738
724
|
def test_keypair_show_public(self):
|
|
739
725
|
self.keypair = compute_fakes.create_one_keypair()
|
|
740
|
-
self.
|
|
726
|
+
self.compute_sdk_client.find_keypair.return_value = self.keypair
|
|
741
727
|
|
|
742
728
|
arglist = ['--public-key', self.keypair.name]
|
|
743
729
|
verifylist = [('public_key', True), ('name', self.keypair.name)]
|
|
@@ -752,7 +738,7 @@ class TestKeypairShow(TestKeypair):
|
|
|
752
738
|
@mock.patch.object(sdk_utils, 'supports_microversion', return_value=True)
|
|
753
739
|
def test_keypair_show_with_user(self, sm_mock):
|
|
754
740
|
self.keypair = compute_fakes.create_one_keypair()
|
|
755
|
-
self.
|
|
741
|
+
self.compute_sdk_client.find_keypair.return_value = self.keypair
|
|
756
742
|
|
|
757
743
|
self.data = (
|
|
758
744
|
self.keypair.created_at,
|
|
@@ -779,7 +765,7 @@ class TestKeypairShow(TestKeypair):
|
|
|
779
765
|
columns, data = self.cmd.take_action(parsed_args)
|
|
780
766
|
|
|
781
767
|
self.users_mock.get.assert_called_with(identity_fakes.user_name)
|
|
782
|
-
self.
|
|
768
|
+
self.compute_sdk_client.find_keypair.assert_called_with(
|
|
783
769
|
self.keypair.name,
|
|
784
770
|
ignore_missing=False,
|
|
785
771
|
user_id=identity_fakes.user_id,
|