python-openstackclient 7.1.3__py3-none-any.whl → 7.2.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/api/api.py +2 -1
- openstackclient/api/image_v2.py +1 -1
- openstackclient/api/object_store_v1.py +12 -20
- openstackclient/common/clientmanager.py +1 -1
- openstackclient/common/module.py +2 -2
- openstackclient/common/quota.py +4 -4
- openstackclient/compute/v2/flavor.py +1 -1
- openstackclient/compute/v2/server.py +122 -59
- openstackclient/compute/v2/server_backup.py +1 -1
- openstackclient/compute/v2/server_image.py +1 -1
- openstackclient/compute/v2/server_migration.py +11 -2
- openstackclient/compute/v2/usage.py +3 -3
- openstackclient/identity/common.py +1 -1
- openstackclient/identity/v2_0/project.py +1 -1
- openstackclient/identity/v2_0/role_assignment.py +1 -1
- openstackclient/identity/v2_0/user.py +2 -2
- openstackclient/identity/v3/access_rule.py +26 -14
- openstackclient/identity/v3/identity_provider.py +1 -1
- openstackclient/identity/v3/project.py +1 -1
- openstackclient/image/v2/image.py +13 -13
- openstackclient/image/v2/metadef_objects.py +6 -4
- openstackclient/network/common.py +8 -7
- openstackclient/network/v2/floating_ip.py +6 -2
- openstackclient/network/v2/floating_ip_port_forwarding.py +2 -2
- openstackclient/network/v2/l3_conntrack_helper.py +1 -1
- openstackclient/network/v2/ndp_proxy.py +1 -0
- openstackclient/network/v2/network_agent.py +2 -6
- openstackclient/network/v2/network_qos_rule.py +2 -5
- openstackclient/network/v2/network_trunk.py +5 -4
- openstackclient/network/v2/port.py +18 -3
- openstackclient/network/v2/router.py +7 -4
- openstackclient/network/v2/subnet_pool.py +2 -2
- openstackclient/shell.py +3 -2
- openstackclient/tests/functional/common/test_help.py +3 -9
- openstackclient/tests/functional/common/test_module.py +1 -1
- openstackclient/tests/functional/common/test_quota.py +2 -4
- openstackclient/tests/functional/compute/v2/common.py +1 -3
- openstackclient/tests/functional/compute/v2/test_hypervisor.py +3 -3
- openstackclient/tests/functional/compute/v2/test_keypair.py +2 -2
- openstackclient/tests/functional/compute/v2/test_server.py +1 -1
- openstackclient/tests/functional/identity/v2/common.py +31 -48
- openstackclient/tests/functional/identity/v2/test_catalog.py +1 -1
- openstackclient/tests/functional/identity/v2/test_ec2_credentials.py +2 -2
- openstackclient/tests/functional/identity/v2/test_endpoint.py +2 -2
- openstackclient/tests/functional/identity/v2/test_project.py +8 -8
- openstackclient/tests/functional/identity/v2/test_role.py +14 -34
- openstackclient/tests/functional/identity/v2/test_service.py +2 -2
- openstackclient/tests/functional/identity/v2/test_token.py +1 -1
- openstackclient/tests/functional/identity/v2/test_user.py +7 -9
- openstackclient/tests/functional/identity/v3/common.py +69 -110
- openstackclient/tests/functional/identity/v3/test_access_rule.py +86 -0
- openstackclient/tests/functional/identity/v3/test_application_credential.py +18 -44
- openstackclient/tests/functional/identity/v3/test_catalog.py +1 -1
- openstackclient/tests/functional/identity/v3/test_domain.py +9 -11
- openstackclient/tests/functional/identity/v3/test_endpoint.py +15 -27
- openstackclient/tests/functional/identity/v3/test_group.py +32 -93
- openstackclient/tests/functional/identity/v3/test_idp.py +3 -3
- openstackclient/tests/functional/identity/v3/test_limit.py +32 -32
- openstackclient/tests/functional/identity/v3/test_project.py +17 -26
- openstackclient/tests/functional/identity/v3/test_region.py +6 -7
- openstackclient/tests/functional/identity/v3/test_registered_limit.py +27 -36
- openstackclient/tests/functional/identity/v3/test_role.py +30 -60
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +33 -80
- openstackclient/tests/functional/identity/v3/test_service.py +7 -13
- openstackclient/tests/functional/identity/v3/test_service_provider.py +3 -3
- openstackclient/tests/functional/identity/v3/test_user.py +17 -34
- openstackclient/tests/functional/image/v2/test_image.py +1 -3
- openstackclient/tests/functional/network/v2/common.py +1 -3
- openstackclient/tests/functional/network/v2/test_default_security_group_rule.py +3 -8
- openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py +27 -31
- openstackclient/tests/functional/network/v2/test_network.py +9 -12
- openstackclient/tests/functional/network/v2/test_network_agent.py +15 -20
- openstackclient/tests/functional/network/v2/test_network_flavor.py +2 -2
- openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py +17 -39
- openstackclient/tests/functional/network/v2/test_network_qos_rule.py +48 -63
- openstackclient/tests/functional/network/v2/test_network_qos_rule_type.py +1 -1
- openstackclient/tests/functional/network/v2/test_network_segment_range.py +2 -2
- openstackclient/tests/functional/network/v2/test_network_trunk.py +15 -25
- openstackclient/tests/functional/network/v2/test_port.py +28 -34
- openstackclient/tests/functional/network/v2/test_router.py +13 -19
- openstackclient/tests/functional/object/v1/test_object.py +4 -7
- openstackclient/tests/functional/volume/base.py +5 -17
- openstackclient/tests/functional/volume/v1/test_volume_type.py +11 -11
- openstackclient/tests/functional/volume/v2/test_volume_backup.py +1 -1
- openstackclient/tests/functional/volume/v2/test_volume_type.py +13 -15
- openstackclient/tests/functional/volume/v3/test_volume_type.py +13 -15
- openstackclient/tests/unit/api/test_compute_v2.py +0 -5
- openstackclient/tests/unit/api/test_object_store_v1.py +6 -4
- openstackclient/tests/unit/common/test_extension.py +24 -31
- openstackclient/tests/unit/compute/v2/test_host.py +0 -1
- openstackclient/tests/unit/compute/v2/test_server.py +123 -115
- openstackclient/tests/unit/identity/v3/test_access_rule.py +65 -64
- openstackclient/tests/unit/identity/v3/test_group.py +4 -10
- openstackclient/tests/unit/identity/v3/test_limit.py +2 -2
- openstackclient/tests/unit/image/v2/test_metadef_objects.py +1 -2
- openstackclient/tests/unit/image/v2/test_metadef_resource_type_association.py +2 -6
- openstackclient/tests/unit/integ/base.py +1 -1
- openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +3 -3
- openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +4 -4
- openstackclient/tests/unit/network/v2/test_local_ip_association.py +2 -2
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +12 -13
- openstackclient/tests/unit/network/v2/test_network_trunk.py +31 -35
- openstackclient/tests/unit/network/v2/test_port.py +40 -17
- openstackclient/tests/unit/network/v2/test_subnet_pool.py +1 -1
- openstackclient/tests/unit/object/v1/test_object.py +1 -1
- openstackclient/tests/unit/utils.py +2 -2
- openstackclient/volume/client.py +1 -1
- openstackclient/volume/v1/volume.py +2 -2
- openstackclient/volume/v1/volume_backup.py +2 -2
- openstackclient/volume/v1/volume_snapshot.py +2 -2
- openstackclient/volume/v2/volume.py +2 -2
- openstackclient/volume/v2/volume_backup.py +2 -2
- openstackclient/volume/v2/volume_snapshot.py +2 -2
- openstackclient/volume/v2/volume_type.py +4 -4
- openstackclient/volume/v3/service.py +0 -1
- openstackclient/volume/v3/volume.py +3 -3
- openstackclient/volume/v3/volume_backup.py +2 -2
- openstackclient/volume/v3/volume_group.py +3 -7
- openstackclient/volume/v3/volume_type.py +6 -6
- {python_openstackclient-7.1.3.dist-info → python_openstackclient-7.2.0.dist-info}/AUTHORS +3 -0
- {python_openstackclient-7.1.3.dist-info → python_openstackclient-7.2.0.dist-info}/METADATA +2 -3
- {python_openstackclient-7.1.3.dist-info → python_openstackclient-7.2.0.dist-info}/RECORD +127 -126
- python_openstackclient-7.2.0.dist-info/pbr.json +1 -0
- python_openstackclient-7.1.3.dist-info/pbr.json +0 -1
- {python_openstackclient-7.1.3.dist-info → python_openstackclient-7.2.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-7.1.3.dist-info → python_openstackclient-7.2.0.dist-info}/WHEEL +0 -0
- {python_openstackclient-7.1.3.dist-info → python_openstackclient-7.2.0.dist-info}/entry_points.txt +0 -0
- {python_openstackclient-7.1.3.dist-info → python_openstackclient-7.2.0.dist-info}/top_level.txt +0 -0
|
@@ -78,30 +78,6 @@ class TestServer(compute_fakes.TestComputev2):
|
|
|
78
78
|
|
|
79
79
|
return servers
|
|
80
80
|
|
|
81
|
-
def setup_sdk_volumes_mock(self, count):
|
|
82
|
-
volumes = volume_fakes.create_sdk_volumes(count=count)
|
|
83
|
-
|
|
84
|
-
# This is the return value for volume_client.find_volume()
|
|
85
|
-
self.volume_sdk_client.find_volume.side_effect = volumes
|
|
86
|
-
|
|
87
|
-
return volumes
|
|
88
|
-
|
|
89
|
-
def run_method_with_sdk_servers(self, method_name, server_count):
|
|
90
|
-
servers = self.setup_sdk_servers_mock(count=server_count)
|
|
91
|
-
|
|
92
|
-
arglist = [s.id for s in servers]
|
|
93
|
-
verifylist = [
|
|
94
|
-
('server', arglist),
|
|
95
|
-
]
|
|
96
|
-
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
97
|
-
|
|
98
|
-
result = self.cmd.take_action(parsed_args)
|
|
99
|
-
|
|
100
|
-
calls = [mock.call(s.id) for s in servers]
|
|
101
|
-
method = getattr(self.compute_sdk_client, method_name)
|
|
102
|
-
method.assert_has_calls(calls)
|
|
103
|
-
self.assertIsNone(result)
|
|
104
|
-
|
|
105
81
|
|
|
106
82
|
class TestServerAddFixedIP(TestServer):
|
|
107
83
|
def setUp(self):
|
|
@@ -730,12 +706,15 @@ class TestServerVolume(TestServer):
|
|
|
730
706
|
def setUp(self):
|
|
731
707
|
super().setUp()
|
|
732
708
|
|
|
733
|
-
self.
|
|
734
|
-
self.
|
|
709
|
+
self.server = compute_fakes.create_one_sdk_server()
|
|
710
|
+
self.compute_sdk_client.find_server.return_value = self.server
|
|
711
|
+
|
|
712
|
+
self.volume = volume_fakes.create_one_sdk_volume()
|
|
713
|
+
self.volume_sdk_client.find_volume.return_value = self.volume
|
|
735
714
|
|
|
736
715
|
attrs = {
|
|
737
|
-
'server_id': self.
|
|
738
|
-
'volume_id': self.
|
|
716
|
+
'server_id': self.server.id,
|
|
717
|
+
'volume_id': self.volume.id,
|
|
739
718
|
}
|
|
740
719
|
self.volume_attachment = compute_fakes.create_one_volume_attachment(
|
|
741
720
|
attrs=attrs
|
|
@@ -758,12 +737,12 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
758
737
|
arglist = [
|
|
759
738
|
'--device',
|
|
760
739
|
'/dev/sdb',
|
|
761
|
-
self.
|
|
762
|
-
self.
|
|
740
|
+
self.server.id,
|
|
741
|
+
self.volume.id,
|
|
763
742
|
]
|
|
764
743
|
verifylist = [
|
|
765
|
-
('server', self.
|
|
766
|
-
('volume', self.
|
|
744
|
+
('server', self.server.id),
|
|
745
|
+
('volume', self.volume.id),
|
|
767
746
|
('device', '/dev/sdb'),
|
|
768
747
|
]
|
|
769
748
|
|
|
@@ -782,7 +761,7 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
782
761
|
self.assertEqual(expected_columns, columns)
|
|
783
762
|
self.assertEqual(expected_data, data)
|
|
784
763
|
self.compute_sdk_client.create_volume_attachment.assert_called_once_with(
|
|
785
|
-
self.
|
|
764
|
+
self.server, volumeId=self.volume.id, device='/dev/sdb'
|
|
786
765
|
)
|
|
787
766
|
|
|
788
767
|
def test_server_add_volume_with_tag(self):
|
|
@@ -793,12 +772,12 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
793
772
|
'/dev/sdb',
|
|
794
773
|
'--tag',
|
|
795
774
|
'foo',
|
|
796
|
-
self.
|
|
797
|
-
self.
|
|
775
|
+
self.server.id,
|
|
776
|
+
self.volume.id,
|
|
798
777
|
]
|
|
799
778
|
verifylist = [
|
|
800
|
-
('server', self.
|
|
801
|
-
('volume', self.
|
|
779
|
+
('server', self.server.id),
|
|
780
|
+
('volume', self.volume.id),
|
|
802
781
|
('device', '/dev/sdb'),
|
|
803
782
|
('tag', 'foo'),
|
|
804
783
|
]
|
|
@@ -819,8 +798,8 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
819
798
|
self.assertEqual(expected_columns, columns)
|
|
820
799
|
self.assertEqual(expected_data, data)
|
|
821
800
|
self.compute_sdk_client.create_volume_attachment.assert_called_once_with(
|
|
822
|
-
self.
|
|
823
|
-
volumeId=self.
|
|
801
|
+
self.server,
|
|
802
|
+
volumeId=self.volume.id,
|
|
824
803
|
device='/dev/sdb',
|
|
825
804
|
tag='foo',
|
|
826
805
|
)
|
|
@@ -829,14 +808,14 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
829
808
|
self.set_compute_api_version('2.48')
|
|
830
809
|
|
|
831
810
|
arglist = [
|
|
832
|
-
self.
|
|
833
|
-
self.
|
|
811
|
+
self.server.id,
|
|
812
|
+
self.volume.id,
|
|
834
813
|
'--tag',
|
|
835
814
|
'foo',
|
|
836
815
|
]
|
|
837
816
|
verifylist = [
|
|
838
|
-
('server', self.
|
|
839
|
-
('volume', self.
|
|
817
|
+
('server', self.server.id),
|
|
818
|
+
('volume', self.volume.id),
|
|
840
819
|
('tag', 'foo'),
|
|
841
820
|
]
|
|
842
821
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -856,13 +835,13 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
856
835
|
'--enable-delete-on-termination',
|
|
857
836
|
'--device',
|
|
858
837
|
'/dev/sdb',
|
|
859
|
-
self.
|
|
860
|
-
self.
|
|
838
|
+
self.server.id,
|
|
839
|
+
self.volume.id,
|
|
861
840
|
]
|
|
862
841
|
|
|
863
842
|
verifylist = [
|
|
864
|
-
('server', self.
|
|
865
|
-
('volume', self.
|
|
843
|
+
('server', self.server.id),
|
|
844
|
+
('volume', self.volume.id),
|
|
866
845
|
('device', '/dev/sdb'),
|
|
867
846
|
('enable_delete_on_termination', True),
|
|
868
847
|
]
|
|
@@ -889,8 +868,8 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
889
868
|
self.assertEqual(expected_columns, columns)
|
|
890
869
|
self.assertEqual(expected_data, data)
|
|
891
870
|
self.compute_sdk_client.create_volume_attachment.assert_called_once_with(
|
|
892
|
-
self.
|
|
893
|
-
volumeId=self.
|
|
871
|
+
self.server,
|
|
872
|
+
volumeId=self.volume.id,
|
|
894
873
|
device='/dev/sdb',
|
|
895
874
|
delete_on_termination=True,
|
|
896
875
|
)
|
|
@@ -904,13 +883,13 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
904
883
|
'--disable-delete-on-termination',
|
|
905
884
|
'--device',
|
|
906
885
|
'/dev/sdb',
|
|
907
|
-
self.
|
|
908
|
-
self.
|
|
886
|
+
self.server.id,
|
|
887
|
+
self.volume.id,
|
|
909
888
|
]
|
|
910
889
|
|
|
911
890
|
verifylist = [
|
|
912
|
-
('server', self.
|
|
913
|
-
('volume', self.
|
|
891
|
+
('server', self.server.id),
|
|
892
|
+
('volume', self.volume.id),
|
|
914
893
|
('device', '/dev/sdb'),
|
|
915
894
|
('disable_delete_on_termination', True),
|
|
916
895
|
]
|
|
@@ -938,8 +917,8 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
938
917
|
self.assertEqual(expected_columns, columns)
|
|
939
918
|
self.assertEqual(expected_data, data)
|
|
940
919
|
self.compute_sdk_client.create_volume_attachment.assert_called_once_with(
|
|
941
|
-
self.
|
|
942
|
-
volumeId=self.
|
|
920
|
+
self.server,
|
|
921
|
+
volumeId=self.volume.id,
|
|
943
922
|
device='/dev/sdb',
|
|
944
923
|
delete_on_termination=False,
|
|
945
924
|
)
|
|
@@ -950,13 +929,13 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
950
929
|
self.set_compute_api_version('2.78')
|
|
951
930
|
|
|
952
931
|
arglist = [
|
|
953
|
-
self.
|
|
954
|
-
self.
|
|
932
|
+
self.server.id,
|
|
933
|
+
self.volume.id,
|
|
955
934
|
'--enable-delete-on-termination',
|
|
956
935
|
]
|
|
957
936
|
verifylist = [
|
|
958
|
-
('server', self.
|
|
959
|
-
('volume', self.
|
|
937
|
+
('server', self.server.id),
|
|
938
|
+
('volume', self.volume.id),
|
|
960
939
|
('enable_delete_on_termination', True),
|
|
961
940
|
]
|
|
962
941
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -974,13 +953,13 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
974
953
|
self.set_compute_api_version('2.78')
|
|
975
954
|
|
|
976
955
|
arglist = [
|
|
977
|
-
self.
|
|
978
|
-
self.
|
|
956
|
+
self.server.id,
|
|
957
|
+
self.volume.id,
|
|
979
958
|
'--disable-delete-on-termination',
|
|
980
959
|
]
|
|
981
960
|
verifylist = [
|
|
982
|
-
('server', self.
|
|
983
|
-
('volume', self.
|
|
961
|
+
('server', self.server.id),
|
|
962
|
+
('volume', self.volume.id),
|
|
984
963
|
('disable_delete_on_termination', True),
|
|
985
964
|
]
|
|
986
965
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -1002,13 +981,13 @@ class TestServerAddVolume(TestServerVolume):
|
|
|
1002
981
|
'--disable-delete-on-termination',
|
|
1003
982
|
'--device',
|
|
1004
983
|
'/dev/sdb',
|
|
1005
|
-
self.
|
|
1006
|
-
self.
|
|
984
|
+
self.server.id,
|
|
985
|
+
self.volume.id,
|
|
1007
986
|
]
|
|
1008
987
|
|
|
1009
988
|
verifylist = [
|
|
1010
|
-
('server', self.
|
|
1011
|
-
('volume', self.
|
|
989
|
+
('server', self.server.id),
|
|
990
|
+
('volume', self.volume.id),
|
|
1012
991
|
('device', '/dev/sdb'),
|
|
1013
992
|
('enable_delete_on_termination', True),
|
|
1014
993
|
('disable_delete_on_termination', True),
|
|
@@ -1036,13 +1015,13 @@ class TestServerRemoveVolume(TestServerVolume):
|
|
|
1036
1015
|
|
|
1037
1016
|
def test_server_remove_volume(self):
|
|
1038
1017
|
arglist = [
|
|
1039
|
-
self.
|
|
1040
|
-
self.
|
|
1018
|
+
self.server.id,
|
|
1019
|
+
self.volume.id,
|
|
1041
1020
|
]
|
|
1042
1021
|
|
|
1043
1022
|
verifylist = [
|
|
1044
|
-
('server', self.
|
|
1045
|
-
('volume', self.
|
|
1023
|
+
('server', self.server.id),
|
|
1024
|
+
('volume', self.volume.id),
|
|
1046
1025
|
]
|
|
1047
1026
|
|
|
1048
1027
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -1051,8 +1030,8 @@ class TestServerRemoveVolume(TestServerVolume):
|
|
|
1051
1030
|
|
|
1052
1031
|
self.assertIsNone(result)
|
|
1053
1032
|
self.compute_sdk_client.delete_volume_attachment.assert_called_once_with(
|
|
1054
|
-
self.
|
|
1055
|
-
self.
|
|
1033
|
+
self.volume,
|
|
1034
|
+
self.server,
|
|
1056
1035
|
ignore_missing=False,
|
|
1057
1036
|
)
|
|
1058
1037
|
|
|
@@ -1166,7 +1145,7 @@ class TestServerAddSecurityGroup(compute_fakes.TestComputev2):
|
|
|
1166
1145
|
arglist = [self.server.id, 'fake_sg']
|
|
1167
1146
|
verifylist = [
|
|
1168
1147
|
('server', self.server.id),
|
|
1169
|
-
('
|
|
1148
|
+
('security_groups', ['fake_sg']),
|
|
1170
1149
|
]
|
|
1171
1150
|
|
|
1172
1151
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -1197,7 +1176,7 @@ class TestServerAddSecurityGroup(compute_fakes.TestComputev2):
|
|
|
1197
1176
|
arglist = [self.server.id, 'fake_sg']
|
|
1198
1177
|
verifylist = [
|
|
1199
1178
|
('server', self.server.id),
|
|
1200
|
-
('
|
|
1179
|
+
('security_groups', ['fake_sg']),
|
|
1201
1180
|
]
|
|
1202
1181
|
|
|
1203
1182
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -1429,7 +1408,7 @@ class TestServerCreate(TestServer):
|
|
|
1429
1408
|
('flavor', self.flavor.id),
|
|
1430
1409
|
('key_name', 'keyname'),
|
|
1431
1410
|
('properties', {'Beta': 'b'}),
|
|
1432
|
-
('
|
|
1411
|
+
('security_groups', [security_group.id]),
|
|
1433
1412
|
('hints', {'a': ['b', 'c']}),
|
|
1434
1413
|
('server_group', server_group.id),
|
|
1435
1414
|
('config_drive', True),
|
|
@@ -1499,7 +1478,7 @@ class TestServerCreate(TestServer):
|
|
|
1499
1478
|
('image', self.image.id),
|
|
1500
1479
|
('flavor', self.flavor.id),
|
|
1501
1480
|
('key_name', 'keyname'),
|
|
1502
|
-
('
|
|
1481
|
+
('security_groups', ['not_exist_sg']),
|
|
1503
1482
|
('server_name', self.server.name),
|
|
1504
1483
|
]
|
|
1505
1484
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -1525,7 +1504,7 @@ class TestServerCreate(TestServer):
|
|
|
1525
1504
|
verifylist = [
|
|
1526
1505
|
('image', self.image.id),
|
|
1527
1506
|
('flavor', self.flavor.id),
|
|
1528
|
-
('
|
|
1507
|
+
('security_groups', [sg_name]),
|
|
1529
1508
|
('server_name', self.server.name),
|
|
1530
1509
|
]
|
|
1531
1510
|
|
|
@@ -5476,14 +5455,28 @@ class TestServerListV273(_TestServerList):
|
|
|
5476
5455
|
self.assertEqual(expected_row, partial_server)
|
|
5477
5456
|
|
|
5478
5457
|
|
|
5479
|
-
class
|
|
5480
|
-
def
|
|
5481
|
-
|
|
5458
|
+
class TestServerAction(compute_fakes.TestComputev2):
|
|
5459
|
+
def run_method_with_sdk_servers(self, method_name, server_count):
|
|
5460
|
+
servers = compute_fakes.create_sdk_servers(count=server_count)
|
|
5461
|
+
self.compute_sdk_client.find_server.side_effect = servers
|
|
5482
5462
|
|
|
5483
|
-
|
|
5463
|
+
arglist = [s.id for s in servers]
|
|
5464
|
+
verifylist = [
|
|
5465
|
+
('server', arglist),
|
|
5466
|
+
]
|
|
5484
5467
|
|
|
5485
|
-
self.
|
|
5486
|
-
self.
|
|
5468
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5469
|
+
result = self.cmd.take_action(parsed_args)
|
|
5470
|
+
|
|
5471
|
+
calls = [mock.call(s.id) for s in servers]
|
|
5472
|
+
method = getattr(self.compute_sdk_client, method_name)
|
|
5473
|
+
method.assert_has_calls(calls)
|
|
5474
|
+
self.assertIsNone(result)
|
|
5475
|
+
|
|
5476
|
+
|
|
5477
|
+
class TestServerLock(TestServerAction):
|
|
5478
|
+
def setUp(self):
|
|
5479
|
+
super().setUp()
|
|
5487
5480
|
|
|
5488
5481
|
# Get the command object to test
|
|
5489
5482
|
self.cmd = server.LockServer(self.app, None)
|
|
@@ -5497,6 +5490,10 @@ class TestServerLock(TestServer):
|
|
|
5497
5490
|
def test_server_lock_with_reason(self):
|
|
5498
5491
|
self.set_compute_api_version('2.73')
|
|
5499
5492
|
|
|
5493
|
+
self.server = compute_fakes.create_one_sdk_server()
|
|
5494
|
+
self.compute_sdk_client.find_server.return_value = self.server
|
|
5495
|
+
self.compute_sdk_client.lock_server.return_value = None
|
|
5496
|
+
|
|
5500
5497
|
arglist = [
|
|
5501
5498
|
self.server.id,
|
|
5502
5499
|
'--reason',
|
|
@@ -5506,8 +5503,10 @@ class TestServerLock(TestServer):
|
|
|
5506
5503
|
('server', [self.server.id]),
|
|
5507
5504
|
('reason', 'blah'),
|
|
5508
5505
|
]
|
|
5506
|
+
|
|
5509
5507
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5510
5508
|
self.cmd.take_action(parsed_args)
|
|
5509
|
+
|
|
5511
5510
|
self.compute_sdk_client.find_server.assert_called_with(
|
|
5512
5511
|
self.server.id,
|
|
5513
5512
|
ignore_missing=False,
|
|
@@ -5520,30 +5519,38 @@ class TestServerLock(TestServer):
|
|
|
5520
5519
|
def test_server_lock_with_reason_multi_servers(self):
|
|
5521
5520
|
self.set_compute_api_version('2.73')
|
|
5522
5521
|
|
|
5523
|
-
|
|
5522
|
+
server_a = compute_fakes.create_one_sdk_server()
|
|
5523
|
+
server_b = compute_fakes.create_one_sdk_server()
|
|
5524
|
+
|
|
5525
|
+
self.compute_sdk_client.find_server.side_effect = [server_a, server_b]
|
|
5526
|
+
self.compute_sdk_client.lock_server.return_value = None
|
|
5524
5527
|
arglist = [
|
|
5525
|
-
|
|
5526
|
-
|
|
5528
|
+
server_a.id,
|
|
5529
|
+
server_b.id,
|
|
5527
5530
|
'--reason',
|
|
5528
5531
|
'choo..choo',
|
|
5529
5532
|
]
|
|
5530
5533
|
verifylist = [
|
|
5531
|
-
('server', [
|
|
5534
|
+
('server', [server_a.id, server_b.id]),
|
|
5532
5535
|
('reason', 'choo..choo'),
|
|
5533
5536
|
]
|
|
5537
|
+
|
|
5534
5538
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5535
5539
|
self.cmd.take_action(parsed_args)
|
|
5540
|
+
|
|
5536
5541
|
self.assertEqual(2, self.compute_sdk_client.find_server.call_count)
|
|
5537
|
-
self.compute_sdk_client.lock_server.
|
|
5538
|
-
|
|
5539
|
-
|
|
5542
|
+
self.compute_sdk_client.lock_server.assert_has_calls(
|
|
5543
|
+
[
|
|
5544
|
+
mock.call(server_a.id, locked_reason="choo..choo"),
|
|
5545
|
+
mock.call(server_b.id, locked_reason="choo..choo"),
|
|
5546
|
+
]
|
|
5540
5547
|
)
|
|
5541
|
-
self.assertEqual(2, self.compute_sdk_client.lock_server.call_count)
|
|
5542
5548
|
|
|
5543
5549
|
def test_server_lock_with_reason_pre_v273(self):
|
|
5544
5550
|
self.set_compute_api_version('2.72')
|
|
5545
5551
|
|
|
5546
5552
|
server = compute_fakes.create_one_sdk_server()
|
|
5553
|
+
|
|
5547
5554
|
arglist = [
|
|
5548
5555
|
server.id,
|
|
5549
5556
|
'--reason',
|
|
@@ -5553,6 +5560,7 @@ class TestServerLock(TestServer):
|
|
|
5553
5560
|
('server', [server.id]),
|
|
5554
5561
|
('reason', "blah"),
|
|
5555
5562
|
]
|
|
5563
|
+
|
|
5556
5564
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
5557
5565
|
ex = self.assertRaises(
|
|
5558
5566
|
exceptions.CommandError,
|
|
@@ -6089,7 +6097,7 @@ class TestServerReboot(TestServer):
|
|
|
6089
6097
|
)
|
|
6090
6098
|
|
|
6091
6099
|
|
|
6092
|
-
class TestServerPause(
|
|
6100
|
+
class TestServerPause(TestServerAction):
|
|
6093
6101
|
def setUp(self):
|
|
6094
6102
|
super().setUp()
|
|
6095
6103
|
|
|
@@ -7363,9 +7371,7 @@ class TestServerRemoveSecurityGroup(TestServer):
|
|
|
7363
7371
|
|
|
7364
7372
|
self.server = compute_fakes.create_one_sdk_server()
|
|
7365
7373
|
self.compute_sdk_client.find_server.return_value = self.server
|
|
7366
|
-
self.compute_sdk_client.remove_security_group_from_server.return_value =
|
|
7367
|
-
None
|
|
7368
|
-
)
|
|
7374
|
+
self.compute_sdk_client.remove_security_group_from_server.return_value = None
|
|
7369
7375
|
|
|
7370
7376
|
# Get the command object to test
|
|
7371
7377
|
self.cmd = server.RemoveServerSecurityGroup(self.app, None)
|
|
@@ -7374,7 +7380,7 @@ class TestServerRemoveSecurityGroup(TestServer):
|
|
|
7374
7380
|
arglist = [self.server.id, 'fake_sg']
|
|
7375
7381
|
verifylist = [
|
|
7376
7382
|
('server', self.server.id),
|
|
7377
|
-
('
|
|
7383
|
+
('security_groups', ['fake_sg']),
|
|
7378
7384
|
]
|
|
7379
7385
|
|
|
7380
7386
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -7405,7 +7411,7 @@ class TestServerRemoveSecurityGroup(TestServer):
|
|
|
7405
7411
|
arglist = [self.server.id, 'fake_sg']
|
|
7406
7412
|
verifylist = [
|
|
7407
7413
|
('server', self.server.id),
|
|
7408
|
-
('
|
|
7414
|
+
('security_groups', ['fake_sg']),
|
|
7409
7415
|
]
|
|
7410
7416
|
|
|
7411
7417
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -7830,7 +7836,7 @@ class TestServerRevertMigration(compute_fakes.TestComputev2):
|
|
|
7830
7836
|
self.assertIsNone(result)
|
|
7831
7837
|
|
|
7832
7838
|
|
|
7833
|
-
class TestServerRestore(
|
|
7839
|
+
class TestServerRestore(TestServerAction):
|
|
7834
7840
|
def setUp(self):
|
|
7835
7841
|
super().setUp()
|
|
7836
7842
|
|
|
@@ -7844,7 +7850,7 @@ class TestServerRestore(TestServer):
|
|
|
7844
7850
|
self.run_method_with_sdk_servers('restore_server', 3)
|
|
7845
7851
|
|
|
7846
7852
|
|
|
7847
|
-
class TestServerResume(
|
|
7853
|
+
class TestServerResume(TestServerAction):
|
|
7848
7854
|
def setUp(self):
|
|
7849
7855
|
super().setUp()
|
|
7850
7856
|
|
|
@@ -8713,7 +8719,7 @@ class TestServerSsh(TestServer):
|
|
|
8713
8719
|
)
|
|
8714
8720
|
|
|
8715
8721
|
|
|
8716
|
-
class TestServerStart(
|
|
8722
|
+
class TestServerStart(TestServerAction):
|
|
8717
8723
|
def setUp(self):
|
|
8718
8724
|
super().setUp()
|
|
8719
8725
|
|
|
@@ -8727,28 +8733,29 @@ class TestServerStart(TestServer):
|
|
|
8727
8733
|
self.run_method_with_sdk_servers('start_server', 3)
|
|
8728
8734
|
|
|
8729
8735
|
def test_server_start_with_all_projects(self):
|
|
8730
|
-
|
|
8736
|
+
server = compute_fakes.create_one_sdk_server()
|
|
8737
|
+
self.compute_sdk_client.find_server.return_value = server
|
|
8731
8738
|
|
|
8732
8739
|
arglist = [
|
|
8733
|
-
|
|
8740
|
+
server.id,
|
|
8734
8741
|
'--all-projects',
|
|
8735
8742
|
]
|
|
8736
8743
|
verifylist = [
|
|
8737
|
-
('server', [
|
|
8744
|
+
('server', [server.id]),
|
|
8738
8745
|
]
|
|
8739
|
-
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8740
8746
|
|
|
8747
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8741
8748
|
self.cmd.take_action(parsed_args)
|
|
8742
8749
|
|
|
8743
8750
|
self.compute_sdk_client.find_server.assert_called_once_with(
|
|
8744
|
-
|
|
8751
|
+
server.id,
|
|
8745
8752
|
ignore_missing=False,
|
|
8746
8753
|
details=False,
|
|
8747
8754
|
all_projects=True,
|
|
8748
8755
|
)
|
|
8749
8756
|
|
|
8750
8757
|
|
|
8751
|
-
class TestServerStop(
|
|
8758
|
+
class TestServerStop(TestServerAction):
|
|
8752
8759
|
def setUp(self):
|
|
8753
8760
|
super().setUp()
|
|
8754
8761
|
|
|
@@ -8762,28 +8769,29 @@ class TestServerStop(TestServer):
|
|
|
8762
8769
|
self.run_method_with_sdk_servers('stop_server', 3)
|
|
8763
8770
|
|
|
8764
8771
|
def test_server_start_with_all_projects(self):
|
|
8765
|
-
|
|
8772
|
+
server = compute_fakes.create_one_sdk_server()
|
|
8773
|
+
self.compute_sdk_client.find_server.return_value = server
|
|
8766
8774
|
|
|
8767
8775
|
arglist = [
|
|
8768
|
-
|
|
8776
|
+
server.id,
|
|
8769
8777
|
'--all-projects',
|
|
8770
8778
|
]
|
|
8771
8779
|
verifylist = [
|
|
8772
|
-
('server', [
|
|
8780
|
+
('server', [server.id]),
|
|
8773
8781
|
]
|
|
8774
|
-
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8775
8782
|
|
|
8783
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
8776
8784
|
self.cmd.take_action(parsed_args)
|
|
8777
8785
|
|
|
8778
8786
|
self.compute_sdk_client.find_server.assert_called_once_with(
|
|
8779
|
-
|
|
8787
|
+
server.id,
|
|
8780
8788
|
ignore_missing=False,
|
|
8781
8789
|
details=False,
|
|
8782
8790
|
all_projects=True,
|
|
8783
8791
|
)
|
|
8784
8792
|
|
|
8785
8793
|
|
|
8786
|
-
class TestServerSuspend(
|
|
8794
|
+
class TestServerSuspend(TestServerAction):
|
|
8787
8795
|
def setUp(self):
|
|
8788
8796
|
super().setUp()
|
|
8789
8797
|
|
|
@@ -8797,7 +8805,7 @@ class TestServerSuspend(TestServer):
|
|
|
8797
8805
|
self.run_method_with_sdk_servers('suspend_server', 3)
|
|
8798
8806
|
|
|
8799
8807
|
|
|
8800
|
-
class TestServerUnlock(
|
|
8808
|
+
class TestServerUnlock(TestServerAction):
|
|
8801
8809
|
def setUp(self):
|
|
8802
8810
|
super().setUp()
|
|
8803
8811
|
|
|
@@ -8811,7 +8819,7 @@ class TestServerUnlock(TestServer):
|
|
|
8811
8819
|
self.run_method_with_sdk_servers('unlock_server', 3)
|
|
8812
8820
|
|
|
8813
8821
|
|
|
8814
|
-
class TestServerUnpause(
|
|
8822
|
+
class TestServerUnpause(TestServerAction):
|
|
8815
8823
|
def setUp(self):
|
|
8816
8824
|
super().setUp()
|
|
8817
8825
|
|