python-openstackclient 7.4.0__py3-none-any.whl → 8.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openstackclient/common/availability_zone.py +3 -6
- openstackclient/common/clientmanager.py +2 -1
- openstackclient/common/envvars.py +57 -0
- openstackclient/common/extension.py +3 -11
- openstackclient/common/limits.py +1 -1
- openstackclient/common/project_cleanup.py +3 -2
- openstackclient/common/quota.py +54 -28
- openstackclient/compute/client.py +7 -5
- openstackclient/compute/v2/agent.py +5 -5
- openstackclient/compute/v2/aggregate.py +17 -15
- openstackclient/compute/v2/console.py +10 -4
- openstackclient/compute/v2/console_connection.py +48 -0
- openstackclient/compute/v2/flavor.py +14 -18
- openstackclient/compute/v2/host.py +3 -3
- openstackclient/compute/v2/hypervisor.py +10 -4
- openstackclient/compute/v2/hypervisor_stats.py +1 -1
- openstackclient/compute/v2/keypair.py +18 -13
- openstackclient/compute/v2/server.py +144 -121
- openstackclient/compute/v2/server_backup.py +1 -1
- openstackclient/compute/v2/server_event.py +8 -17
- openstackclient/compute/v2/server_group.py +6 -6
- openstackclient/compute/v2/server_image.py +1 -1
- openstackclient/compute/v2/server_migration.py +6 -6
- openstackclient/compute/v2/server_volume.py +4 -4
- openstackclient/compute/v2/service.py +9 -13
- openstackclient/compute/v2/usage.py +4 -6
- openstackclient/identity/client.py +2 -4
- openstackclient/identity/common.py +95 -17
- openstackclient/identity/v2_0/ec2creds.py +4 -3
- openstackclient/identity/v2_0/endpoint.py +12 -10
- openstackclient/identity/v2_0/project.py +6 -6
- openstackclient/identity/v2_0/role.py +1 -1
- openstackclient/identity/v2_0/service.py +7 -7
- openstackclient/identity/v2_0/user.py +6 -21
- openstackclient/identity/v3/access_rule.py +2 -5
- openstackclient/identity/v3/application_credential.py +2 -2
- openstackclient/identity/v3/consumer.py +4 -3
- openstackclient/identity/v3/credential.py +6 -7
- openstackclient/identity/v3/domain.py +63 -44
- openstackclient/identity/v3/ec2creds.py +4 -3
- openstackclient/identity/v3/endpoint.py +104 -88
- openstackclient/identity/v3/endpoint_group.py +1 -1
- openstackclient/identity/v3/group.py +116 -72
- openstackclient/identity/v3/identity_provider.py +1 -2
- openstackclient/identity/v3/limit.py +4 -9
- openstackclient/identity/v3/mapping.py +4 -3
- openstackclient/identity/v3/policy.py +5 -8
- openstackclient/identity/v3/project.py +23 -6
- openstackclient/identity/v3/region.py +2 -5
- openstackclient/identity/v3/registered_limit.py +4 -8
- openstackclient/identity/v3/role.py +15 -16
- openstackclient/identity/v3/service.py +8 -8
- openstackclient/identity/v3/service_provider.py +3 -6
- openstackclient/identity/v3/tag.py +2 -2
- openstackclient/identity/v3/token.py +1 -2
- openstackclient/identity/v3/trust.py +74 -25
- openstackclient/identity/v3/user.py +47 -11
- openstackclient/image/client.py +7 -5
- openstackclient/image/v1/image.py +11 -15
- openstackclient/image/v2/cache.py +2 -4
- openstackclient/image/v2/image.py +41 -48
- openstackclient/image/v2/metadef_namespaces.py +4 -3
- openstackclient/image/v2/metadef_resource_type_association.py +1 -2
- openstackclient/image/v2/metadef_resource_types.py +1 -2
- openstackclient/locale/tr_TR/LC_MESSAGES/openstackclient.po +9 -1370
- openstackclient/network/client.py +4 -16
- openstackclient/network/common.py +16 -12
- openstackclient/network/utils.py +3 -3
- openstackclient/network/v2/address_group.py +5 -9
- openstackclient/network/v2/address_scope.py +2 -3
- openstackclient/network/v2/default_security_group_rule.py +1 -2
- openstackclient/network/v2/floating_ip.py +69 -47
- openstackclient/network/v2/floating_ip_port_forwarding.py +7 -7
- openstackclient/network/v2/ip_availability.py +1 -2
- openstackclient/network/v2/l3_conntrack_helper.py +8 -12
- openstackclient/network/v2/local_ip.py +24 -26
- openstackclient/network/v2/local_ip_association.py +4 -5
- openstackclient/network/v2/ndp_proxy.py +9 -10
- openstackclient/network/v2/network.py +12 -16
- openstackclient/network/v2/network_agent.py +29 -37
- openstackclient/network/v2/network_auto_allocated_topology.py +4 -5
- openstackclient/network/v2/network_flavor.py +1 -1
- openstackclient/network/v2/network_flavor_profile.py +5 -5
- openstackclient/network/v2/network_meter.py +3 -3
- openstackclient/network/v2/network_meter_rule.py +5 -8
- openstackclient/network/v2/network_qos_policy.py +4 -4
- openstackclient/network/v2/network_qos_rule.py +7 -16
- openstackclient/network/v2/network_rbac.py +4 -4
- openstackclient/network/v2/network_segment.py +6 -7
- openstackclient/network/v2/network_segment_range.py +16 -20
- openstackclient/network/v2/network_trunk.py +24 -16
- openstackclient/network/v2/port.py +28 -29
- openstackclient/network/v2/router.py +53 -42
- openstackclient/network/v2/security_group.py +13 -19
- openstackclient/network/v2/security_group_rule.py +10 -11
- openstackclient/network/v2/subnet.py +31 -30
- openstackclient/network/v2/subnet_pool.py +4 -4
- openstackclient/object/client.py +2 -3
- openstackclient/object/v1/container.py +2 -3
- openstackclient/object/v1/object.py +2 -9
- openstackclient/shell.py +22 -5
- openstackclient/tests/functional/base.py +7 -3
- openstackclient/tests/functional/common/test_quota.py +3 -1
- openstackclient/tests/functional/compute/v2/common.py +12 -6
- openstackclient/tests/functional/compute/v2/test_keypair.py +41 -5
- openstackclient/tests/functional/compute/v2/test_server.py +2 -3
- openstackclient/tests/functional/compute/v2/test_server_event.py +1 -1
- openstackclient/tests/functional/identity/v2/test_user.py +1 -1
- openstackclient/tests/functional/identity/v3/common.py +3 -8
- openstackclient/tests/functional/identity/v3/test_application_credential.py +10 -10
- openstackclient/tests/functional/identity/v3/test_endpoint.py +3 -3
- openstackclient/tests/functional/identity/v3/test_group.py +3 -3
- openstackclient/tests/functional/identity/v3/test_idp.py +3 -7
- openstackclient/tests/functional/identity/v3/test_limit.py +4 -4
- openstackclient/tests/functional/identity/v3/test_project.py +5 -14
- openstackclient/tests/functional/identity/v3/test_region.py +1 -3
- openstackclient/tests/functional/identity/v3/test_registered_limit.py +3 -3
- openstackclient/tests/functional/identity/v3/test_role.py +1 -1
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +13 -31
- openstackclient/tests/functional/identity/v3/test_service_provider.py +3 -7
- openstackclient/tests/functional/identity/v3/test_user.py +8 -8
- openstackclient/tests/functional/network/v2/common.py +7 -3
- openstackclient/tests/functional/network/v2/test_address_group.py +4 -0
- openstackclient/tests/functional/network/v2/test_l3_conntrack_helper.py +15 -11
- openstackclient/tests/functional/network/v2/test_local_ip.py +4 -0
- openstackclient/tests/functional/network/v2/test_network_meter_rule.py +2 -2
- openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py +2 -3
- openstackclient/tests/functional/network/v2/test_network_rbac.py +2 -2
- openstackclient/tests/functional/network/v2/test_network_trunk.py +1 -1
- openstackclient/tests/functional/network/v2/test_port.py +17 -7
- openstackclient/tests/functional/network/v2/test_router.py +42 -0
- openstackclient/tests/functional/network/v2/test_subnet_pool.py +4 -0
- openstackclient/tests/unit/api/test_compute_v2.py +67 -87
- openstackclient/tests/unit/common/test_availability_zone.py +6 -14
- openstackclient/tests/unit/common/test_command.py +1 -1
- openstackclient/tests/unit/common/test_extension.py +5 -7
- openstackclient/tests/unit/common/test_limits.py +1 -1
- openstackclient/tests/unit/common/test_project_cleanup.py +5 -6
- openstackclient/tests/unit/common/test_quota.py +51 -28
- openstackclient/tests/unit/compute/v2/fakes.py +85 -315
- openstackclient/tests/unit/compute/v2/test_agent.py +16 -16
- openstackclient/tests/unit/compute/v2/test_aggregate.py +56 -60
- openstackclient/tests/unit/compute/v2/test_console.py +34 -17
- openstackclient/tests/unit/compute/v2/test_console_connection.py +72 -0
- openstackclient/tests/unit/compute/v2/test_flavor.py +72 -72
- openstackclient/tests/unit/compute/v2/test_host.py +8 -8
- openstackclient/tests/unit/compute/v2/test_hypervisor.py +22 -30
- openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +2 -2
- openstackclient/tests/unit/compute/v2/test_keypair.py +36 -29
- openstackclient/tests/unit/compute/v2/test_server.py +693 -606
- openstackclient/tests/unit/compute/v2/test_server_backup.py +36 -77
- openstackclient/tests/unit/compute/v2/test_server_event.py +18 -20
- openstackclient/tests/unit/compute/v2/test_server_group.py +25 -31
- openstackclient/tests/unit/compute/v2/test_server_image.py +37 -78
- openstackclient/tests/unit/compute/v2/test_server_migration.py +41 -41
- openstackclient/tests/unit/compute/v2/test_server_volume.py +12 -12
- openstackclient/tests/unit/compute/v2/test_service.py +39 -45
- openstackclient/tests/unit/compute/v2/test_usage.py +5 -5
- openstackclient/tests/unit/identity/v2_0/fakes.py +1 -1
- openstackclient/tests/unit/identity/v3/test_access_rule.py +1 -3
- openstackclient/tests/unit/identity/v3/test_application_credential.py +48 -26
- openstackclient/tests/unit/identity/v3/test_domain.py +115 -105
- openstackclient/tests/unit/identity/v3/test_endpoint.py +167 -172
- openstackclient/tests/unit/identity/v3/test_group.py +353 -202
- openstackclient/tests/unit/identity/v3/test_mappings.py +2 -2
- openstackclient/tests/unit/identity/v3/test_project.py +16 -0
- openstackclient/tests/unit/identity/v3/test_trust.py +5 -2
- openstackclient/tests/unit/identity/v3/test_user.py +102 -6
- openstackclient/tests/unit/image/v1/fakes.py +2 -2
- openstackclient/tests/unit/image/v1/test_image.py +8 -9
- openstackclient/tests/unit/image/v2/test_image.py +84 -46
- openstackclient/tests/unit/integ/cli/test_shell.py +1 -2
- openstackclient/tests/unit/network/test_common.py +2 -2
- openstackclient/tests/unit/network/v2/fakes.py +405 -485
- openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +8 -14
- openstackclient/tests/unit/network/v2/test_floating_ip_network.py +62 -54
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +1 -1
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +2 -2
- openstackclient/tests/unit/network/v2/test_ndp_proxy.py +1 -3
- openstackclient/tests/unit/network/v2/test_network.py +4 -4
- openstackclient/tests/unit/network/v2/test_network_agent.py +15 -29
- openstackclient/tests/unit/network/v2/test_network_compute.py +11 -11
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +16 -19
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +79 -152
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +4 -6
- openstackclient/tests/unit/network/v2/test_network_rbac.py +2 -2
- openstackclient/tests/unit/network/v2/test_network_trunk.py +2 -2
- openstackclient/tests/unit/network/v2/test_port.py +21 -22
- openstackclient/tests/unit/network/v2/test_router.py +130 -51
- openstackclient/tests/unit/network/v2/test_security_group_compute.py +11 -19
- openstackclient/tests/unit/network/v2/test_security_group_network.py +25 -27
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +15 -17
- openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +33 -39
- openstackclient/tests/unit/object/v1/test_object_all.py +4 -3
- openstackclient/tests/unit/test_shell.py +16 -13
- openstackclient/tests/unit/volume/v2/fakes.py +1 -2
- openstackclient/tests/unit/volume/v2/test_service.py +57 -91
- openstackclient/tests/unit/volume/v2/test_volume.py +109 -106
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +141 -148
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +293 -283
- openstackclient/tests/unit/volume/v2/test_volume_transfer_request.py +1 -1
- openstackclient/tests/unit/volume/v3/fakes.py +2 -8
- openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +61 -71
- openstackclient/tests/unit/volume/v3/test_service.py +221 -141
- openstackclient/tests/unit/volume/v3/test_volume.py +131 -120
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +4 -4
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +198 -203
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +683 -49
- openstackclient/tests/unit/volume/v3/test_volume_transfer_request.py +1 -1
- openstackclient/volume/client.py +1 -3
- openstackclient/volume/v2/consistency_group.py +4 -8
- openstackclient/volume/v2/consistency_group_snapshot.py +1 -2
- openstackclient/volume/v2/qos_specs.py +1 -2
- openstackclient/volume/v2/service.py +41 -38
- openstackclient/volume/v2/volume.py +71 -53
- openstackclient/volume/v2/volume_backup.py +15 -10
- openstackclient/volume/v2/volume_snapshot.py +129 -93
- openstackclient/volume/v2/volume_transfer_request.py +0 -3
- openstackclient/volume/v2/volume_type.py +10 -21
- openstackclient/volume/v3/block_storage_cluster.py +3 -3
- openstackclient/volume/v3/block_storage_log_level.py +22 -28
- openstackclient/volume/v3/block_storage_manage.py +1 -3
- openstackclient/volume/v3/service.py +105 -14
- openstackclient/volume/v3/volume.py +218 -58
- openstackclient/volume/v3/volume_attachment.py +3 -2
- openstackclient/volume/v3/volume_backup.py +31 -27
- openstackclient/volume/v3/volume_group.py +2 -1
- openstackclient/volume/v3/volume_group_snapshot.py +2 -1
- openstackclient/volume/v3/volume_snapshot.py +489 -13
- openstackclient/volume/v3/volume_type.py +10 -21
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/AUTHORS +11 -0
- python_openstackclient-8.1.0.dist-info/METADATA +264 -0
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/RECORD +238 -259
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/entry_points.txt +7 -47
- python_openstackclient-8.1.0.dist-info/pbr.json +1 -0
- openstackclient/tests/functional/volume/v1/__init__.py +0 -0
- openstackclient/tests/functional/volume/v1/common.py +0 -35
- openstackclient/tests/functional/volume/v1/test_qos.py +0 -100
- openstackclient/tests/functional/volume/v1/test_service.py +0 -76
- openstackclient/tests/functional/volume/v1/test_snapshot.py +0 -232
- openstackclient/tests/functional/volume/v1/test_transfer_request.py +0 -111
- openstackclient/tests/functional/volume/v1/test_volume.py +0 -228
- openstackclient/tests/functional/volume/v1/test_volume_type.py +0 -213
- openstackclient/tests/unit/volume/v1/__init__.py +0 -0
- openstackclient/tests/unit/volume/v1/fakes.py +0 -615
- openstackclient/tests/unit/volume/v1/test_qos_specs.py +0 -471
- openstackclient/tests/unit/volume/v1/test_service.py +0 -295
- openstackclient/tests/unit/volume/v1/test_transfer_request.py +0 -380
- openstackclient/tests/unit/volume/v1/test_type.py +0 -633
- openstackclient/tests/unit/volume/v1/test_volume.py +0 -1447
- openstackclient/tests/unit/volume/v1/test_volume_backup.py +0 -435
- openstackclient/volume/v1/__init__.py +0 -0
- openstackclient/volume/v1/qos_specs.py +0 -377
- openstackclient/volume/v1/service.py +0 -136
- openstackclient/volume/v1/volume.py +0 -734
- openstackclient/volume/v1/volume_backup.py +0 -302
- openstackclient/volume/v1/volume_snapshot.py +0 -433
- openstackclient/volume/v1/volume_transfer_request.py +0 -200
- openstackclient/volume/v1/volume_type.py +0 -520
- python_openstackclient-7.4.0.dist-info/METADATA +0 -172
- python_openstackclient-7.4.0.dist-info/pbr.json +0 -1
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-7.4.0.dist-info → python_openstackclient-8.1.0.dist-info}/top_level.txt +0 -0
|
@@ -22,24 +22,8 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
|
|
|
22
22
|
from openstackclient.tests.unit.image.v2 import fakes as image_fakes
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
class
|
|
26
|
-
def setup_servers_mock(self, count):
|
|
27
|
-
servers = compute_fakes.create_sdk_servers(
|
|
28
|
-
count=count,
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
# This is the return value for compute_client.find_server()
|
|
32
|
-
self.compute_sdk_client.find_server = compute_fakes.get_servers(
|
|
33
|
-
servers,
|
|
34
|
-
0,
|
|
35
|
-
)
|
|
36
|
-
return servers
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
class TestServerBackupCreate(TestServerBackup):
|
|
40
|
-
# Just return whatever Image is testing with these days
|
|
25
|
+
class TestServerBackupCreate(compute_fakes.TestComputev2):
|
|
41
26
|
def image_columns(self, image):
|
|
42
|
-
# columnlist = tuple(sorted(image.keys()))
|
|
43
27
|
columnlist = (
|
|
44
28
|
'id',
|
|
45
29
|
'name',
|
|
@@ -66,42 +50,27 @@ class TestServerBackupCreate(TestServerBackup):
|
|
|
66
50
|
def setUp(self):
|
|
67
51
|
super().setUp()
|
|
68
52
|
|
|
53
|
+
self.server = compute_fakes.create_one_server()
|
|
54
|
+
self.compute_client.find_server.return_value = self.server
|
|
55
|
+
|
|
56
|
+
self.image = image_fakes.create_one_image(
|
|
57
|
+
{'name': self.server.name, 'status': 'active'}
|
|
58
|
+
)
|
|
59
|
+
self.image_client.find_image.return_value = self.image
|
|
60
|
+
|
|
69
61
|
# Get the command object to test
|
|
70
62
|
self.cmd = server_backup.CreateServerBackup(self.app, None)
|
|
71
63
|
|
|
72
|
-
def setup_images_mock(self, count, servers=None):
|
|
73
|
-
if servers:
|
|
74
|
-
images = image_fakes.create_images(
|
|
75
|
-
attrs={
|
|
76
|
-
'name': servers[0].name,
|
|
77
|
-
'status': 'active',
|
|
78
|
-
},
|
|
79
|
-
count=count,
|
|
80
|
-
)
|
|
81
|
-
else:
|
|
82
|
-
images = image_fakes.create_images(
|
|
83
|
-
attrs={
|
|
84
|
-
'status': 'active',
|
|
85
|
-
},
|
|
86
|
-
count=count,
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
self.image_client.find_image = mock.Mock(side_effect=images)
|
|
90
|
-
return images
|
|
91
|
-
|
|
92
64
|
def test_server_backup_defaults(self):
|
|
93
|
-
servers = self.setup_servers_mock(count=1)
|
|
94
|
-
images = self.setup_images_mock(count=1, servers=servers)
|
|
95
|
-
|
|
96
65
|
arglist = [
|
|
97
|
-
|
|
66
|
+
self.server.id,
|
|
98
67
|
]
|
|
99
68
|
verifylist = [
|
|
100
69
|
('name', None),
|
|
101
70
|
('type', None),
|
|
102
71
|
('rotate', None),
|
|
103
72
|
('wait', False),
|
|
104
|
-
('server',
|
|
73
|
+
('server', self.server.id),
|
|
105
74
|
]
|
|
106
75
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
107
76
|
|
|
@@ -110,20 +79,17 @@ class TestServerBackupCreate(TestServerBackup):
|
|
|
110
79
|
# data to be shown.
|
|
111
80
|
columns, data = self.cmd.take_action(parsed_args)
|
|
112
81
|
|
|
113
|
-
self.
|
|
114
|
-
|
|
115
|
-
|
|
82
|
+
self.compute_client.backup_server.assert_called_with(
|
|
83
|
+
self.server.id,
|
|
84
|
+
self.server.name,
|
|
116
85
|
'',
|
|
117
86
|
1,
|
|
118
87
|
)
|
|
119
88
|
|
|
120
|
-
self.assertEqual(self.image_columns(
|
|
121
|
-
self.assertCountEqual(self.image_data(
|
|
89
|
+
self.assertEqual(self.image_columns(self.image), columns)
|
|
90
|
+
self.assertCountEqual(self.image_data(self.image), data)
|
|
122
91
|
|
|
123
92
|
def test_server_backup_create_options(self):
|
|
124
|
-
servers = self.setup_servers_mock(count=1)
|
|
125
|
-
images = self.setup_images_mock(count=1, servers=servers)
|
|
126
|
-
|
|
127
93
|
arglist = [
|
|
128
94
|
'--name',
|
|
129
95
|
'image',
|
|
@@ -131,13 +97,13 @@ class TestServerBackupCreate(TestServerBackup):
|
|
|
131
97
|
'daily',
|
|
132
98
|
'--rotate',
|
|
133
99
|
'2',
|
|
134
|
-
|
|
100
|
+
self.server.id,
|
|
135
101
|
]
|
|
136
102
|
verifylist = [
|
|
137
103
|
('name', 'image'),
|
|
138
104
|
('type', 'daily'),
|
|
139
105
|
('rotate', 2),
|
|
140
|
-
('server',
|
|
106
|
+
('server', self.server.id),
|
|
141
107
|
]
|
|
142
108
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
143
109
|
|
|
@@ -146,23 +112,19 @@ class TestServerBackupCreate(TestServerBackup):
|
|
|
146
112
|
# data to be shown.
|
|
147
113
|
columns, data = self.cmd.take_action(parsed_args)
|
|
148
114
|
|
|
149
|
-
self.
|
|
150
|
-
|
|
115
|
+
self.compute_client.backup_server.assert_called_with(
|
|
116
|
+
self.server.id,
|
|
151
117
|
'image',
|
|
152
118
|
'daily',
|
|
153
119
|
2,
|
|
154
120
|
)
|
|
155
121
|
|
|
156
|
-
self.assertEqual(self.image_columns(
|
|
157
|
-
self.assertCountEqual(self.image_data(
|
|
122
|
+
self.assertEqual(self.image_columns(self.image), columns)
|
|
123
|
+
self.assertCountEqual(self.image_data(self.image), data)
|
|
158
124
|
|
|
159
125
|
@mock.patch.object(common_utils, 'wait_for_status', return_value=False)
|
|
160
126
|
def test_server_backup_wait_fail(self, mock_wait_for_status):
|
|
161
|
-
|
|
162
|
-
images = self.setup_images_mock(count=1, servers=servers)
|
|
163
|
-
self.image_client.get_image = mock.Mock(
|
|
164
|
-
side_effect=images[0],
|
|
165
|
-
)
|
|
127
|
+
self.image_client.get_image.return_value = self.image
|
|
166
128
|
|
|
167
129
|
arglist = [
|
|
168
130
|
'--name',
|
|
@@ -170,13 +132,13 @@ class TestServerBackupCreate(TestServerBackup):
|
|
|
170
132
|
'--type',
|
|
171
133
|
'daily',
|
|
172
134
|
'--wait',
|
|
173
|
-
|
|
135
|
+
self.server.id,
|
|
174
136
|
]
|
|
175
137
|
verifylist = [
|
|
176
138
|
('name', 'image'),
|
|
177
139
|
('type', 'daily'),
|
|
178
140
|
('wait', True),
|
|
179
|
-
('server',
|
|
141
|
+
('server', self.server.id),
|
|
180
142
|
]
|
|
181
143
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
182
144
|
|
|
@@ -186,24 +148,21 @@ class TestServerBackupCreate(TestServerBackup):
|
|
|
186
148
|
parsed_args,
|
|
187
149
|
)
|
|
188
150
|
|
|
189
|
-
self.
|
|
190
|
-
|
|
151
|
+
self.compute_client.backup_server.assert_called_with(
|
|
152
|
+
self.server.id,
|
|
191
153
|
'image',
|
|
192
154
|
'daily',
|
|
193
155
|
1,
|
|
194
156
|
)
|
|
195
157
|
|
|
196
158
|
mock_wait_for_status.assert_called_once_with(
|
|
197
|
-
self.image_client.get_image,
|
|
159
|
+
self.image_client.get_image, self.image.id, callback=mock.ANY
|
|
198
160
|
)
|
|
199
161
|
|
|
200
162
|
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
|
|
201
163
|
def test_server_backup_wait_ok(self, mock_wait_for_status):
|
|
202
|
-
servers = self.setup_servers_mock(count=1)
|
|
203
|
-
images = self.setup_images_mock(count=1, servers=servers)
|
|
204
|
-
|
|
205
164
|
self.image_client.get_image = mock.Mock(
|
|
206
|
-
side_effect=
|
|
165
|
+
side_effect=self.image,
|
|
207
166
|
)
|
|
208
167
|
|
|
209
168
|
arglist = [
|
|
@@ -212,13 +171,13 @@ class TestServerBackupCreate(TestServerBackup):
|
|
|
212
171
|
'--type',
|
|
213
172
|
'daily',
|
|
214
173
|
'--wait',
|
|
215
|
-
|
|
174
|
+
self.server.id,
|
|
216
175
|
]
|
|
217
176
|
verifylist = [
|
|
218
177
|
('name', 'image'),
|
|
219
178
|
('type', 'daily'),
|
|
220
179
|
('wait', True),
|
|
221
|
-
('server',
|
|
180
|
+
('server', self.server.id),
|
|
222
181
|
]
|
|
223
182
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
224
183
|
|
|
@@ -227,16 +186,16 @@ class TestServerBackupCreate(TestServerBackup):
|
|
|
227
186
|
# data to be shown.
|
|
228
187
|
columns, data = self.cmd.take_action(parsed_args)
|
|
229
188
|
|
|
230
|
-
self.
|
|
231
|
-
|
|
189
|
+
self.compute_client.backup_server.assert_called_with(
|
|
190
|
+
self.server.id,
|
|
232
191
|
'image',
|
|
233
192
|
'daily',
|
|
234
193
|
1,
|
|
235
194
|
)
|
|
236
195
|
|
|
237
196
|
mock_wait_for_status.assert_called_once_with(
|
|
238
|
-
self.image_client.get_image,
|
|
197
|
+
self.image_client.get_image, self.image.id, callback=mock.ANY
|
|
239
198
|
)
|
|
240
199
|
|
|
241
|
-
self.assertEqual(self.image_columns(
|
|
242
|
-
self.assertCountEqual(self.image_data(
|
|
200
|
+
self.assertEqual(self.image_columns(self.image), columns)
|
|
201
|
+
self.assertCountEqual(self.image_data(self.image), data)
|
|
@@ -22,7 +22,7 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
class TestListServerEvent(compute_fakes.TestComputev2):
|
|
25
|
-
fake_server = compute_fakes.
|
|
25
|
+
fake_server = compute_fakes.create_one_server()
|
|
26
26
|
fake_event = compute_fakes.create_one_server_action()
|
|
27
27
|
|
|
28
28
|
columns = (
|
|
@@ -64,8 +64,8 @@ class TestListServerEvent(compute_fakes.TestComputev2):
|
|
|
64
64
|
def setUp(self):
|
|
65
65
|
super().setUp()
|
|
66
66
|
|
|
67
|
-
self.
|
|
68
|
-
self.
|
|
67
|
+
self.compute_client.find_server.return_value = self.fake_server
|
|
68
|
+
self.compute_client.server_actions.return_value = [
|
|
69
69
|
self.fake_event,
|
|
70
70
|
]
|
|
71
71
|
|
|
@@ -83,11 +83,11 @@ class TestListServerEvent(compute_fakes.TestComputev2):
|
|
|
83
83
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
84
84
|
columns, data = self.cmd.take_action(parsed_args)
|
|
85
85
|
|
|
86
|
-
self.
|
|
86
|
+
self.compute_client.find_server.assert_called_with(
|
|
87
87
|
self.fake_server.name,
|
|
88
88
|
ignore_missing=False,
|
|
89
89
|
)
|
|
90
|
-
self.
|
|
90
|
+
self.compute_client.server_actions.assert_called_with(
|
|
91
91
|
self.fake_server.id
|
|
92
92
|
)
|
|
93
93
|
|
|
@@ -107,11 +107,11 @@ class TestListServerEvent(compute_fakes.TestComputev2):
|
|
|
107
107
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
108
108
|
columns, data = self.cmd.take_action(parsed_args)
|
|
109
109
|
|
|
110
|
-
self.
|
|
110
|
+
self.compute_client.find_server.assert_called_with(
|
|
111
111
|
self.fake_server.name,
|
|
112
112
|
ignore_missing=False,
|
|
113
113
|
)
|
|
114
|
-
self.
|
|
114
|
+
self.compute_client.server_actions.assert_called_with(
|
|
115
115
|
self.fake_server.id
|
|
116
116
|
)
|
|
117
117
|
|
|
@@ -134,11 +134,11 @@ class TestListServerEvent(compute_fakes.TestComputev2):
|
|
|
134
134
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
135
135
|
columns, data = self.cmd.take_action(parsed_args)
|
|
136
136
|
|
|
137
|
-
self.
|
|
137
|
+
self.compute_client.find_server.assert_called_with(
|
|
138
138
|
self.fake_server.name,
|
|
139
139
|
ignore_missing=False,
|
|
140
140
|
)
|
|
141
|
-
self.
|
|
141
|
+
self.compute_client.server_actions.assert_called_with(
|
|
142
142
|
self.fake_server.id,
|
|
143
143
|
changes_since='2016-03-04T06:27:59Z',
|
|
144
144
|
)
|
|
@@ -214,11 +214,11 @@ class TestListServerEvent(compute_fakes.TestComputev2):
|
|
|
214
214
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
215
215
|
columns, data = self.cmd.take_action(parsed_args)
|
|
216
216
|
|
|
217
|
-
self.
|
|
217
|
+
self.compute_client.find_server.assert_called_with(
|
|
218
218
|
self.fake_server.name,
|
|
219
219
|
ignore_missing=False,
|
|
220
220
|
)
|
|
221
|
-
self.
|
|
221
|
+
self.compute_client.server_actions.assert_called_with(
|
|
222
222
|
self.fake_server.id,
|
|
223
223
|
changes_before='2016-03-04T06:27:59Z',
|
|
224
224
|
)
|
|
@@ -290,7 +290,7 @@ class TestListServerEvent(compute_fakes.TestComputev2):
|
|
|
290
290
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
291
291
|
self.cmd.take_action(parsed_args)
|
|
292
292
|
|
|
293
|
-
self.
|
|
293
|
+
self.compute_client.server_actions.assert_called_with(
|
|
294
294
|
self.fake_server.id,
|
|
295
295
|
limit=1,
|
|
296
296
|
paginated=False,
|
|
@@ -337,7 +337,7 @@ class TestListServerEvent(compute_fakes.TestComputev2):
|
|
|
337
337
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
338
338
|
self.cmd.take_action(parsed_args)
|
|
339
339
|
|
|
340
|
-
self.
|
|
340
|
+
self.compute_client.server_actions.assert_called_with(
|
|
341
341
|
self.fake_server.id,
|
|
342
342
|
marker='test_event',
|
|
343
343
|
)
|
|
@@ -366,7 +366,7 @@ class TestListServerEvent(compute_fakes.TestComputev2):
|
|
|
366
366
|
|
|
367
367
|
|
|
368
368
|
class TestShowServerEvent(compute_fakes.TestComputev2):
|
|
369
|
-
fake_server = compute_fakes.
|
|
369
|
+
fake_server = compute_fakes.create_one_server()
|
|
370
370
|
fake_event = compute_fakes.create_one_server_action()
|
|
371
371
|
columns = (
|
|
372
372
|
'action',
|
|
@@ -392,10 +392,8 @@ class TestShowServerEvent(compute_fakes.TestComputev2):
|
|
|
392
392
|
def setUp(self):
|
|
393
393
|
super().setUp()
|
|
394
394
|
|
|
395
|
-
self.
|
|
396
|
-
self.
|
|
397
|
-
self.fake_event
|
|
398
|
-
)
|
|
395
|
+
self.compute_client.find_server.return_value = self.fake_server
|
|
396
|
+
self.compute_client.get_server_action.return_value = self.fake_event
|
|
399
397
|
|
|
400
398
|
self.cmd = server_event.ShowServerEvent(self.app, None)
|
|
401
399
|
|
|
@@ -412,11 +410,11 @@ class TestShowServerEvent(compute_fakes.TestComputev2):
|
|
|
412
410
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
413
411
|
columns, data = self.cmd.take_action(parsed_args)
|
|
414
412
|
|
|
415
|
-
self.
|
|
413
|
+
self.compute_client.find_server.assert_called_with(
|
|
416
414
|
self.fake_server.name,
|
|
417
415
|
ignore_missing=False,
|
|
418
416
|
)
|
|
419
|
-
self.
|
|
417
|
+
self.compute_client.get_server_action.assert_called_with(
|
|
420
418
|
self.fake_event.request_id,
|
|
421
419
|
self.fake_server.id,
|
|
422
420
|
)
|
|
@@ -55,7 +55,7 @@ class TestServerGroupCreate(TestServerGroup):
|
|
|
55
55
|
def setUp(self):
|
|
56
56
|
super().setUp()
|
|
57
57
|
|
|
58
|
-
self.
|
|
58
|
+
self.compute_client.create_server_group.return_value = (
|
|
59
59
|
self.fake_server_group
|
|
60
60
|
)
|
|
61
61
|
self.cmd = server_group.CreateServerGroup(self.app, None)
|
|
@@ -74,7 +74,7 @@ class TestServerGroupCreate(TestServerGroup):
|
|
|
74
74
|
]
|
|
75
75
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
76
76
|
columns, data = self.cmd.take_action(parsed_args)
|
|
77
|
-
self.
|
|
77
|
+
self.compute_client.create_server_group.assert_called_once_with(
|
|
78
78
|
name=parsed_args.name,
|
|
79
79
|
policy=parsed_args.policy,
|
|
80
80
|
)
|
|
@@ -96,7 +96,7 @@ class TestServerGroupCreate(TestServerGroup):
|
|
|
96
96
|
]
|
|
97
97
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
98
98
|
columns, data = self.cmd.take_action(parsed_args)
|
|
99
|
-
self.
|
|
99
|
+
self.compute_client.create_server_group.assert_called_once_with(
|
|
100
100
|
name=parsed_args.name,
|
|
101
101
|
policy=parsed_args.policy,
|
|
102
102
|
)
|
|
@@ -141,7 +141,7 @@ class TestServerGroupCreate(TestServerGroup):
|
|
|
141
141
|
]
|
|
142
142
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
143
143
|
columns, data = self.cmd.take_action(parsed_args)
|
|
144
|
-
self.
|
|
144
|
+
self.compute_client.create_server_group.assert_called_once_with(
|
|
145
145
|
name=parsed_args.name,
|
|
146
146
|
policy=parsed_args.policy,
|
|
147
147
|
rules=parsed_args.rules,
|
|
@@ -179,7 +179,7 @@ class TestServerGroupDelete(TestServerGroup):
|
|
|
179
179
|
def setUp(self):
|
|
180
180
|
super().setUp()
|
|
181
181
|
|
|
182
|
-
self.
|
|
182
|
+
self.compute_client.find_server_group.return_value = (
|
|
183
183
|
self.fake_server_group
|
|
184
184
|
)
|
|
185
185
|
self.cmd = server_group.DeleteServerGroup(self.app, None)
|
|
@@ -193,10 +193,10 @@ class TestServerGroupDelete(TestServerGroup):
|
|
|
193
193
|
]
|
|
194
194
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
195
195
|
result = self.cmd.take_action(parsed_args)
|
|
196
|
-
self.
|
|
196
|
+
self.compute_client.find_server_group.assert_called_once_with(
|
|
197
197
|
'affinity_group', ignore_missing=False
|
|
198
198
|
)
|
|
199
|
-
self.
|
|
199
|
+
self.compute_client.delete_server_group.assert_called_once_with(
|
|
200
200
|
self.fake_server_group.id
|
|
201
201
|
)
|
|
202
202
|
self.assertIsNone(result)
|
|
@@ -208,21 +208,17 @@ class TestServerGroupDelete(TestServerGroup):
|
|
|
208
208
|
]
|
|
209
209
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
210
210
|
result = self.cmd.take_action(parsed_args)
|
|
211
|
-
self.
|
|
211
|
+
self.compute_client.find_server_group.assert_any_call(
|
|
212
212
|
'affinity_group', ignore_missing=False
|
|
213
213
|
)
|
|
214
|
-
self.
|
|
214
|
+
self.compute_client.find_server_group.assert_any_call(
|
|
215
215
|
'anti_affinity_group', ignore_missing=False
|
|
216
216
|
)
|
|
217
|
-
self.
|
|
217
|
+
self.compute_client.delete_server_group.assert_called_with(
|
|
218
218
|
self.fake_server_group.id
|
|
219
219
|
)
|
|
220
|
-
self.assertEqual(
|
|
221
|
-
|
|
222
|
-
)
|
|
223
|
-
self.assertEqual(
|
|
224
|
-
2, self.compute_sdk_client.delete_server_group.call_count
|
|
225
|
-
)
|
|
220
|
+
self.assertEqual(2, self.compute_client.find_server_group.call_count)
|
|
221
|
+
self.assertEqual(2, self.compute_client.delete_server_group.call_count)
|
|
226
222
|
self.assertIsNone(result)
|
|
227
223
|
|
|
228
224
|
def test_server_group_delete_no_input(self):
|
|
@@ -243,7 +239,7 @@ class TestServerGroupDelete(TestServerGroup):
|
|
|
243
239
|
]
|
|
244
240
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
245
241
|
|
|
246
|
-
self.
|
|
242
|
+
self.compute_client.find_server_group.side_effect = [
|
|
247
243
|
self.fake_server_group,
|
|
248
244
|
exceptions.CommandError,
|
|
249
245
|
]
|
|
@@ -253,16 +249,14 @@ class TestServerGroupDelete(TestServerGroup):
|
|
|
253
249
|
except exceptions.CommandError as e:
|
|
254
250
|
self.assertEqual('1 of 2 server groups failed to delete.', str(e))
|
|
255
251
|
|
|
256
|
-
self.
|
|
252
|
+
self.compute_client.find_server_group.assert_any_call(
|
|
257
253
|
'affinity_group', ignore_missing=False
|
|
258
254
|
)
|
|
259
|
-
self.
|
|
255
|
+
self.compute_client.find_server_group.assert_any_call(
|
|
260
256
|
'anti_affinity_group', ignore_missing=False
|
|
261
257
|
)
|
|
262
|
-
self.assertEqual(
|
|
263
|
-
|
|
264
|
-
)
|
|
265
|
-
self.compute_sdk_client.delete_server_group.assert_called_once_with(
|
|
258
|
+
self.assertEqual(2, self.compute_client.find_server_group.call_count)
|
|
259
|
+
self.compute_client.delete_server_group.assert_called_once_with(
|
|
266
260
|
self.fake_server_group.id
|
|
267
261
|
)
|
|
268
262
|
|
|
@@ -271,7 +265,7 @@ class TestServerGroupList(TestServerGroup):
|
|
|
271
265
|
def setUp(self):
|
|
272
266
|
super().setUp()
|
|
273
267
|
|
|
274
|
-
self.
|
|
268
|
+
self.compute_client.server_groups.return_value = [
|
|
275
269
|
self.fake_server_group
|
|
276
270
|
]
|
|
277
271
|
self.cmd = server_group.ListServerGroup(self.app, None)
|
|
@@ -287,7 +281,7 @@ class TestServerGroupList(TestServerGroup):
|
|
|
287
281
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
288
282
|
columns, data = self.cmd.take_action(parsed_args)
|
|
289
283
|
|
|
290
|
-
self.
|
|
284
|
+
self.compute_client.server_groups.assert_called_once_with()
|
|
291
285
|
|
|
292
286
|
expected_columns = (
|
|
293
287
|
'ID',
|
|
@@ -318,7 +312,7 @@ class TestServerGroupList(TestServerGroup):
|
|
|
318
312
|
]
|
|
319
313
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
320
314
|
columns, data = self.cmd.take_action(parsed_args)
|
|
321
|
-
self.
|
|
315
|
+
self.compute_client.server_groups.assert_called_once_with(
|
|
322
316
|
all_projects=True
|
|
323
317
|
)
|
|
324
318
|
|
|
@@ -359,7 +353,7 @@ class TestServerGroupList(TestServerGroup):
|
|
|
359
353
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
360
354
|
self.cmd.take_action(parsed_args)
|
|
361
355
|
|
|
362
|
-
self.
|
|
356
|
+
self.compute_client.server_groups.assert_called_once_with(limit=1)
|
|
363
357
|
|
|
364
358
|
def test_server_group_list_with_offset(self):
|
|
365
359
|
arglist = [
|
|
@@ -376,7 +370,7 @@ class TestServerGroupList(TestServerGroup):
|
|
|
376
370
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
377
371
|
self.cmd.take_action(parsed_args)
|
|
378
372
|
|
|
379
|
-
self.
|
|
373
|
+
self.compute_client.server_groups.assert_called_once_with(offset=5)
|
|
380
374
|
|
|
381
375
|
def test_server_group_list_v264(self):
|
|
382
376
|
self.set_compute_api_version('2.64')
|
|
@@ -388,7 +382,7 @@ class TestServerGroupList(TestServerGroup):
|
|
|
388
382
|
]
|
|
389
383
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
390
384
|
columns, data = self.cmd.take_action(parsed_args)
|
|
391
|
-
self.
|
|
385
|
+
self.compute_client.server_groups.assert_called_once_with()
|
|
392
386
|
|
|
393
387
|
expected_columns = (
|
|
394
388
|
'ID',
|
|
@@ -419,7 +413,7 @@ class TestServerGroupList(TestServerGroup):
|
|
|
419
413
|
]
|
|
420
414
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
421
415
|
columns, data = self.cmd.take_action(parsed_args)
|
|
422
|
-
self.
|
|
416
|
+
self.compute_client.server_groups.assert_called_once_with(
|
|
423
417
|
all_projects=True
|
|
424
418
|
)
|
|
425
419
|
|
|
@@ -450,7 +444,7 @@ class TestServerGroupShow(TestServerGroup):
|
|
|
450
444
|
def setUp(self):
|
|
451
445
|
super().setUp()
|
|
452
446
|
|
|
453
|
-
self.
|
|
447
|
+
self.compute_client.find_server_group.return_value = (
|
|
454
448
|
self.fake_server_group
|
|
455
449
|
)
|
|
456
450
|
self.cmd = server_group.ShowServerGroup(self.app, None)
|