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
|
@@ -320,7 +320,7 @@ class TestCreatePort(TestPort):
|
|
|
320
320
|
self.assertCountEqual(self.data, data)
|
|
321
321
|
|
|
322
322
|
def test_create_with_security_group(self):
|
|
323
|
-
secgroup = network_fakes.
|
|
323
|
+
secgroup = network_fakes.create_one_security_group()
|
|
324
324
|
self.network_client.find_security_group = mock.Mock(
|
|
325
325
|
return_value=secgroup
|
|
326
326
|
)
|
|
@@ -391,8 +391,8 @@ class TestCreatePort(TestPort):
|
|
|
391
391
|
self.assertCountEqual(self.data, data)
|
|
392
392
|
|
|
393
393
|
def test_create_with_security_groups(self):
|
|
394
|
-
sg_1 = network_fakes.
|
|
395
|
-
sg_2 = network_fakes.
|
|
394
|
+
sg_1 = network_fakes.create_one_security_group()
|
|
395
|
+
sg_2 = network_fakes.create_one_security_group()
|
|
396
396
|
self.network_client.find_security_group = mock.Mock(
|
|
397
397
|
side_effect=[sg_1, sg_2]
|
|
398
398
|
)
|
|
@@ -582,7 +582,7 @@ class TestCreatePort(TestPort):
|
|
|
582
582
|
self.assertCountEqual(self.data, data)
|
|
583
583
|
|
|
584
584
|
def test_create_port_with_qos(self):
|
|
585
|
-
qos_policy = network_fakes.
|
|
585
|
+
qos_policy = network_fakes.create_one_qos_policy()
|
|
586
586
|
self.network_client.find_qos_policy = mock.Mock(
|
|
587
587
|
return_value=qos_policy
|
|
588
588
|
)
|
|
@@ -807,8 +807,7 @@ class TestCreatePort(TestPort):
|
|
|
807
807
|
extra_dhcp_options = [
|
|
808
808
|
{
|
|
809
809
|
'opt_name': 'classless-static-route',
|
|
810
|
-
'opt_value': '169.254.169.254/32,22.2.0.2,'
|
|
811
|
-
'0.0.0.0/0,22.2.0.1',
|
|
810
|
+
'opt_value': '169.254.169.254/32,22.2.0.2,0.0.0.0/0,22.2.0.1',
|
|
812
811
|
'ip_version': '4',
|
|
813
812
|
},
|
|
814
813
|
{
|
|
@@ -826,7 +825,7 @@ class TestCreatePort(TestPort):
|
|
|
826
825
|
'0.0.0.0/0,22.2.0.1,'
|
|
827
826
|
'ip-version=4',
|
|
828
827
|
'--extra-dhcp-option',
|
|
829
|
-
'name=dns-server,value=240C::6666,
|
|
828
|
+
'name=dns-server,value=240C::6666,ip-version=6',
|
|
830
829
|
'test-port',
|
|
831
830
|
]
|
|
832
831
|
|
|
@@ -1326,7 +1325,7 @@ class TestListPort(compute_fakes.FakeClientMixin, TestPort):
|
|
|
1326
1325
|
super().setUp()
|
|
1327
1326
|
|
|
1328
1327
|
self.network_client.ports = mock.Mock(return_value=self._ports)
|
|
1329
|
-
fake_router = network_fakes.
|
|
1328
|
+
fake_router = network_fakes.create_one_router(
|
|
1330
1329
|
{
|
|
1331
1330
|
'id': 'fake-router-id',
|
|
1332
1331
|
}
|
|
@@ -1378,8 +1377,8 @@ class TestListPort(compute_fakes.FakeClientMixin, TestPort):
|
|
|
1378
1377
|
self.assertCountEqual(self.data, list(data))
|
|
1379
1378
|
|
|
1380
1379
|
def test_port_list_with_server_option(self):
|
|
1381
|
-
fake_server = compute_fakes.
|
|
1382
|
-
self.
|
|
1380
|
+
fake_server = compute_fakes.create_one_server()
|
|
1381
|
+
self.compute_client.find_server.return_value = fake_server
|
|
1383
1382
|
|
|
1384
1383
|
arglist = [
|
|
1385
1384
|
'--server',
|
|
@@ -1394,7 +1393,7 @@ class TestListPort(compute_fakes.FakeClientMixin, TestPort):
|
|
|
1394
1393
|
self.network_client.ports.assert_called_once_with(
|
|
1395
1394
|
device_id=fake_server.id, fields=LIST_FIELDS_TO_RETRIEVE
|
|
1396
1395
|
)
|
|
1397
|
-
self.
|
|
1396
|
+
self.compute_client.find_server.aassert_called_once_with(
|
|
1398
1397
|
mock.ANY, 'fake-server-name'
|
|
1399
1398
|
)
|
|
1400
1399
|
self.assertEqual(self.columns, columns)
|
|
@@ -2097,7 +2096,7 @@ class TestSetPort(TestPort):
|
|
|
2097
2096
|
self.assertIsNone(result)
|
|
2098
2097
|
|
|
2099
2098
|
def test_set_port_security_group(self):
|
|
2100
|
-
sg = network_fakes.
|
|
2099
|
+
sg = network_fakes.create_one_security_group()
|
|
2101
2100
|
self.network_client.find_security_group = mock.Mock(return_value=sg)
|
|
2102
2101
|
arglist = [
|
|
2103
2102
|
'--security-group',
|
|
@@ -2120,9 +2119,9 @@ class TestSetPort(TestPort):
|
|
|
2120
2119
|
self.assertIsNone(result)
|
|
2121
2120
|
|
|
2122
2121
|
def test_set_port_security_group_append(self):
|
|
2123
|
-
sg_1 = network_fakes.
|
|
2124
|
-
sg_2 = network_fakes.
|
|
2125
|
-
sg_3 = network_fakes.
|
|
2122
|
+
sg_1 = network_fakes.create_one_security_group()
|
|
2123
|
+
sg_2 = network_fakes.create_one_security_group()
|
|
2124
|
+
sg_3 = network_fakes.create_one_security_group()
|
|
2126
2125
|
self.network_client.find_security_group = mock.Mock(
|
|
2127
2126
|
side_effect=[sg_2, sg_3]
|
|
2128
2127
|
)
|
|
@@ -2173,8 +2172,8 @@ class TestSetPort(TestPort):
|
|
|
2173
2172
|
self.assertIsNone(result)
|
|
2174
2173
|
|
|
2175
2174
|
def test_set_port_security_group_replace(self):
|
|
2176
|
-
sg1 = network_fakes.
|
|
2177
|
-
sg2 = network_fakes.
|
|
2175
|
+
sg1 = network_fakes.create_one_security_group()
|
|
2176
|
+
sg2 = network_fakes.create_one_security_group()
|
|
2178
2177
|
_testport = network_fakes.create_one_port(
|
|
2179
2178
|
{'security_group_ids': [sg1.id]}
|
|
2180
2179
|
)
|
|
@@ -2372,7 +2371,7 @@ class TestSetPort(TestPort):
|
|
|
2372
2371
|
)
|
|
2373
2372
|
|
|
2374
2373
|
def test_set_port_with_qos(self):
|
|
2375
|
-
qos_policy = network_fakes.
|
|
2374
|
+
qos_policy = network_fakes.create_one_qos_policy()
|
|
2376
2375
|
self.network_client.find_qos_policy = mock.Mock(
|
|
2377
2376
|
return_value=qos_policy
|
|
2378
2377
|
)
|
|
@@ -2822,8 +2821,8 @@ class TestUnsetPort(TestPort):
|
|
|
2822
2821
|
)
|
|
2823
2822
|
|
|
2824
2823
|
def test_unset_security_group(self):
|
|
2825
|
-
_fake_sg1 = network_fakes.
|
|
2826
|
-
_fake_sg2 = network_fakes.
|
|
2824
|
+
_fake_sg1 = network_fakes.create_one_security_group()
|
|
2825
|
+
_fake_sg2 = network_fakes.create_one_security_group()
|
|
2827
2826
|
_fake_port = network_fakes.create_one_port(
|
|
2828
2827
|
{'security_group_ids': [_fake_sg1.id, _fake_sg2.id]}
|
|
2829
2828
|
)
|
|
@@ -2850,8 +2849,8 @@ class TestUnsetPort(TestPort):
|
|
|
2850
2849
|
self.assertIsNone(result)
|
|
2851
2850
|
|
|
2852
2851
|
def test_unset_port_security_group_not_existent(self):
|
|
2853
|
-
_fake_sg1 = network_fakes.
|
|
2854
|
-
_fake_sg2 = network_fakes.
|
|
2852
|
+
_fake_sg1 = network_fakes.create_one_security_group()
|
|
2853
|
+
_fake_sg2 = network_fakes.create_one_security_group()
|
|
2855
2854
|
_fake_port = network_fakes.create_one_port(
|
|
2856
2855
|
{'security_group_ids': [_fake_sg1.id]}
|
|
2857
2856
|
)
|
|
@@ -34,9 +34,7 @@ class TestAddPortToRouter(TestRouter):
|
|
|
34
34
|
'''Add port to Router'''
|
|
35
35
|
|
|
36
36
|
_port = network_fakes.create_one_port()
|
|
37
|
-
_router = network_fakes.
|
|
38
|
-
attrs={'port': _port.id}
|
|
39
|
-
)
|
|
37
|
+
_router = network_fakes.create_one_router(attrs={'port': _port.id})
|
|
40
38
|
|
|
41
39
|
def setUp(self):
|
|
42
40
|
super().setUp()
|
|
@@ -84,9 +82,7 @@ class TestAddSubnetToRouter(TestRouter):
|
|
|
84
82
|
'''Add subnet to Router'''
|
|
85
83
|
|
|
86
84
|
_subnet = network_fakes.FakeSubnet.create_one_subnet()
|
|
87
|
-
_router = network_fakes.
|
|
88
|
-
attrs={'subnet': _subnet.id}
|
|
89
|
-
)
|
|
85
|
+
_router = network_fakes.create_one_router(attrs={'subnet': _subnet.id})
|
|
90
86
|
|
|
91
87
|
def setUp(self):
|
|
92
88
|
super().setUp()
|
|
@@ -129,38 +125,48 @@ class TestAddSubnetToRouter(TestRouter):
|
|
|
129
125
|
|
|
130
126
|
class TestCreateRouter(TestRouter):
|
|
131
127
|
# The new router created.
|
|
132
|
-
new_router = network_fakes.
|
|
128
|
+
new_router = network_fakes.create_one_router()
|
|
133
129
|
_extensions = {'fake': network_fakes.create_one_extension()}
|
|
134
130
|
|
|
135
131
|
columns = (
|
|
136
132
|
'admin_state_up',
|
|
137
133
|
'availability_zone_hints',
|
|
138
134
|
'availability_zones',
|
|
135
|
+
'created_at',
|
|
139
136
|
'description',
|
|
140
137
|
'distributed',
|
|
138
|
+
'enable_ndp_proxy',
|
|
141
139
|
'external_gateway_info',
|
|
140
|
+
'flavor_id',
|
|
142
141
|
'ha',
|
|
143
142
|
'id',
|
|
144
143
|
'name',
|
|
145
144
|
'project_id',
|
|
145
|
+
'revision_number',
|
|
146
146
|
'routes',
|
|
147
147
|
'status',
|
|
148
148
|
'tags',
|
|
149
|
+
'updated_at',
|
|
149
150
|
)
|
|
150
151
|
data = (
|
|
151
|
-
router.AdminStateColumn(new_router.
|
|
152
|
+
router.AdminStateColumn(new_router.is_admin_state_up),
|
|
152
153
|
format_columns.ListColumn(new_router.availability_zone_hints),
|
|
153
154
|
format_columns.ListColumn(new_router.availability_zones),
|
|
155
|
+
new_router.created_at,
|
|
154
156
|
new_router.description,
|
|
155
|
-
new_router.
|
|
157
|
+
new_router.is_distributed,
|
|
158
|
+
new_router.enable_ndp_proxy,
|
|
156
159
|
router.RouterInfoColumn(new_router.external_gateway_info),
|
|
157
|
-
new_router.
|
|
160
|
+
new_router.flavor_id,
|
|
161
|
+
new_router.is_ha,
|
|
158
162
|
new_router.id,
|
|
159
163
|
new_router.name,
|
|
160
164
|
new_router.project_id,
|
|
165
|
+
new_router.revision_number,
|
|
161
166
|
router.RoutesColumn(new_router.routes),
|
|
162
167
|
new_router.status,
|
|
163
168
|
format_columns.ListColumn(new_router.tags),
|
|
169
|
+
new_router.updated_at,
|
|
164
170
|
)
|
|
165
171
|
|
|
166
172
|
def setUp(self):
|
|
@@ -552,17 +558,76 @@ class TestCreateRouter(TestRouter):
|
|
|
552
558
|
parsed_args,
|
|
553
559
|
)
|
|
554
560
|
|
|
561
|
+
def test_create_with_qos_policy(self):
|
|
562
|
+
_network = network_fakes.create_one_network()
|
|
563
|
+
self.network_client.find_network = mock.Mock(return_value=_network)
|
|
564
|
+
_qos_policy = network_fakes.create_one_qos_policy()
|
|
565
|
+
self.network_client.find_qos_policy = mock.Mock(
|
|
566
|
+
return_value=_qos_policy
|
|
567
|
+
)
|
|
568
|
+
arglist = [
|
|
569
|
+
self.new_router.name,
|
|
570
|
+
'--external-gateway',
|
|
571
|
+
_network.id,
|
|
572
|
+
'--qos-policy',
|
|
573
|
+
_qos_policy.id,
|
|
574
|
+
]
|
|
575
|
+
verifylist = [
|
|
576
|
+
('name', self.new_router.name),
|
|
577
|
+
('enable', True),
|
|
578
|
+
('distributed', False),
|
|
579
|
+
('ha', False),
|
|
580
|
+
('qos_policy', _qos_policy.id),
|
|
581
|
+
('external_gateways', [_network.id]),
|
|
582
|
+
]
|
|
583
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
584
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
585
|
+
gw_info = {'network_id': _network.id, 'qos_policy_id': _qos_policy.id}
|
|
586
|
+
self.network_client.create_router.assert_called_once_with(
|
|
587
|
+
**{
|
|
588
|
+
'admin_state_up': True,
|
|
589
|
+
'name': self.new_router.name,
|
|
590
|
+
**{'external_gateway_info': gw_info},
|
|
591
|
+
}
|
|
592
|
+
)
|
|
593
|
+
self.assertEqual(self.columns, columns)
|
|
594
|
+
self.assertCountEqual(self.data, data)
|
|
595
|
+
|
|
596
|
+
def test_create_with_qos_policy_no_external_gateway(self):
|
|
597
|
+
_qos_policy = network_fakes.create_one_qos_policy()
|
|
598
|
+
self.network_client.find_qos_policy = mock.Mock(
|
|
599
|
+
return_value=_qos_policy
|
|
600
|
+
)
|
|
601
|
+
arglist = [
|
|
602
|
+
self.new_router.name,
|
|
603
|
+
'--qos-policy',
|
|
604
|
+
_qos_policy.id,
|
|
605
|
+
]
|
|
606
|
+
verifylist = [
|
|
607
|
+
('name', self.new_router.name),
|
|
608
|
+
('enable', True),
|
|
609
|
+
('distributed', False),
|
|
610
|
+
('ha', False),
|
|
611
|
+
('qos_policy', _qos_policy.id),
|
|
612
|
+
]
|
|
613
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
614
|
+
self.assertRaises(
|
|
615
|
+
exceptions.CommandError,
|
|
616
|
+
self.cmd.take_action,
|
|
617
|
+
parsed_args,
|
|
618
|
+
)
|
|
619
|
+
|
|
555
620
|
|
|
556
621
|
class TestDeleteRouter(TestRouter):
|
|
557
622
|
# The routers to delete.
|
|
558
|
-
_routers = network_fakes.
|
|
623
|
+
_routers = network_fakes.create_routers(count=2)
|
|
559
624
|
|
|
560
625
|
def setUp(self):
|
|
561
626
|
super().setUp()
|
|
562
627
|
|
|
563
628
|
self.network_client.delete_router = mock.Mock(return_value=None)
|
|
564
629
|
|
|
565
|
-
self.network_client.find_router = network_fakes.
|
|
630
|
+
self.network_client.find_router = network_fakes.get_routers(
|
|
566
631
|
self._routers
|
|
567
632
|
)
|
|
568
633
|
|
|
@@ -637,7 +702,7 @@ class TestDeleteRouter(TestRouter):
|
|
|
637
702
|
|
|
638
703
|
class TestListRouter(TestRouter):
|
|
639
704
|
# The routers going to be listed up.
|
|
640
|
-
routers = network_fakes.
|
|
705
|
+
routers = network_fakes.create_routers(count=3)
|
|
641
706
|
extensions = network_fakes.create_one_extension()
|
|
642
707
|
|
|
643
708
|
columns = (
|
|
@@ -668,10 +733,10 @@ class TestListRouter(TestRouter):
|
|
|
668
733
|
r.id,
|
|
669
734
|
r.name,
|
|
670
735
|
r.status,
|
|
671
|
-
router.AdminStateColumn(r.
|
|
736
|
+
router.AdminStateColumn(r.is_admin_state_up),
|
|
672
737
|
r.project_id,
|
|
673
|
-
r.
|
|
674
|
-
r.
|
|
738
|
+
r.is_distributed,
|
|
739
|
+
r.is_ha,
|
|
675
740
|
)
|
|
676
741
|
)
|
|
677
742
|
|
|
@@ -754,7 +819,7 @@ class TestListRouter(TestRouter):
|
|
|
754
819
|
self.assertCountEqual(self.data, list(data))
|
|
755
820
|
|
|
756
821
|
def test_router_list_no_ha_no_distributed(self):
|
|
757
|
-
_routers = network_fakes.
|
|
822
|
+
_routers = network_fakes.create_routers(
|
|
758
823
|
{'ha': None, 'distributed': None}, count=3
|
|
759
824
|
)
|
|
760
825
|
|
|
@@ -974,9 +1039,7 @@ class TestRemovePortFromRouter(TestRouter):
|
|
|
974
1039
|
'''Remove port from a Router'''
|
|
975
1040
|
|
|
976
1041
|
_port = network_fakes.create_one_port()
|
|
977
|
-
_router = network_fakes.
|
|
978
|
-
attrs={'port': _port.id}
|
|
979
|
-
)
|
|
1042
|
+
_router = network_fakes.create_one_router(attrs={'port': _port.id})
|
|
980
1043
|
|
|
981
1044
|
def setUp(self):
|
|
982
1045
|
super().setUp()
|
|
@@ -1021,9 +1084,7 @@ class TestRemoveSubnetFromRouter(TestRouter):
|
|
|
1021
1084
|
'''Remove subnet from Router'''
|
|
1022
1085
|
|
|
1023
1086
|
_subnet = network_fakes.FakeSubnet.create_one_subnet()
|
|
1024
|
-
_router = network_fakes.
|
|
1025
|
-
attrs={'subnet': _subnet.id}
|
|
1026
|
-
)
|
|
1087
|
+
_router = network_fakes.create_one_router(attrs={'subnet': _subnet.id})
|
|
1027
1088
|
|
|
1028
1089
|
def setUp(self):
|
|
1029
1090
|
super().setUp()
|
|
@@ -1064,7 +1125,7 @@ class TestRemoveSubnetFromRouter(TestRouter):
|
|
|
1064
1125
|
|
|
1065
1126
|
|
|
1066
1127
|
class TestAddExtraRoutesToRouter(TestRouter):
|
|
1067
|
-
_router = network_fakes.
|
|
1128
|
+
_router = network_fakes.create_one_router()
|
|
1068
1129
|
|
|
1069
1130
|
def setUp(self):
|
|
1070
1131
|
super().setUp()
|
|
@@ -1153,7 +1214,7 @@ class TestAddExtraRoutesToRouter(TestRouter):
|
|
|
1153
1214
|
|
|
1154
1215
|
|
|
1155
1216
|
class TestRemoveExtraRoutesFromRouter(TestRouter):
|
|
1156
|
-
_router = network_fakes.
|
|
1217
|
+
_router = network_fakes.create_one_router()
|
|
1157
1218
|
|
|
1158
1219
|
def setUp(self):
|
|
1159
1220
|
super().setUp()
|
|
@@ -1248,7 +1309,7 @@ class TestSetRouter(TestRouter):
|
|
|
1248
1309
|
_subnet = network_fakes.FakeSubnet.create_one_subnet(
|
|
1249
1310
|
attrs={'network_id': _network.id}
|
|
1250
1311
|
)
|
|
1251
|
-
_router = network_fakes.
|
|
1312
|
+
_router = network_fakes.create_one_router(
|
|
1252
1313
|
attrs={'routes': [_default_route], 'tags': ['green', 'red']}
|
|
1253
1314
|
)
|
|
1254
1315
|
_extensions = {'fake': network_fakes.create_one_extension()}
|
|
@@ -1395,7 +1456,7 @@ class TestSetRouter(TestRouter):
|
|
|
1395
1456
|
self.assertIsNone(result)
|
|
1396
1457
|
|
|
1397
1458
|
def test_set_route_overwrite_route(self):
|
|
1398
|
-
_testrouter = network_fakes.
|
|
1459
|
+
_testrouter = network_fakes.create_one_router(
|
|
1399
1460
|
{'routes': [{"destination": "10.0.0.2", "nexthop": "1.1.1.1"}]}
|
|
1400
1461
|
)
|
|
1401
1462
|
self.network_client.find_router = mock.Mock(return_value=_testrouter)
|
|
@@ -1605,7 +1666,7 @@ class TestSetRouter(TestRouter):
|
|
|
1605
1666
|
self._test_set_tags(with_tags=False)
|
|
1606
1667
|
|
|
1607
1668
|
def test_set_gateway_ip_qos(self):
|
|
1608
|
-
qos_policy = network_fakes.
|
|
1669
|
+
qos_policy = network_fakes.create_one_qos_policy()
|
|
1609
1670
|
self.network_client.find_qos_policy = mock.Mock(
|
|
1610
1671
|
return_value=qos_policy
|
|
1611
1672
|
)
|
|
@@ -1662,7 +1723,7 @@ class TestSetRouter(TestRouter):
|
|
|
1662
1723
|
self.assertIsNone(result)
|
|
1663
1724
|
|
|
1664
1725
|
def test_set_unset_gateway_ip_qos(self):
|
|
1665
|
-
qos_policy = network_fakes.
|
|
1726
|
+
qos_policy = network_fakes.create_one_qos_policy()
|
|
1666
1727
|
self.network_client.find_qos_policy = mock.Mock(
|
|
1667
1728
|
return_value=qos_policy
|
|
1668
1729
|
)
|
|
@@ -1690,11 +1751,11 @@ class TestSetRouter(TestRouter):
|
|
|
1690
1751
|
)
|
|
1691
1752
|
|
|
1692
1753
|
def test_set_gateway_ip_qos_no_gateway(self):
|
|
1693
|
-
qos_policy = network_fakes.
|
|
1754
|
+
qos_policy = network_fakes.create_one_qos_policy()
|
|
1694
1755
|
self.network_client.find_qos_policy = mock.Mock(
|
|
1695
1756
|
return_value=qos_policy
|
|
1696
1757
|
)
|
|
1697
|
-
router = network_fakes.
|
|
1758
|
+
router = network_fakes.create_one_router()
|
|
1698
1759
|
self.network_client.find_router = mock.Mock(return_value=router)
|
|
1699
1760
|
arglist = [
|
|
1700
1761
|
"--qos-policy",
|
|
@@ -1712,11 +1773,11 @@ class TestSetRouter(TestRouter):
|
|
|
1712
1773
|
)
|
|
1713
1774
|
|
|
1714
1775
|
def test_unset_gateway_ip_qos_no_gateway(self):
|
|
1715
|
-
qos_policy = network_fakes.
|
|
1776
|
+
qos_policy = network_fakes.create_one_qos_policy()
|
|
1716
1777
|
self.network_client.find_qos_policy = mock.Mock(
|
|
1717
1778
|
return_value=qos_policy
|
|
1718
1779
|
)
|
|
1719
|
-
router = network_fakes.
|
|
1780
|
+
router = network_fakes.create_one_router()
|
|
1720
1781
|
self.network_client.find_router = mock.Mock(return_value=router)
|
|
1721
1782
|
arglist = [
|
|
1722
1783
|
"--no-qos-policy",
|
|
@@ -1734,7 +1795,7 @@ class TestSetRouter(TestRouter):
|
|
|
1734
1795
|
|
|
1735
1796
|
class TestShowRouter(TestRouter):
|
|
1736
1797
|
# The router to set.
|
|
1737
|
-
_router = network_fakes.
|
|
1798
|
+
_router = network_fakes.create_one_router()
|
|
1738
1799
|
_port = network_fakes.create_one_port(
|
|
1739
1800
|
{'device_owner': 'network:router_interface', 'device_id': _router.id}
|
|
1740
1801
|
)
|
|
@@ -1754,33 +1815,43 @@ class TestShowRouter(TestRouter):
|
|
|
1754
1815
|
'admin_state_up',
|
|
1755
1816
|
'availability_zone_hints',
|
|
1756
1817
|
'availability_zones',
|
|
1818
|
+
'created_at',
|
|
1757
1819
|
'description',
|
|
1758
1820
|
'distributed',
|
|
1821
|
+
'enable_ndp_proxy',
|
|
1759
1822
|
'external_gateway_info',
|
|
1823
|
+
'flavor_id',
|
|
1760
1824
|
'ha',
|
|
1761
1825
|
'id',
|
|
1762
1826
|
'interfaces_info',
|
|
1763
1827
|
'name',
|
|
1764
1828
|
'project_id',
|
|
1829
|
+
'revision_number',
|
|
1765
1830
|
'routes',
|
|
1766
1831
|
'status',
|
|
1767
1832
|
'tags',
|
|
1833
|
+
'updated_at',
|
|
1768
1834
|
)
|
|
1769
1835
|
data = (
|
|
1770
|
-
router.AdminStateColumn(_router.
|
|
1836
|
+
router.AdminStateColumn(_router.is_admin_state_up),
|
|
1771
1837
|
format_columns.ListColumn(_router.availability_zone_hints),
|
|
1772
1838
|
format_columns.ListColumn(_router.availability_zones),
|
|
1839
|
+
_router.created_at,
|
|
1773
1840
|
_router.description,
|
|
1774
|
-
_router.
|
|
1841
|
+
_router.is_distributed,
|
|
1842
|
+
_router.enable_ndp_proxy,
|
|
1775
1843
|
router.RouterInfoColumn(_router.external_gateway_info),
|
|
1776
|
-
_router.
|
|
1844
|
+
_router.flavor_id,
|
|
1845
|
+
_router.is_ha,
|
|
1777
1846
|
_router.id,
|
|
1778
1847
|
router.RouterInfoColumn(_router.interfaces_info),
|
|
1779
1848
|
_router.name,
|
|
1780
1849
|
_router.project_id,
|
|
1850
|
+
_router.revision_number,
|
|
1781
1851
|
router.RoutesColumn(_router.routes),
|
|
1782
1852
|
_router.status,
|
|
1783
1853
|
format_columns.ListColumn(_router.tags),
|
|
1854
|
+
_router.updated_at,
|
|
1784
1855
|
)
|
|
1785
1856
|
|
|
1786
1857
|
def setUp(self):
|
|
@@ -1825,7 +1896,7 @@ class TestShowRouter(TestRouter):
|
|
|
1825
1896
|
self.assertCountEqual(self.data, data)
|
|
1826
1897
|
|
|
1827
1898
|
def test_show_no_ha_no_distributed(self):
|
|
1828
|
-
_router = network_fakes.
|
|
1899
|
+
_router = network_fakes.create_one_router(
|
|
1829
1900
|
{'ha': None, 'distributed': None}
|
|
1830
1901
|
)
|
|
1831
1902
|
|
|
@@ -1846,7 +1917,7 @@ class TestShowRouter(TestRouter):
|
|
|
1846
1917
|
self.assertNotIn("is_ha", columns)
|
|
1847
1918
|
|
|
1848
1919
|
def test_show_no_extra_route_extension(self):
|
|
1849
|
-
_router = network_fakes.
|
|
1920
|
+
_router = network_fakes.create_one_router({'routes': None})
|
|
1850
1921
|
|
|
1851
1922
|
arglist = [
|
|
1852
1923
|
_router.name,
|
|
@@ -1869,10 +1940,8 @@ class TestUnsetRouter(TestRouter):
|
|
|
1869
1940
|
def setUp(self):
|
|
1870
1941
|
super().setUp()
|
|
1871
1942
|
self.fake_network = network_fakes.create_one_network()
|
|
1872
|
-
self.fake_qos_policy = (
|
|
1873
|
-
|
|
1874
|
-
)
|
|
1875
|
-
self._testrouter = network_fakes.FakeRouter.create_one_router(
|
|
1943
|
+
self.fake_qos_policy = network_fakes.create_one_qos_policy()
|
|
1944
|
+
self._testrouter = network_fakes.create_one_router(
|
|
1876
1945
|
{
|
|
1877
1946
|
'routes': [
|
|
1878
1947
|
{
|
|
@@ -2039,11 +2108,11 @@ class TestUnsetRouter(TestRouter):
|
|
|
2039
2108
|
self.assertIsNone(result)
|
|
2040
2109
|
|
|
2041
2110
|
def test_unset_gateway_ip_qos_no_network(self):
|
|
2042
|
-
qos_policy = network_fakes.
|
|
2111
|
+
qos_policy = network_fakes.create_one_qos_policy()
|
|
2043
2112
|
self.network_client.find_qos_policy = mock.Mock(
|
|
2044
2113
|
return_value=qos_policy
|
|
2045
2114
|
)
|
|
2046
|
-
router = network_fakes.
|
|
2115
|
+
router = network_fakes.create_one_router()
|
|
2047
2116
|
self.network_client.find_router = mock.Mock(return_value=router)
|
|
2048
2117
|
arglist = [
|
|
2049
2118
|
"--qos-policy",
|
|
@@ -2059,11 +2128,11 @@ class TestUnsetRouter(TestRouter):
|
|
|
2059
2128
|
)
|
|
2060
2129
|
|
|
2061
2130
|
def test_unset_gateway_ip_qos_no_qos(self):
|
|
2062
|
-
qos_policy = network_fakes.
|
|
2131
|
+
qos_policy = network_fakes.create_one_qos_policy()
|
|
2063
2132
|
self.network_client.find_qos_policy = mock.Mock(
|
|
2064
2133
|
return_value=qos_policy
|
|
2065
2134
|
)
|
|
2066
|
-
router = network_fakes.
|
|
2135
|
+
router = network_fakes.create_one_router(
|
|
2067
2136
|
{"external_gateway_info": {"network_id": "fake-id"}}
|
|
2068
2137
|
)
|
|
2069
2138
|
self.network_client.find_router = mock.Mock(return_value=router)
|
|
@@ -2088,7 +2157,7 @@ class TestGatewayOps(TestRouter):
|
|
|
2088
2157
|
self._network = network_fakes.create_one_network()
|
|
2089
2158
|
self._networks.append(self._network)
|
|
2090
2159
|
|
|
2091
|
-
self._router = network_fakes.
|
|
2160
|
+
self._router = network_fakes.create_one_router(
|
|
2092
2161
|
{
|
|
2093
2162
|
'external_gateway_info': {
|
|
2094
2163
|
'network_id': self._network.id,
|
|
@@ -2132,16 +2201,21 @@ class TestCreateMultipleGateways(TestGatewayOps):
|
|
|
2132
2201
|
'admin_state_up',
|
|
2133
2202
|
'availability_zone_hints',
|
|
2134
2203
|
'availability_zones',
|
|
2204
|
+
'created_at',
|
|
2135
2205
|
'description',
|
|
2136
2206
|
'distributed',
|
|
2207
|
+
'enable_ndp_proxy',
|
|
2137
2208
|
'external_gateway_info',
|
|
2209
|
+
'flavor_id',
|
|
2138
2210
|
'ha',
|
|
2139
2211
|
'id',
|
|
2140
2212
|
'name',
|
|
2141
2213
|
'project_id',
|
|
2214
|
+
'revision_number',
|
|
2142
2215
|
'routes',
|
|
2143
2216
|
'status',
|
|
2144
2217
|
'tags',
|
|
2218
|
+
'updated_at',
|
|
2145
2219
|
)
|
|
2146
2220
|
|
|
2147
2221
|
def setUp(self):
|
|
@@ -2158,19 +2232,24 @@ class TestCreateMultipleGateways(TestGatewayOps):
|
|
|
2158
2232
|
)
|
|
2159
2233
|
|
|
2160
2234
|
self._data = (
|
|
2161
|
-
router.AdminStateColumn(self._router.
|
|
2235
|
+
router.AdminStateColumn(self._router.is_admin_state_up),
|
|
2162
2236
|
format_columns.ListColumn(self._router.availability_zone_hints),
|
|
2163
2237
|
format_columns.ListColumn(self._router.availability_zones),
|
|
2238
|
+
self._router.created_at,
|
|
2164
2239
|
self._router.description,
|
|
2165
|
-
self._router.
|
|
2240
|
+
self._router.is_distributed,
|
|
2241
|
+
self._router.enable_ndp_proxy,
|
|
2166
2242
|
router.RouterInfoColumn(self._router.external_gateway_info),
|
|
2167
|
-
self._router.
|
|
2243
|
+
self._router.flavor_id,
|
|
2244
|
+
self._router.is_ha,
|
|
2168
2245
|
self._router.id,
|
|
2169
2246
|
self._router.name,
|
|
2170
2247
|
self._router.project_id,
|
|
2248
|
+
self._router.revision_number,
|
|
2171
2249
|
router.RoutesColumn(self._router.routes),
|
|
2172
2250
|
self._router.status,
|
|
2173
2251
|
format_columns.ListColumn(self._router.tags),
|
|
2252
|
+
self._router.updated_at,
|
|
2174
2253
|
)
|
|
2175
2254
|
self.cmd = router.CreateRouter(self.app, None)
|
|
2176
2255
|
|
|
@@ -72,7 +72,7 @@ class TestCreateSecurityGroupCompute(compute_fakes.TestComputev2):
|
|
|
72
72
|
columns, data = self.cmd.take_action(parsed_args)
|
|
73
73
|
|
|
74
74
|
sg_mock.assert_called_once_with(
|
|
75
|
-
self.
|
|
75
|
+
self.compute_client,
|
|
76
76
|
self._security_group['name'],
|
|
77
77
|
self._security_group['name'],
|
|
78
78
|
)
|
|
@@ -95,7 +95,7 @@ class TestCreateSecurityGroupCompute(compute_fakes.TestComputev2):
|
|
|
95
95
|
columns, data = self.cmd.take_action(parsed_args)
|
|
96
96
|
|
|
97
97
|
sg_mock.assert_called_once_with(
|
|
98
|
-
self.
|
|
98
|
+
self.compute_client,
|
|
99
99
|
self._security_group['name'],
|
|
100
100
|
self._security_group['description'],
|
|
101
101
|
)
|
|
@@ -133,7 +133,7 @@ class TestDeleteSecurityGroupCompute(compute_fakes.TestComputev2):
|
|
|
133
133
|
result = self.cmd.take_action(parsed_args)
|
|
134
134
|
|
|
135
135
|
sg_mock.assert_called_once_with(
|
|
136
|
-
self.
|
|
136
|
+
self.compute_client,
|
|
137
137
|
self._security_groups[0]['id'],
|
|
138
138
|
)
|
|
139
139
|
self.assertIsNone(result)
|
|
@@ -153,12 +153,8 @@ class TestDeleteSecurityGroupCompute(compute_fakes.TestComputev2):
|
|
|
153
153
|
|
|
154
154
|
sg_mock.assert_has_calls(
|
|
155
155
|
[
|
|
156
|
-
mock.call(
|
|
157
|
-
|
|
158
|
-
),
|
|
159
|
-
mock.call(
|
|
160
|
-
self.compute_sdk_client, self._security_groups[1]['id']
|
|
161
|
-
),
|
|
156
|
+
mock.call(self.compute_client, self._security_groups[0]['id']),
|
|
157
|
+
mock.call(self.compute_client, self._security_groups[1]['id']),
|
|
162
158
|
]
|
|
163
159
|
)
|
|
164
160
|
self.assertIsNone(result)
|
|
@@ -187,9 +183,7 @@ class TestDeleteSecurityGroupCompute(compute_fakes.TestComputev2):
|
|
|
187
183
|
|
|
188
184
|
sg_mock.assert_has_calls(
|
|
189
185
|
[
|
|
190
|
-
mock.call(
|
|
191
|
-
self.compute_sdk_client, self._security_groups[0]['id']
|
|
192
|
-
),
|
|
186
|
+
mock.call(self.compute_client, self._security_groups[0]['id']),
|
|
193
187
|
]
|
|
194
188
|
)
|
|
195
189
|
|
|
@@ -250,7 +244,7 @@ class TestListSecurityGroupCompute(compute_fakes.TestComputev2):
|
|
|
250
244
|
columns, data = self.cmd.take_action(parsed_args)
|
|
251
245
|
|
|
252
246
|
sg_mock.assert_called_once_with(
|
|
253
|
-
self.
|
|
247
|
+
self.compute_client, all_projects=False
|
|
254
248
|
)
|
|
255
249
|
self.assertEqual(self.columns, columns)
|
|
256
250
|
self.assertCountEqual(self.data, list(data))
|
|
@@ -267,9 +261,7 @@ class TestListSecurityGroupCompute(compute_fakes.TestComputev2):
|
|
|
267
261
|
|
|
268
262
|
columns, data = self.cmd.take_action(parsed_args)
|
|
269
263
|
|
|
270
|
-
sg_mock.assert_called_once_with(
|
|
271
|
-
self.compute_sdk_client, all_projects=True
|
|
272
|
-
)
|
|
264
|
+
sg_mock.assert_called_once_with(self.compute_client, all_projects=True)
|
|
273
265
|
self.assertEqual(self.columns_all_projects, columns)
|
|
274
266
|
self.assertCountEqual(self.data_all_projects, list(data))
|
|
275
267
|
|
|
@@ -309,7 +301,7 @@ class TestSetSecurityGroupCompute(compute_fakes.TestComputev2):
|
|
|
309
301
|
result = self.cmd.take_action(parsed_args)
|
|
310
302
|
|
|
311
303
|
sg_mock.assert_called_once_with(
|
|
312
|
-
self.
|
|
304
|
+
self.compute_client, self._security_group['id']
|
|
313
305
|
)
|
|
314
306
|
self.assertIsNone(result)
|
|
315
307
|
|
|
@@ -334,7 +326,7 @@ class TestSetSecurityGroupCompute(compute_fakes.TestComputev2):
|
|
|
334
326
|
result = self.cmd.take_action(parsed_args)
|
|
335
327
|
|
|
336
328
|
sg_mock.assert_called_once_with(
|
|
337
|
-
self.
|
|
329
|
+
self.compute_client,
|
|
338
330
|
self._security_group['id'],
|
|
339
331
|
name=new_name,
|
|
340
332
|
description=new_description,
|
|
@@ -394,7 +386,7 @@ class TestShowSecurityGroupCompute(compute_fakes.TestComputev2):
|
|
|
394
386
|
columns, data = self.cmd.take_action(parsed_args)
|
|
395
387
|
|
|
396
388
|
sg_mock.assert_called_once_with(
|
|
397
|
-
self.
|
|
389
|
+
self.compute_client, self._security_group['id']
|
|
398
390
|
)
|
|
399
391
|
self.assertEqual(self.columns, columns)
|
|
400
392
|
self.assertCountEqual(self.data, data)
|