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
|
@@ -27,19 +27,13 @@ class TestServerMigration(compute_fakes.TestComputev2):
|
|
|
27
27
|
super().setUp()
|
|
28
28
|
|
|
29
29
|
# Get a shortcut to the compute client ServerManager Mock
|
|
30
|
-
self.servers_mock = self.
|
|
30
|
+
self.servers_mock = self.compute_client.servers
|
|
31
31
|
self.servers_mock.reset_mock()
|
|
32
32
|
|
|
33
33
|
# Get a shortcut to the compute client ServerMigrationsManager Mock
|
|
34
|
-
self.server_migrations_mock =
|
|
35
|
-
self.app.client_manager.compute.server_migrations
|
|
36
|
-
)
|
|
34
|
+
self.server_migrations_mock = self.compute_client.server_migrations
|
|
37
35
|
self.server_migrations_mock.reset_mock()
|
|
38
36
|
|
|
39
|
-
self.app.client_manager.sdk_connection = mock.Mock()
|
|
40
|
-
self.app.client_manager.sdk_connection.compute = mock.Mock()
|
|
41
|
-
self.sdk_client = self.app.client_manager.sdk_connection.compute
|
|
42
|
-
|
|
43
37
|
patcher = mock.patch.object(
|
|
44
38
|
sdk_utils, 'supports_microversion', return_value=True
|
|
45
39
|
)
|
|
@@ -92,10 +86,10 @@ class TestListMigration(TestServerMigration):
|
|
|
92
86
|
self._set_mock_microversion('2.1')
|
|
93
87
|
|
|
94
88
|
self.server = compute_fakes.create_one_sdk_server()
|
|
95
|
-
self.
|
|
89
|
+
self.compute_sdk_client.find_server.return_value = self.server
|
|
96
90
|
|
|
97
91
|
self.migrations = compute_fakes.create_migrations(count=3)
|
|
98
|
-
self.
|
|
92
|
+
self.compute_sdk_client.migrations.return_value = self.migrations
|
|
99
93
|
|
|
100
94
|
self.data = (
|
|
101
95
|
common_utils.get_item_properties(s, self.MIGRATION_FIELDS)
|
|
@@ -115,7 +109,7 @@ class TestListMigration(TestServerMigration):
|
|
|
115
109
|
# Set expected values
|
|
116
110
|
kwargs = {}
|
|
117
111
|
|
|
118
|
-
self.
|
|
112
|
+
self.compute_sdk_client.migrations.assert_called_with(**kwargs)
|
|
119
113
|
|
|
120
114
|
self.assertEqual(self.MIGRATION_COLUMNS, columns)
|
|
121
115
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
@@ -147,8 +141,8 @@ class TestListMigration(TestServerMigration):
|
|
|
147
141
|
'migration_type': 'migration',
|
|
148
142
|
}
|
|
149
143
|
|
|
150
|
-
self.
|
|
151
|
-
self.
|
|
144
|
+
self.compute_sdk_client.find_server.assert_called_with('server1')
|
|
145
|
+
self.compute_sdk_client.migrations.assert_called_with(**kwargs)
|
|
152
146
|
|
|
153
147
|
self.assertEqual(self.MIGRATION_COLUMNS, columns)
|
|
154
148
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
@@ -206,7 +200,7 @@ class TestListMigrationV223(TestListMigration):
|
|
|
206
200
|
'status': 'migrating',
|
|
207
201
|
}
|
|
208
202
|
|
|
209
|
-
self.
|
|
203
|
+
self.compute_sdk_client.migrations.assert_called_with(**kwargs)
|
|
210
204
|
|
|
211
205
|
self.assertEqual(self.MIGRATION_COLUMNS, columns)
|
|
212
206
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
@@ -284,7 +278,7 @@ class TestListMigrationV259(TestListMigration):
|
|
|
284
278
|
'changes_since': '2019-08-09T08:03:25Z',
|
|
285
279
|
}
|
|
286
280
|
|
|
287
|
-
self.
|
|
281
|
+
self.compute_sdk_client.migrations.assert_called_with(**kwargs)
|
|
288
282
|
|
|
289
283
|
self.assertEqual(self.MIGRATION_COLUMNS, columns)
|
|
290
284
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
@@ -410,7 +404,7 @@ class TestListMigrationV266(TestListMigration):
|
|
|
410
404
|
'changes_before': '2019-08-09T08:03:25Z',
|
|
411
405
|
}
|
|
412
406
|
|
|
413
|
-
self.
|
|
407
|
+
self.compute_sdk_client.migrations.assert_called_with(**kwargs)
|
|
414
408
|
|
|
415
409
|
self.assertEqual(self.MIGRATION_COLUMNS, columns)
|
|
416
410
|
self.assertEqual(tuple(self.data), tuple(data))
|
|
@@ -528,7 +522,7 @@ class TestListMigrationV280(TestListMigration):
|
|
|
528
522
|
'changes_before': "2019-08-09T08:03:25Z",
|
|
529
523
|
}
|
|
530
524
|
|
|
531
|
-
self.
|
|
525
|
+
self.compute_sdk_client.migrations.assert_called_with(**kwargs)
|
|
532
526
|
|
|
533
527
|
self.MIGRATION_COLUMNS.insert(
|
|
534
528
|
len(self.MIGRATION_COLUMNS) - 2, "Project"
|
|
@@ -604,7 +598,7 @@ class TestListMigrationV280(TestListMigration):
|
|
|
604
598
|
'changes_before': "2019-08-09T08:03:25Z",
|
|
605
599
|
}
|
|
606
600
|
|
|
607
|
-
self.
|
|
601
|
+
self.compute_sdk_client.migrations.assert_called_with(**kwargs)
|
|
608
602
|
|
|
609
603
|
self.MIGRATION_COLUMNS.insert(len(self.MIGRATION_COLUMNS) - 2, "User")
|
|
610
604
|
self.MIGRATION_FIELDS.insert(len(self.MIGRATION_FIELDS) - 2, "user_id")
|
|
@@ -675,7 +669,7 @@ class TestListMigrationV280(TestListMigration):
|
|
|
675
669
|
'changes_before': "2019-08-09T08:03:25Z",
|
|
676
670
|
}
|
|
677
671
|
|
|
678
|
-
self.
|
|
672
|
+
self.compute_sdk_client.migrations.assert_called_with(**kwargs)
|
|
679
673
|
|
|
680
674
|
self.MIGRATION_COLUMNS.insert(
|
|
681
675
|
len(self.MIGRATION_COLUMNS) - 2, "Project"
|
|
@@ -725,13 +719,13 @@ class TestServerMigrationShow(TestServerMigration):
|
|
|
725
719
|
super().setUp()
|
|
726
720
|
|
|
727
721
|
self.server = compute_fakes.create_one_sdk_server()
|
|
728
|
-
self.
|
|
722
|
+
self.compute_sdk_client.find_server.return_value = self.server
|
|
729
723
|
|
|
730
724
|
self.server_migration = compute_fakes.create_one_server_migration()
|
|
731
|
-
self.
|
|
725
|
+
self.compute_sdk_client.get_server_migration.return_value = (
|
|
732
726
|
self.server_migration
|
|
733
727
|
)
|
|
734
|
-
self.
|
|
728
|
+
self.compute_sdk_client.server_migrations.return_value = iter(
|
|
735
729
|
[self.server_migration]
|
|
736
730
|
)
|
|
737
731
|
|
|
@@ -789,10 +783,10 @@ class TestServerMigrationShow(TestServerMigration):
|
|
|
789
783
|
self.assertEqual(self.columns, columns)
|
|
790
784
|
self.assertEqual(self.data, data)
|
|
791
785
|
|
|
792
|
-
self.
|
|
786
|
+
self.compute_sdk_client.find_server.assert_called_with(
|
|
793
787
|
self.server.id, ignore_missing=False
|
|
794
788
|
)
|
|
795
|
-
self.
|
|
789
|
+
self.compute_sdk_client.get_server_migration.assert_called_with(
|
|
796
790
|
self.server.id, '2', ignore_missing=False
|
|
797
791
|
)
|
|
798
792
|
|
|
@@ -841,7 +835,7 @@ class TestServerMigrationShow(TestServerMigration):
|
|
|
841
835
|
def test_server_migration_show_by_uuid(self):
|
|
842
836
|
self._set_mock_microversion('2.59')
|
|
843
837
|
|
|
844
|
-
self.
|
|
838
|
+
self.compute_sdk_client.server_migrations.return_value = iter(
|
|
845
839
|
[self.server_migration]
|
|
846
840
|
)
|
|
847
841
|
|
|
@@ -860,15 +854,17 @@ class TestServerMigrationShow(TestServerMigration):
|
|
|
860
854
|
self.assertEqual(self.columns, columns)
|
|
861
855
|
self.assertEqual(self.data, data)
|
|
862
856
|
|
|
863
|
-
self.
|
|
857
|
+
self.compute_sdk_client.find_server.assert_called_with(
|
|
864
858
|
self.server.id, ignore_missing=False
|
|
865
859
|
)
|
|
866
|
-
self.
|
|
867
|
-
|
|
860
|
+
self.compute_sdk_client.server_migrations.assert_called_with(
|
|
861
|
+
self.server.id
|
|
862
|
+
)
|
|
863
|
+
self.compute_sdk_client.get_server_migration.assert_not_called()
|
|
868
864
|
|
|
869
865
|
def test_server_migration_show_by_uuid_no_matches(self):
|
|
870
866
|
self._set_mock_microversion('2.59')
|
|
871
|
-
self.
|
|
867
|
+
self.compute_sdk_client.server_migrations.return_value = iter([])
|
|
872
868
|
|
|
873
869
|
arglist = [
|
|
874
870
|
self.server.id,
|
|
@@ -927,7 +923,7 @@ class TestServerMigrationAbort(TestServerMigration):
|
|
|
927
923
|
self.server = compute_fakes.create_one_sdk_server()
|
|
928
924
|
|
|
929
925
|
# Return value for utils.find_resource for server.
|
|
930
|
-
self.
|
|
926
|
+
self.compute_sdk_client.find_server.return_value = self.server
|
|
931
927
|
|
|
932
928
|
# Get the command object to test
|
|
933
929
|
self.cmd = server_migration.AbortMigration(self.app, None)
|
|
@@ -944,10 +940,10 @@ class TestServerMigrationAbort(TestServerMigration):
|
|
|
944
940
|
|
|
945
941
|
result = self.cmd.take_action(parsed_args)
|
|
946
942
|
|
|
947
|
-
self.
|
|
943
|
+
self.compute_sdk_client.find_server.assert_called_with(
|
|
948
944
|
self.server.id, ignore_missing=False
|
|
949
945
|
)
|
|
950
|
-
self.
|
|
946
|
+
self.compute_sdk_client.abort_server_migration.assert_called_with(
|
|
951
947
|
'2', self.server.id, ignore_missing=False
|
|
952
948
|
)
|
|
953
949
|
self.assertIsNone(result)
|
|
@@ -973,7 +969,7 @@ class TestServerMigrationAbort(TestServerMigration):
|
|
|
973
969
|
self._set_mock_microversion('2.59')
|
|
974
970
|
|
|
975
971
|
self.server_migration = compute_fakes.create_one_server_migration()
|
|
976
|
-
self.
|
|
972
|
+
self.compute_sdk_client.server_migrations.return_value = iter(
|
|
977
973
|
[self.server_migration]
|
|
978
974
|
)
|
|
979
975
|
|
|
@@ -986,11 +982,13 @@ class TestServerMigrationAbort(TestServerMigration):
|
|
|
986
982
|
|
|
987
983
|
result = self.cmd.take_action(parsed_args)
|
|
988
984
|
|
|
989
|
-
self.
|
|
985
|
+
self.compute_sdk_client.find_server.assert_called_with(
|
|
990
986
|
self.server.id, ignore_missing=False
|
|
991
987
|
)
|
|
992
|
-
self.
|
|
993
|
-
|
|
988
|
+
self.compute_sdk_client.server_migrations.assert_called_with(
|
|
989
|
+
self.server.id
|
|
990
|
+
)
|
|
991
|
+
self.compute_sdk_client.abort_server_migration.assert_called_with(
|
|
994
992
|
self.server_migration.id, self.server.id, ignore_missing=False
|
|
995
993
|
)
|
|
996
994
|
self.assertIsNone(result)
|
|
@@ -998,7 +996,7 @@ class TestServerMigrationAbort(TestServerMigration):
|
|
|
998
996
|
def test_server_migration_abort_by_uuid_no_matches(self):
|
|
999
997
|
self._set_mock_microversion('2.59')
|
|
1000
998
|
|
|
1001
|
-
self.
|
|
999
|
+
self.compute_sdk_client.server_migrations.return_value = iter([])
|
|
1002
1000
|
|
|
1003
1001
|
arglist = [
|
|
1004
1002
|
self.server.id,
|
|
@@ -1040,7 +1038,7 @@ class TestServerMigrationForceComplete(TestServerMigration):
|
|
|
1040
1038
|
self.server = compute_fakes.create_one_sdk_server()
|
|
1041
1039
|
|
|
1042
1040
|
# Return value for utils.find_resource for server.
|
|
1043
|
-
self.
|
|
1041
|
+
self.compute_sdk_client.find_server.return_value = self.server
|
|
1044
1042
|
|
|
1045
1043
|
# Get the command object to test
|
|
1046
1044
|
self.cmd = server_migration.ForceCompleteMigration(self.app, None)
|
|
@@ -1057,10 +1055,10 @@ class TestServerMigrationForceComplete(TestServerMigration):
|
|
|
1057
1055
|
|
|
1058
1056
|
result = self.cmd.take_action(parsed_args)
|
|
1059
1057
|
|
|
1060
|
-
self.
|
|
1058
|
+
self.compute_sdk_client.find_server.assert_called_with(
|
|
1061
1059
|
self.server.id, ignore_missing=False
|
|
1062
1060
|
)
|
|
1063
|
-
self.
|
|
1061
|
+
self.compute_sdk_client.force_complete_server_migration.assert_called_with(
|
|
1064
1062
|
'2', self.server.id
|
|
1065
1063
|
)
|
|
1066
1064
|
self.assertIsNone(result)
|
|
@@ -1086,7 +1084,7 @@ class TestServerMigrationForceComplete(TestServerMigration):
|
|
|
1086
1084
|
self._set_mock_microversion('2.59')
|
|
1087
1085
|
|
|
1088
1086
|
self.server_migration = compute_fakes.create_one_server_migration()
|
|
1089
|
-
self.
|
|
1087
|
+
self.compute_sdk_client.server_migrations.return_value = iter(
|
|
1090
1088
|
[self.server_migration]
|
|
1091
1089
|
)
|
|
1092
1090
|
|
|
@@ -1099,11 +1097,13 @@ class TestServerMigrationForceComplete(TestServerMigration):
|
|
|
1099
1097
|
|
|
1100
1098
|
result = self.cmd.take_action(parsed_args)
|
|
1101
1099
|
|
|
1102
|
-
self.
|
|
1100
|
+
self.compute_sdk_client.find_server.assert_called_with(
|
|
1103
1101
|
self.server.id, ignore_missing=False
|
|
1104
1102
|
)
|
|
1105
|
-
self.
|
|
1106
|
-
|
|
1103
|
+
self.compute_sdk_client.server_migrations.assert_called_with(
|
|
1104
|
+
self.server.id
|
|
1105
|
+
)
|
|
1106
|
+
self.compute_sdk_client.force_complete_server_migration.assert_called_with(
|
|
1107
1107
|
self.server_migration.id, self.server.id
|
|
1108
1108
|
)
|
|
1109
1109
|
self.assertIsNone(result)
|
|
@@ -1111,7 +1111,7 @@ class TestServerMigrationForceComplete(TestServerMigration):
|
|
|
1111
1111
|
def test_server_migration_force_complete_by_uuid_no_matches(self):
|
|
1112
1112
|
self._set_mock_microversion('2.59')
|
|
1113
1113
|
|
|
1114
|
-
self.
|
|
1114
|
+
self.compute_sdk_client.server_migrations.return_value = iter([])
|
|
1115
1115
|
|
|
1116
1116
|
arglist = [
|
|
1117
1117
|
self.server.id,
|
|
@@ -9,11 +9,9 @@
|
|
|
9
9
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
10
10
|
# License for the specific language governing permissions and limitations
|
|
11
11
|
# under the License.
|
|
12
|
-
#
|
|
13
12
|
|
|
14
13
|
from unittest import mock
|
|
15
14
|
|
|
16
|
-
from novaclient import api_versions
|
|
17
15
|
from openstack import utils as sdk_utils
|
|
18
16
|
from osc_lib import exceptions
|
|
19
17
|
|
|
@@ -22,26 +20,15 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
|
|
|
22
20
|
from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes
|
|
23
21
|
|
|
24
22
|
|
|
25
|
-
class
|
|
26
|
-
def setUp(self):
|
|
27
|
-
super().setUp()
|
|
28
|
-
|
|
29
|
-
self.app.client_manager.sdk_connection = mock.Mock()
|
|
30
|
-
self.app.client_manager.sdk_connection.compute = mock.Mock()
|
|
31
|
-
self.app.client_manager.sdk_connection.volume = mock.Mock()
|
|
32
|
-
self.compute_client = self.app.client_manager.sdk_connection.compute
|
|
33
|
-
self.volume_client = self.app.client_manager.sdk_connection.volume
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
class TestServerVolumeList(TestServerVolume):
|
|
23
|
+
class TestServerVolumeList(compute_fakes.TestComputev2):
|
|
37
24
|
def setUp(self):
|
|
38
25
|
super().setUp()
|
|
39
26
|
|
|
40
27
|
self.server = compute_fakes.create_one_sdk_server()
|
|
41
28
|
self.volume_attachments = compute_fakes.create_volume_attachments()
|
|
42
29
|
|
|
43
|
-
self.
|
|
44
|
-
self.
|
|
30
|
+
self.compute_sdk_client.find_server.return_value = self.server
|
|
31
|
+
self.compute_sdk_client.volume_attachments.return_value = (
|
|
45
32
|
self.volume_attachments
|
|
46
33
|
)
|
|
47
34
|
|
|
@@ -50,9 +37,6 @@ class TestServerVolumeList(TestServerVolume):
|
|
|
50
37
|
|
|
51
38
|
@mock.patch.object(sdk_utils, 'supports_microversion')
|
|
52
39
|
def test_server_volume_list(self, sm_mock):
|
|
53
|
-
self.app.client_manager.compute.api_version = api_versions.APIVersion(
|
|
54
|
-
'2.1'
|
|
55
|
-
)
|
|
56
40
|
sm_mock.side_effect = [False, False, False, False]
|
|
57
41
|
|
|
58
42
|
arglist = [
|
|
@@ -83,7 +67,7 @@ class TestServerVolumeList(TestServerVolume):
|
|
|
83
67
|
),
|
|
84
68
|
tuple(data),
|
|
85
69
|
)
|
|
86
|
-
self.
|
|
70
|
+
self.compute_sdk_client.volume_attachments.assert_called_once_with(
|
|
87
71
|
self.server,
|
|
88
72
|
)
|
|
89
73
|
|
|
@@ -130,7 +114,7 @@ class TestServerVolumeList(TestServerVolume):
|
|
|
130
114
|
),
|
|
131
115
|
tuple(data),
|
|
132
116
|
)
|
|
133
|
-
self.
|
|
117
|
+
self.compute_sdk_client.volume_attachments.assert_called_once_with(
|
|
134
118
|
self.server,
|
|
135
119
|
)
|
|
136
120
|
|
|
@@ -179,7 +163,7 @@ class TestServerVolumeList(TestServerVolume):
|
|
|
179
163
|
),
|
|
180
164
|
tuple(data),
|
|
181
165
|
)
|
|
182
|
-
self.
|
|
166
|
+
self.compute_sdk_client.volume_attachments.assert_called_once_with(
|
|
183
167
|
self.server,
|
|
184
168
|
)
|
|
185
169
|
|
|
@@ -231,20 +215,20 @@ class TestServerVolumeList(TestServerVolume):
|
|
|
231
215
|
),
|
|
232
216
|
tuple(data),
|
|
233
217
|
)
|
|
234
|
-
self.
|
|
218
|
+
self.compute_sdk_client.volume_attachments.assert_called_once_with(
|
|
235
219
|
self.server,
|
|
236
220
|
)
|
|
237
221
|
|
|
238
222
|
|
|
239
|
-
class TestServerVolumeUpdate(
|
|
223
|
+
class TestServerVolumeUpdate(compute_fakes.TestComputev2):
|
|
240
224
|
def setUp(self):
|
|
241
225
|
super().setUp()
|
|
242
226
|
|
|
243
227
|
self.server = compute_fakes.create_one_sdk_server()
|
|
244
|
-
self.
|
|
228
|
+
self.compute_sdk_client.find_server.return_value = self.server
|
|
245
229
|
|
|
246
230
|
self.volume = volume_fakes.create_one_sdk_volume()
|
|
247
|
-
self.
|
|
231
|
+
self.volume_sdk_client.find_volume.return_value = self.volume
|
|
248
232
|
|
|
249
233
|
# Get the command object to test
|
|
250
234
|
self.cmd = server_volume.UpdateServerVolume(self.app, None)
|
|
@@ -264,7 +248,7 @@ class TestServerVolumeUpdate(TestServerVolume):
|
|
|
264
248
|
result = self.cmd.take_action(parsed_args)
|
|
265
249
|
|
|
266
250
|
# This is a no-op
|
|
267
|
-
self.
|
|
251
|
+
self.compute_sdk_client.update_volume_attachment.assert_not_called()
|
|
268
252
|
self.assertIsNone(result)
|
|
269
253
|
|
|
270
254
|
@mock.patch.object(sdk_utils, 'supports_microversion')
|
|
@@ -285,7 +269,7 @@ class TestServerVolumeUpdate(TestServerVolume):
|
|
|
285
269
|
|
|
286
270
|
result = self.cmd.take_action(parsed_args)
|
|
287
271
|
|
|
288
|
-
self.
|
|
272
|
+
self.compute_sdk_client.update_volume_attachment.assert_called_once_with(
|
|
289
273
|
self.server,
|
|
290
274
|
self.volume,
|
|
291
275
|
delete_on_termination=True,
|
|
@@ -310,7 +294,7 @@ class TestServerVolumeUpdate(TestServerVolume):
|
|
|
310
294
|
|
|
311
295
|
result = self.cmd.take_action(parsed_args)
|
|
312
296
|
|
|
313
|
-
self.
|
|
297
|
+
self.compute_sdk_client.update_volume_attachment.assert_called_once_with(
|
|
314
298
|
self.server, self.volume, delete_on_termination=False
|
|
315
299
|
)
|
|
316
300
|
self.assertIsNone(result)
|
|
@@ -339,7 +323,7 @@ class TestServerVolumeUpdate(TestServerVolume):
|
|
|
339
323
|
self.cmd.take_action,
|
|
340
324
|
parsed_args,
|
|
341
325
|
)
|
|
342
|
-
self.
|
|
326
|
+
self.compute_sdk_client.update_volume_attachment.assert_not_called()
|
|
343
327
|
|
|
344
328
|
@mock.patch.object(sdk_utils, 'supports_microversion')
|
|
345
329
|
def test_server_volume_update_with_preserve_on_termination_pre_v285(
|
|
@@ -365,4 +349,4 @@ class TestServerVolumeUpdate(TestServerVolume):
|
|
|
365
349
|
self.cmd.take_action,
|
|
366
350
|
parsed_args,
|
|
367
351
|
)
|
|
368
|
-
self.
|
|
352
|
+
self.compute_sdk_client.update_volume_attachment.assert_not_called()
|