python-openstackclient 8.3.0__py3-none-any.whl → 10.0.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/__init__.py +2 -6
- openstackclient/api/api.py +41 -23
- openstackclient/api/compute_v2.py +44 -25
- openstackclient/api/object_store_v1.py +75 -97
- openstackclient/api/volume_v2.py +2 -1
- openstackclient/api/volume_v3.py +2 -1
- openstackclient/common/availability_zone.py +58 -42
- openstackclient/common/clientmanager.py +56 -29
- openstackclient/common/configuration.py +10 -3
- openstackclient/common/envvars.py +2 -2
- openstackclient/common/extension.py +14 -5
- openstackclient/common/limits.py +10 -5
- openstackclient/common/module.py +14 -6
- openstackclient/common/pagination.py +8 -2
- openstackclient/common/progressbar.py +7 -6
- openstackclient/common/project_cleanup.py +13 -7
- openstackclient/common/quota.py +126 -114
- openstackclient/common/versions.py +8 -2
- openstackclient/compute/client.py +7 -3
- openstackclient/compute/v2/agent.py +17 -10
- openstackclient/compute/v2/aggregate.py +36 -22
- openstackclient/compute/v2/console.py +14 -8
- openstackclient/compute/v2/console_connection.py +11 -3
- openstackclient/compute/v2/flavor.py +39 -21
- openstackclient/compute/v2/host.py +14 -6
- openstackclient/compute/v2/hypervisor.py +14 -5
- openstackclient/compute/v2/hypervisor_stats.py +10 -2
- openstackclient/compute/v2/keypair.py +29 -14
- openstackclient/compute/v2/server.py +251 -171
- openstackclient/compute/v2/server_backup.py +10 -4
- openstackclient/compute/v2/server_event.py +21 -12
- openstackclient/compute/v2/server_group.py +21 -11
- openstackclient/compute/v2/server_image.py +19 -10
- openstackclient/compute/v2/server_migration.py +24 -10
- openstackclient/compute/v2/server_share.py +274 -0
- openstackclient/compute/v2/server_volume.py +10 -4
- openstackclient/compute/v2/service.py +14 -7
- openstackclient/compute/v2/usage.py +26 -21
- openstackclient/identity/client.py +8 -3
- openstackclient/identity/common.py +103 -41
- openstackclient/identity/v2_0/catalog.py +14 -7
- openstackclient/identity/v2_0/ec2creds.py +21 -10
- openstackclient/identity/v2_0/endpoint.py +23 -11
- openstackclient/identity/v2_0/project.py +25 -14
- openstackclient/identity/v2_0/role.py +28 -14
- openstackclient/identity/v2_0/role_assignment.py +9 -3
- openstackclient/identity/v2_0/service.py +26 -12
- openstackclient/identity/v2_0/token.py +12 -5
- openstackclient/identity/v2_0/user.py +26 -15
- openstackclient/identity/v3/access_rule.py +26 -12
- openstackclient/identity/v3/application_credential.py +59 -24
- openstackclient/identity/v3/catalog.py +14 -7
- openstackclient/identity/v3/consumer.py +22 -11
- openstackclient/identity/v3/credential.py +36 -16
- openstackclient/identity/v3/domain.py +37 -18
- openstackclient/identity/v3/ec2creds.py +25 -12
- openstackclient/identity/v3/endpoint.py +42 -20
- openstackclient/identity/v3/endpoint_group.py +28 -17
- openstackclient/identity/v3/federation_protocol.py +71 -50
- openstackclient/identity/v3/group.py +55 -32
- openstackclient/identity/v3/identity_provider.py +92 -57
- openstackclient/identity/v3/implied_role.py +21 -9
- openstackclient/identity/v3/limit.py +115 -92
- openstackclient/identity/v3/mapping.py +26 -13
- openstackclient/identity/v3/policy.py +23 -12
- openstackclient/identity/v3/project.py +211 -122
- openstackclient/identity/v3/region.py +36 -16
- openstackclient/identity/v3/registered_limit.py +116 -109
- openstackclient/identity/v3/role.py +61 -31
- openstackclient/identity/v3/role_assignment.py +23 -6
- openstackclient/identity/v3/service.py +36 -16
- openstackclient/identity/v3/service_provider.py +37 -15
- openstackclient/identity/v3/tag.py +23 -17
- openstackclient/identity/v3/token.py +30 -14
- openstackclient/identity/v3/trust.py +32 -14
- openstackclient/identity/v3/unscoped_saml.py +10 -2
- openstackclient/identity/v3/user.py +49 -26
- openstackclient/image/client.py +7 -3
- openstackclient/image/v1/image.py +33 -26
- openstackclient/image/v2/cache.py +14 -9
- openstackclient/image/v2/image.py +76 -49
- openstackclient/image/v2/info.py +7 -1
- openstackclient/image/v2/metadef_namespaces.py +109 -13
- openstackclient/image/v2/metadef_objects.py +28 -15
- openstackclient/image/v2/metadef_properties.py +24 -13
- openstackclient/image/v2/metadef_resource_type_association.py +14 -7
- openstackclient/image/v2/metadef_resource_types.py +7 -1
- openstackclient/image/v2/task.py +15 -6
- openstackclient/locale/tr_TR/LC_MESSAGES/openstackclient.po +7 -192
- openstackclient/network/client.py +7 -2
- openstackclient/network/common.py +16 -241
- openstackclient/network/utils.py +36 -22
- openstackclient/network/v2/address_group.py +27 -16
- openstackclient/network/v2/address_scope.py +24 -13
- openstackclient/network/v2/bgpvpn/bgpvpn.py +463 -0
- openstackclient/network/v2/bgpvpn/constants.py +30 -0
- openstackclient/network/v2/bgpvpn/network_association.py +214 -0
- openstackclient/network/v2/bgpvpn/port_association.py +490 -0
- openstackclient/network/v2/bgpvpn/router_association.py +288 -0
- openstackclient/network/v2/default_security_group_rule.py +19 -10
- openstackclient/network/v2/floating_ip.py +110 -159
- openstackclient/network/v2/floating_ip_port_forwarding.py +30 -18
- openstackclient/network/v2/fwaas/__init__.py +0 -0
- openstackclient/network/v2/fwaas/group.py +466 -0
- openstackclient/network/v2/fwaas/policy.py +518 -0
- openstackclient/network/v2/fwaas/rule.py +574 -0
- openstackclient/network/v2/ip_availability.py +13 -5
- openstackclient/network/v2/l3_conntrack_helper.py +22 -13
- openstackclient/network/v2/local_ip.py +24 -13
- openstackclient/network/v2/local_ip_association.py +14 -7
- openstackclient/network/v2/ndp_proxy.py +20 -11
- openstackclient/network/v2/network.py +129 -196
- openstackclient/network/v2/network_agent.py +46 -25
- openstackclient/network/v2/network_auto_allocated_topology.py +22 -11
- openstackclient/network/v2/network_flavor.py +27 -16
- openstackclient/network/v2/network_flavor_profile.py +23 -12
- openstackclient/network/v2/network_meter.py +21 -10
- openstackclient/network/v2/network_meter_rule.py +21 -11
- openstackclient/network/v2/network_qos_policy.py +25 -15
- openstackclient/network/v2/network_qos_rule.py +32 -17
- openstackclient/network/v2/network_qos_rule_type.py +13 -5
- openstackclient/network/v2/network_rbac.py +23 -12
- openstackclient/network/v2/network_segment.py +20 -11
- openstackclient/network/v2/network_segment_range.py +56 -29
- openstackclient/network/v2/network_service_provider.py +7 -1
- openstackclient/network/v2/network_trunk.py +38 -22
- openstackclient/network/v2/port.py +54 -29
- openstackclient/network/v2/router.py +75 -52
- openstackclient/network/v2/security_group.py +87 -157
- openstackclient/network/v2/security_group_rule.py +100 -280
- openstackclient/network/v2/subnet.py +49 -28
- openstackclient/network/v2/subnet_pool.py +30 -17
- openstackclient/network/v2/taas/tap_flow.py +22 -11
- openstackclient/network/v2/taas/tap_mirror.py +22 -11
- openstackclient/network/v2/taas/tap_service.py +23 -12
- openstackclient/object/client.py +7 -2
- openstackclient/object/v1/account.py +13 -6
- openstackclient/object/v1/container.py +25 -15
- openstackclient/object/v1/object.py +25 -15
- openstackclient/py.typed +0 -0
- openstackclient/shell.py +46 -10
- openstackclient/tests/functional/base.py +55 -20
- openstackclient/tests/functional/common/test_extension.py +4 -0
- openstackclient/tests/functional/common/test_quota.py +3 -1
- openstackclient/tests/functional/compute/v2/common.py +14 -13
- openstackclient/tests/functional/compute/v2/test_flavor.py +3 -1
- openstackclient/tests/functional/compute/v2/test_server.py +3 -0
- openstackclient/tests/functional/identity/v2/common.py +10 -6
- openstackclient/tests/functional/identity/v2/test_role.py +4 -4
- openstackclient/tests/functional/identity/v3/common.py +25 -19
- openstackclient/tests/functional/identity/v3/test_group.py +20 -20
- openstackclient/tests/functional/identity/v3/test_idp.py +3 -1
- openstackclient/tests/functional/identity/v3/test_limit.py +47 -0
- openstackclient/tests/functional/identity/v3/test_project.py +10 -10
- openstackclient/tests/functional/identity/v3/test_role.py +18 -18
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +12 -12
- openstackclient/tests/functional/identity/v3/test_user.py +8 -8
- openstackclient/tests/functional/image/base.py +1 -6
- openstackclient/tests/functional/image/v2/test_metadef_objects.py +69 -0
- openstackclient/tests/functional/network/v2/common.py +5 -2
- openstackclient/tests/functional/network/v2/test_floating_ip.py +10 -4
- openstackclient/tests/functional/network/v2/test_ip_availability.py +4 -0
- openstackclient/tests/functional/network/v2/test_network_meter_rule.py +3 -2
- openstackclient/tests/functional/network/v2/test_network_segment.py +5 -0
- openstackclient/tests/functional/network/v2/test_subnet.py +13 -9
- openstackclient/tests/functional/object/v1/common.py +4 -0
- openstackclient/tests/functional/volume/v2/common.py +4 -0
- openstackclient/tests/functional/volume/v2/test_volume_snapshot.py +27 -11
- openstackclient/tests/functional/volume/v2/test_volume_type.py +2 -2
- openstackclient/tests/functional/volume/v3/common.py +4 -0
- openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +56 -138
- openstackclient/tests/functional/volume/v3/test_volume_type.py +2 -2
- openstackclient/tests/unit/common/test_availability_zone.py +35 -49
- openstackclient/tests/unit/common/test_extension.py +2 -2
- openstackclient/tests/unit/common/test_module.py +12 -7
- openstackclient/tests/unit/common/test_project_cleanup.py +3 -1
- openstackclient/tests/unit/common/test_quota.py +62 -23
- openstackclient/tests/unit/compute/v2/fakes.py +25 -0
- openstackclient/tests/unit/compute/v2/test_flavor.py +28 -2
- openstackclient/tests/unit/compute/v2/test_keypair.py +6 -6
- openstackclient/tests/unit/compute/v2/test_server.py +17 -104
- openstackclient/tests/unit/compute/v2/test_server_share.py +287 -0
- openstackclient/tests/unit/identity/v3/fakes.py +3 -0
- openstackclient/tests/unit/identity/v3/test_group.py +4 -14
- openstackclient/tests/unit/identity/v3/test_identity_provider.py +303 -299
- openstackclient/tests/unit/identity/v3/test_limit.py +197 -145
- openstackclient/tests/unit/identity/v3/test_project.py +831 -512
- openstackclient/tests/unit/identity/v3/test_protocol.py +97 -88
- openstackclient/tests/unit/identity/v3/test_registered_limit.py +355 -220
- openstackclient/tests/unit/identity/v3/test_user.py +4 -4
- openstackclient/tests/unit/image/v2/test_image.py +16 -16
- openstackclient/tests/unit/image/v2/test_metadef_namespaces.py +105 -6
- openstackclient/tests/unit/network/test_common.py +0 -155
- openstackclient/tests/unit/network/v2/bgpvpn/__init__.py +0 -0
- openstackclient/tests/unit/network/v2/bgpvpn/fakes.py +179 -0
- openstackclient/tests/unit/network/v2/bgpvpn/test_bgpvpn.py +584 -0
- openstackclient/tests/unit/network/v2/bgpvpn/test_network_association.py +285 -0
- openstackclient/tests/unit/network/v2/bgpvpn/test_port_association.py +384 -0
- openstackclient/tests/unit/network/v2/bgpvpn/test_router_association.py +297 -0
- openstackclient/tests/unit/network/v2/fwaas/__init__.py +0 -0
- openstackclient/tests/unit/network/v2/fwaas/test_group.py +897 -0
- openstackclient/tests/unit/network/v2/fwaas/test_policy.py +869 -0
- openstackclient/tests/unit/network/v2/fwaas/test_rule.py +980 -0
- openstackclient/tests/unit/network/v2/taas/{test_osc_tap_flow.py → test_tap_flow.py} +18 -25
- openstackclient/tests/unit/network/v2/taas/{test_osc_tap_mirror.py → test_tap_mirror.py} +19 -29
- openstackclient/tests/unit/network/v2/taas/{test_osc_tap_service.py → test_tap_service.py} +19 -29
- openstackclient/tests/unit/network/v2/test_address_group.py +2 -2
- openstackclient/tests/unit/network/v2/{test_floating_ip_network.py → test_floating_ip.py} +3 -2
- openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +13 -13
- openstackclient/tests/unit/network/v2/test_network_agent.py +8 -4
- openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +3 -3
- openstackclient/tests/unit/network/v2/test_network_flavor.py +2 -2
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +1 -1
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +2 -2
- openstackclient/tests/unit/network/v2/test_network_rbac.py +1 -1
- openstackclient/tests/unit/network/v2/test_network_segment.py +1 -1
- openstackclient/tests/unit/network/v2/test_network_segment_range.py +7 -10
- openstackclient/tests/unit/network/v2/test_network_trunk.py +1 -1
- openstackclient/tests/unit/network/v2/test_router.py +8 -9
- openstackclient/tests/unit/network/v2/{test_security_group_network.py → test_security_group.py} +1 -20
- openstackclient/tests/unit/network/v2/{test_security_group_rule_network.py → test_security_group_rule.py} +7 -41
- openstackclient/tests/unit/network/v2/test_subnet.py +2 -1
- openstackclient/tests/unit/network/v2/test_subnet_pool.py +2 -1
- openstackclient/tests/unit/object/v1/fakes.py +8 -7
- openstackclient/tests/unit/object/v1/test_container.py +65 -101
- openstackclient/tests/unit/object/v1/test_container_all.py +8 -1
- openstackclient/tests/unit/object/v1/test_object.py +44 -84
- openstackclient/tests/unit/object/v1/test_object_all.py +8 -1
- openstackclient/tests/unit/test_hacking.py +108 -0
- openstackclient/tests/unit/volume/v2/fakes.py +1 -0
- openstackclient/tests/unit/volume/v2/test_consistency_group.py +8 -2
- openstackclient/tests/unit/volume/v2/test_volume.py +7 -6
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +1 -5
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +2 -1
- openstackclient/tests/unit/volume/v2/test_volume_type.py +2 -4
- openstackclient/tests/unit/volume/v3/fakes.py +1 -0
- openstackclient/tests/unit/volume/v3/test_volume.py +94 -15
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +1 -1
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +1 -5
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +55 -1
- openstackclient/tests/unit/volume/v3/test_volume_type.py +2 -4
- openstackclient/volume/client.py +7 -3
- openstackclient/volume/v2/backup_record.py +15 -6
- openstackclient/volume/v2/consistency_group.py +37 -25
- openstackclient/volume/v2/consistency_group_snapshot.py +27 -12
- openstackclient/volume/v2/qos_specs.py +30 -19
- openstackclient/volume/v2/service.py +17 -6
- openstackclient/volume/v2/volume.py +69 -34
- openstackclient/volume/v2/volume_backend.py +19 -6
- openstackclient/volume/v2/volume_backup.py +48 -22
- openstackclient/volume/v2/volume_host.py +6 -4
- openstackclient/volume/v2/volume_snapshot.py +52 -26
- openstackclient/volume/v2/volume_transfer_request.py +33 -15
- openstackclient/volume/v2/volume_type.py +46 -27
- openstackclient/volume/v3/block_storage_cleanup.py +11 -3
- openstackclient/volume/v3/block_storage_cluster.py +19 -7
- openstackclient/volume/v3/block_storage_log_level.py +15 -6
- openstackclient/volume/v3/block_storage_manage.py +10 -4
- openstackclient/volume/v3/block_storage_resource_filter.py +17 -5
- openstackclient/volume/v3/service.py +16 -6
- openstackclient/volume/v3/volume.py +103 -46
- openstackclient/volume/v3/volume_attachment.py +43 -21
- openstackclient/volume/v3/volume_backup.py +55 -26
- openstackclient/volume/v3/volume_group.py +23 -13
- openstackclient/volume/v3/volume_group_snapshot.py +32 -13
- openstackclient/volume/v3/volume_group_type.py +26 -13
- openstackclient/volume/v3/volume_message.py +15 -7
- openstackclient/volume/v3/volume_snapshot.py +71 -34
- openstackclient/volume/v3/volume_transfer_request.py +33 -15
- openstackclient/volume/v3/volume_type.py +45 -27
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/METADATA +6 -6
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/RECORD +279 -267
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/entry_points.txt +53 -1
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/licenses/AUTHORS +9 -0
- python_openstackclient-10.0.0.dist-info/pbr.json +1 -0
- openstackclient/api/image_v1.py +0 -69
- openstackclient/api/image_v2.py +0 -79
- openstackclient/network/v2/floating_ip_pool.py +0 -38
- openstackclient/tests/functional/image/v1/test_image.py +0 -97
- openstackclient/tests/unit/api/test_image_v1.py +0 -96
- openstackclient/tests/unit/api/test_image_v2.py +0 -96
- openstackclient/tests/unit/network/v2/test_floating_ip_compute.py +0 -248
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_compute.py +0 -49
- openstackclient/tests/unit/network/v2/test_floating_ip_pool_network.py +0 -39
- openstackclient/tests/unit/network/v2/test_network_compute.py +0 -404
- openstackclient/tests/unit/network/v2/test_security_group_compute.py +0 -392
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +0 -555
- python_openstackclient-8.3.0.dist-info/pbr.json +0 -1
- /openstackclient/{tests/functional/image/v1 → network/v2/bgpvpn}/__init__.py +0 -0
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/licenses/LICENSE +0 -0
- {python_openstackclient-8.3.0.dist-info → python_openstackclient-10.0.0.dist-info}/top_level.txt +0 -0
|
@@ -77,13 +77,9 @@ class TestCreateTapFlow(network_fakes.TestNetworkV2):
|
|
|
77
77
|
'direction': 'BOTH',
|
|
78
78
|
},
|
|
79
79
|
)
|
|
80
|
-
self.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
self.app.client_manager.network.find_port.return_value = fake_port
|
|
84
|
-
self.app.client_manager.network.find_tap_service.return_value = (
|
|
85
|
-
fake_tap_service
|
|
86
|
-
)
|
|
80
|
+
self.network_client.create_tap_flow.return_value = fake_tap_flow
|
|
81
|
+
self.network_client.find_port.return_value = fake_port
|
|
82
|
+
self.network_client.find_tap_service.return_value = fake_tap_service
|
|
87
83
|
arg_list = [
|
|
88
84
|
'--name',
|
|
89
85
|
fake_tap_flow['name'],
|
|
@@ -103,8 +99,7 @@ class TestCreateTapFlow(network_fakes.TestNetworkV2):
|
|
|
103
99
|
|
|
104
100
|
parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
|
|
105
101
|
columns, data = self.cmd.take_action(parsed_args)
|
|
106
|
-
|
|
107
|
-
mock_create_t_f.assert_called_once_with(
|
|
102
|
+
self.network_client.create_tap_flow.assert_called_once_with(
|
|
108
103
|
**{
|
|
109
104
|
'name': fake_tap_flow['name'],
|
|
110
105
|
'source_port': fake_tap_flow['source_port'],
|
|
@@ -129,7 +124,7 @@ class TestListTapFlow(network_fakes.TestNetworkV2):
|
|
|
129
124
|
fake_tap_flows = list(
|
|
130
125
|
sdk_fakes.generate_fake_resources(_tap_flow.TapFlow, count=2)
|
|
131
126
|
)
|
|
132
|
-
self.
|
|
127
|
+
self.network_client.tap_flows.return_value = fake_tap_flows
|
|
133
128
|
arg_list = []
|
|
134
129
|
verify_list = []
|
|
135
130
|
|
|
@@ -137,7 +132,7 @@ class TestListTapFlow(network_fakes.TestNetworkV2):
|
|
|
137
132
|
|
|
138
133
|
headers, data = self.cmd.take_action(parsed_args)
|
|
139
134
|
|
|
140
|
-
self.
|
|
135
|
+
self.network_client.tap_flows.assert_called_once()
|
|
141
136
|
self.assertEqual(headers, list(headers_long))
|
|
142
137
|
self.assertCountEqual(
|
|
143
138
|
list(data),
|
|
@@ -151,7 +146,7 @@ class TestListTapFlow(network_fakes.TestNetworkV2):
|
|
|
151
146
|
class TestDeleteTapFlow(network_fakes.TestNetworkV2):
|
|
152
147
|
def setUp(self):
|
|
153
148
|
super().setUp()
|
|
154
|
-
self.
|
|
149
|
+
self.network_client.find_tap_flow.side_effect = (
|
|
155
150
|
lambda name_or_id, ignore_missing: _tap_flow.TapFlow(id=name_or_id)
|
|
156
151
|
)
|
|
157
152
|
self.cmd = osc_tap_flow.DeleteTapFlow(self.app, None)
|
|
@@ -171,8 +166,9 @@ class TestDeleteTapFlow(network_fakes.TestNetworkV2):
|
|
|
171
166
|
|
|
172
167
|
result = self.cmd.take_action(parsed_args)
|
|
173
168
|
|
|
174
|
-
|
|
175
|
-
|
|
169
|
+
self.network_client.delete_tap_flow.assert_called_once_with(
|
|
170
|
+
fake_tap_flow['id']
|
|
171
|
+
)
|
|
176
172
|
self.assertIsNone(result)
|
|
177
173
|
|
|
178
174
|
|
|
@@ -190,7 +186,7 @@ class TestShowTapFlow(network_fakes.TestNetworkV2):
|
|
|
190
186
|
|
|
191
187
|
def setUp(self):
|
|
192
188
|
super().setUp()
|
|
193
|
-
self.
|
|
189
|
+
self.network_client.find_tap_flow.side_effect = (
|
|
194
190
|
lambda name_or_id, ignore_missing: _tap_flow.TapFlow(id=name_or_id)
|
|
195
191
|
)
|
|
196
192
|
self.cmd = osc_tap_flow.ShowTapFlow(self.app, None)
|
|
@@ -198,9 +194,7 @@ class TestShowTapFlow(network_fakes.TestNetworkV2):
|
|
|
198
194
|
def test_show_tap_flow(self):
|
|
199
195
|
"""Test Show tap flow."""
|
|
200
196
|
fake_tap_flow = sdk_fakes.generate_fake_resource(_tap_flow.TapFlow)
|
|
201
|
-
self.
|
|
202
|
-
fake_tap_flow
|
|
203
|
-
)
|
|
197
|
+
self.network_client.get_tap_flow.return_value = fake_tap_flow
|
|
204
198
|
arg_list = [
|
|
205
199
|
fake_tap_flow['id'],
|
|
206
200
|
]
|
|
@@ -212,7 +206,7 @@ class TestShowTapFlow(network_fakes.TestNetworkV2):
|
|
|
212
206
|
|
|
213
207
|
headers, data = self.cmd.take_action(parsed_args)
|
|
214
208
|
|
|
215
|
-
self.
|
|
209
|
+
self.network_client.get_tap_flow.assert_called_once_with(
|
|
216
210
|
fake_tap_flow['id']
|
|
217
211
|
)
|
|
218
212
|
self.assertEqual(self.columns, headers)
|
|
@@ -245,7 +239,7 @@ class TestUpdateTapFlow(network_fakes.TestNetworkV2):
|
|
|
245
239
|
def setUp(self):
|
|
246
240
|
super().setUp()
|
|
247
241
|
self.cmd = osc_tap_flow.UpdateTapFlow(self.app, None)
|
|
248
|
-
self.
|
|
242
|
+
self.network_client.find_tap_flow.side_effect = (
|
|
249
243
|
lambda name_or_id, ignore_missing: _tap_flow.TapFlow(id=name_or_id)
|
|
250
244
|
)
|
|
251
245
|
|
|
@@ -255,9 +249,7 @@ class TestUpdateTapFlow(network_fakes.TestNetworkV2):
|
|
|
255
249
|
new_tap_flow = copy.deepcopy(fake_tap_flow)
|
|
256
250
|
new_tap_flow['name'] = self._new_name
|
|
257
251
|
|
|
258
|
-
self.
|
|
259
|
-
new_tap_flow
|
|
260
|
-
)
|
|
252
|
+
self.network_client.update_tap_flow.return_value = new_tap_flow
|
|
261
253
|
|
|
262
254
|
arg_list = [
|
|
263
255
|
fake_tap_flow['id'],
|
|
@@ -270,7 +262,8 @@ class TestUpdateTapFlow(network_fakes.TestNetworkV2):
|
|
|
270
262
|
columns, data = self.cmd.take_action(parsed_args)
|
|
271
263
|
attrs = {'name': self._new_name}
|
|
272
264
|
|
|
273
|
-
|
|
274
|
-
|
|
265
|
+
self.network_client.update_tap_flow.assert_called_once_with(
|
|
266
|
+
new_tap_flow['id'], **attrs
|
|
267
|
+
)
|
|
275
268
|
self.assertEqual(self.columns, columns)
|
|
276
269
|
self.assertEqual(_get_data(new_tap_flow, self.columns), data)
|
|
@@ -64,11 +64,9 @@ class TestCreateTapMirror(network_fakes.TestNetworkV2):
|
|
|
64
64
|
fake_tap_mirror = sdk_fakes.generate_fake_resource(
|
|
65
65
|
tap_mirror.TapMirror, **{'port_id': port_id, 'directions': 'IN=99'}
|
|
66
66
|
)
|
|
67
|
-
self.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
self.app.client_manager.network.find_port.return_value = fake_port
|
|
71
|
-
self.app.client_manager.network.find_tap_mirror.side_effect = (
|
|
67
|
+
self.network_client.create_tap_mirror.return_value = fake_tap_mirror
|
|
68
|
+
self.network_client.find_port.return_value = fake_port
|
|
69
|
+
self.network_client.find_tap_mirror.side_effect = (
|
|
72
70
|
lambda _, name_or_id: {'id': name_or_id}
|
|
73
71
|
)
|
|
74
72
|
arg_list = [
|
|
@@ -96,13 +94,10 @@ class TestCreateTapMirror(network_fakes.TestNetworkV2):
|
|
|
96
94
|
]
|
|
97
95
|
|
|
98
96
|
parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
|
|
99
|
-
self.
|
|
100
|
-
fake_tap_mirror
|
|
101
|
-
)
|
|
97
|
+
self.network_client.find_tap_mirror.return_value = fake_tap_mirror
|
|
102
98
|
|
|
103
99
|
columns, data = self.cmd.take_action(parsed_args)
|
|
104
|
-
|
|
105
|
-
create_tap_m_mock.assert_called_once_with(
|
|
100
|
+
self.network_client.create_tap_mirror.assert_called_once_with(
|
|
106
101
|
**{
|
|
107
102
|
'name': fake_tap_mirror['name'],
|
|
108
103
|
'port_id': fake_tap_mirror['port_id'],
|
|
@@ -128,9 +123,7 @@ class TestListTapMirror(network_fakes.TestNetworkV2):
|
|
|
128
123
|
fake_tap_mirrors = list(
|
|
129
124
|
sdk_fakes.generate_fake_resources(tap_mirror.TapMirror, count=4)
|
|
130
125
|
)
|
|
131
|
-
self.
|
|
132
|
-
fake_tap_mirrors
|
|
133
|
-
)
|
|
126
|
+
self.network_client.tap_mirrors.return_value = fake_tap_mirrors
|
|
134
127
|
|
|
135
128
|
arg_list = []
|
|
136
129
|
verify_list = []
|
|
@@ -139,7 +132,7 @@ class TestListTapMirror(network_fakes.TestNetworkV2):
|
|
|
139
132
|
|
|
140
133
|
headers, data = self.cmd.take_action(parsed_args)
|
|
141
134
|
|
|
142
|
-
self.
|
|
135
|
+
self.network_client.tap_mirrors.assert_called_once()
|
|
143
136
|
self.assertEqual(headers, list(headers_long))
|
|
144
137
|
self.assertCountEqual(
|
|
145
138
|
list(data),
|
|
@@ -153,7 +146,7 @@ class TestListTapMirror(network_fakes.TestNetworkV2):
|
|
|
153
146
|
class TestDeleteTapMirror(network_fakes.TestNetworkV2):
|
|
154
147
|
def setUp(self):
|
|
155
148
|
super().setUp()
|
|
156
|
-
self.
|
|
149
|
+
self.network_client.find_tap_mirror.side_effect = (
|
|
157
150
|
lambda name_or_id, ignore_missing: tap_mirror.TapMirror(
|
|
158
151
|
id=name_or_id
|
|
159
152
|
)
|
|
@@ -177,8 +170,9 @@ class TestDeleteTapMirror(network_fakes.TestNetworkV2):
|
|
|
177
170
|
parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
|
|
178
171
|
result = self.cmd.take_action(parsed_args)
|
|
179
172
|
|
|
180
|
-
|
|
181
|
-
|
|
173
|
+
self.network_client.delete_tap_mirror.assert_called_once_with(
|
|
174
|
+
fake_tap_mirror['id']
|
|
175
|
+
)
|
|
182
176
|
self.assertIsNone(result)
|
|
183
177
|
|
|
184
178
|
|
|
@@ -196,7 +190,7 @@ class TestShowTapMirror(network_fakes.TestNetworkV2):
|
|
|
196
190
|
|
|
197
191
|
def setUp(self):
|
|
198
192
|
super().setUp()
|
|
199
|
-
self.
|
|
193
|
+
self.network_client.find_tap_mirror.side_effect = (
|
|
200
194
|
lambda name_or_id, ignore_missing: tap_mirror.TapMirror(
|
|
201
195
|
id=name_or_id
|
|
202
196
|
)
|
|
@@ -209,9 +203,7 @@ class TestShowTapMirror(network_fakes.TestNetworkV2):
|
|
|
209
203
|
fake_tap_mirror = sdk_fakes.generate_fake_resource(
|
|
210
204
|
tap_mirror.TapMirror
|
|
211
205
|
)
|
|
212
|
-
self.
|
|
213
|
-
fake_tap_mirror
|
|
214
|
-
)
|
|
206
|
+
self.network_client.get_tap_mirror.return_value = fake_tap_mirror
|
|
215
207
|
arg_list = [
|
|
216
208
|
fake_tap_mirror['id'],
|
|
217
209
|
]
|
|
@@ -223,8 +215,9 @@ class TestShowTapMirror(network_fakes.TestNetworkV2):
|
|
|
223
215
|
|
|
224
216
|
headers, data = self.cmd.take_action(parsed_args)
|
|
225
217
|
|
|
226
|
-
|
|
227
|
-
|
|
218
|
+
self.network_client.get_tap_mirror.assert_called_once_with(
|
|
219
|
+
fake_tap_mirror['id']
|
|
220
|
+
)
|
|
228
221
|
self.assertEqual(self.columns, headers)
|
|
229
222
|
fake_data = _get_data(
|
|
230
223
|
fake_tap_mirror, osc_tap_mirror._get_columns(fake_tap_mirror)[1]
|
|
@@ -248,7 +241,7 @@ class TestUpdateTapMirror(network_fakes.TestNetworkV2):
|
|
|
248
241
|
def setUp(self):
|
|
249
242
|
super().setUp()
|
|
250
243
|
self.cmd = osc_tap_mirror.UpdateTapMirror(self.app, None)
|
|
251
|
-
self.
|
|
244
|
+
self.network_client.find_tap_mirror.side_effect = (
|
|
252
245
|
lambda name_or_id, ignore_missing: tap_mirror.TapMirror(
|
|
253
246
|
id=name_or_id
|
|
254
247
|
)
|
|
@@ -262,9 +255,7 @@ class TestUpdateTapMirror(network_fakes.TestNetworkV2):
|
|
|
262
255
|
new_tap_mirror = copy.deepcopy(fake_tap_mirror)
|
|
263
256
|
new_tap_mirror['name'] = self._new_name
|
|
264
257
|
|
|
265
|
-
self.
|
|
266
|
-
new_tap_mirror
|
|
267
|
-
)
|
|
258
|
+
self.network_client.update_tap_mirror.return_value = new_tap_mirror
|
|
268
259
|
|
|
269
260
|
arg_list = [
|
|
270
261
|
fake_tap_mirror['id'],
|
|
@@ -277,8 +268,7 @@ class TestUpdateTapMirror(network_fakes.TestNetworkV2):
|
|
|
277
268
|
columns, data = self.cmd.take_action(parsed_args)
|
|
278
269
|
attrs = {'name': self._new_name}
|
|
279
270
|
|
|
280
|
-
|
|
281
|
-
mock_update_tap_m.assert_called_once_with(
|
|
271
|
+
self.network_client.update_tap_mirror.assert_called_once_with(
|
|
282
272
|
fake_tap_mirror['id'], **attrs
|
|
283
273
|
)
|
|
284
274
|
self.assertEqual(self.columns, columns)
|
|
@@ -65,11 +65,9 @@ class TestCreateTapService(network_fakes.TestNetworkV2):
|
|
|
65
65
|
fake_tap_service = sdk_fakes.generate_fake_resource(
|
|
66
66
|
tap_service.TapService, **{'port_id': port_id}
|
|
67
67
|
)
|
|
68
|
-
self.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
self.app.client_manager.network.find_port.return_value = fake_port
|
|
72
|
-
self.app.client_manager.network.find_tap_service.side_effect = (
|
|
68
|
+
self.network_client.create_tap_service.return_value = fake_tap_service
|
|
69
|
+
self.network_client.find_port.return_value = fake_port
|
|
70
|
+
self.network_client.find_tap_service.side_effect = (
|
|
73
71
|
lambda _, name_or_id: {'id': name_or_id}
|
|
74
72
|
)
|
|
75
73
|
arg_list = [
|
|
@@ -85,13 +83,10 @@ class TestCreateTapService(network_fakes.TestNetworkV2):
|
|
|
85
83
|
]
|
|
86
84
|
|
|
87
85
|
parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
|
|
88
|
-
self.
|
|
89
|
-
fake_tap_service
|
|
90
|
-
)
|
|
86
|
+
self.network_client.find_tap_service.return_value = fake_tap_service
|
|
91
87
|
|
|
92
88
|
columns, data = self.cmd.take_action(parsed_args)
|
|
93
|
-
|
|
94
|
-
create_tap_s_mock.assert_called_once_with(
|
|
89
|
+
self.network_client.create_tap_service.assert_called_once_with(
|
|
95
90
|
**{
|
|
96
91
|
'name': fake_tap_service['name'],
|
|
97
92
|
'port_id': fake_tap_service['port_id'],
|
|
@@ -114,9 +109,7 @@ class TestListTapService(network_fakes.TestNetworkV2):
|
|
|
114
109
|
fake_tap_services = list(
|
|
115
110
|
sdk_fakes.generate_fake_resources(tap_service.TapService, count=4)
|
|
116
111
|
)
|
|
117
|
-
self.
|
|
118
|
-
fake_tap_services
|
|
119
|
-
)
|
|
112
|
+
self.network_client.tap_services.return_value = fake_tap_services
|
|
120
113
|
|
|
121
114
|
arg_list = []
|
|
122
115
|
verify_list = []
|
|
@@ -125,7 +118,7 @@ class TestListTapService(network_fakes.TestNetworkV2):
|
|
|
125
118
|
|
|
126
119
|
headers, data = self.cmd.take_action(parsed_args)
|
|
127
120
|
|
|
128
|
-
self.
|
|
121
|
+
self.network_client.tap_services.assert_called_once()
|
|
129
122
|
self.assertEqual(headers, list(headers_long))
|
|
130
123
|
self.assertCountEqual(
|
|
131
124
|
list(data),
|
|
@@ -139,7 +132,7 @@ class TestListTapService(network_fakes.TestNetworkV2):
|
|
|
139
132
|
class TestDeleteTapService(network_fakes.TestNetworkV2):
|
|
140
133
|
def setUp(self):
|
|
141
134
|
super().setUp()
|
|
142
|
-
self.
|
|
135
|
+
self.network_client.find_tap_service.side_effect = (
|
|
143
136
|
lambda name_or_id, ignore_missing: tap_service.TapService(
|
|
144
137
|
id=name_or_id
|
|
145
138
|
)
|
|
@@ -163,8 +156,9 @@ class TestDeleteTapService(network_fakes.TestNetworkV2):
|
|
|
163
156
|
parsed_args = self.check_parser(self.cmd, arg_list, verify_list)
|
|
164
157
|
result = self.cmd.take_action(parsed_args)
|
|
165
158
|
|
|
166
|
-
|
|
167
|
-
|
|
159
|
+
self.network_client.delete_tap_service.assert_called_once_with(
|
|
160
|
+
fake_tap_service['id']
|
|
161
|
+
)
|
|
168
162
|
self.assertIsNone(result)
|
|
169
163
|
|
|
170
164
|
|
|
@@ -180,7 +174,7 @@ class TestShowTapService(network_fakes.TestNetworkV2):
|
|
|
180
174
|
|
|
181
175
|
def setUp(self):
|
|
182
176
|
super().setUp()
|
|
183
|
-
self.
|
|
177
|
+
self.network_client.find_tap_service.side_effect = (
|
|
184
178
|
lambda name_or_id, ignore_missing: tap_service.TapService(
|
|
185
179
|
id=name_or_id
|
|
186
180
|
)
|
|
@@ -193,9 +187,7 @@ class TestShowTapService(network_fakes.TestNetworkV2):
|
|
|
193
187
|
fake_tap_service = sdk_fakes.generate_fake_resource(
|
|
194
188
|
tap_service.TapService
|
|
195
189
|
)
|
|
196
|
-
self.
|
|
197
|
-
fake_tap_service
|
|
198
|
-
)
|
|
190
|
+
self.network_client.get_tap_service.return_value = fake_tap_service
|
|
199
191
|
arg_list = [
|
|
200
192
|
fake_tap_service['id'],
|
|
201
193
|
]
|
|
@@ -207,8 +199,9 @@ class TestShowTapService(network_fakes.TestNetworkV2):
|
|
|
207
199
|
|
|
208
200
|
headers, data = self.cmd.take_action(parsed_args)
|
|
209
201
|
|
|
210
|
-
|
|
211
|
-
|
|
202
|
+
self.network_client.get_tap_service.assert_called_once_with(
|
|
203
|
+
fake_tap_service['id']
|
|
204
|
+
)
|
|
212
205
|
self.assertEqual(self.columns, headers)
|
|
213
206
|
fake_data = _get_data(
|
|
214
207
|
fake_tap_service, osc_tap_service._get_columns(fake_tap_service)[1]
|
|
@@ -231,7 +224,7 @@ class TestUpdateTapService(network_fakes.TestNetworkV2):
|
|
|
231
224
|
def setUp(self):
|
|
232
225
|
super().setUp()
|
|
233
226
|
self.cmd = osc_tap_service.UpdateTapService(self.app, None)
|
|
234
|
-
self.
|
|
227
|
+
self.network_client.find_tap_service.side_effect = (
|
|
235
228
|
lambda name_or_id, ignore_missing: tap_service.TapService(
|
|
236
229
|
id=name_or_id
|
|
237
230
|
)
|
|
@@ -245,9 +238,7 @@ class TestUpdateTapService(network_fakes.TestNetworkV2):
|
|
|
245
238
|
new_tap_service = copy.deepcopy(fake_tap_service)
|
|
246
239
|
new_tap_service['name'] = self._new_name
|
|
247
240
|
|
|
248
|
-
self.
|
|
249
|
-
new_tap_service
|
|
250
|
-
)
|
|
241
|
+
self.network_client.update_tap_service.return_value = new_tap_service
|
|
251
242
|
|
|
252
243
|
arg_list = [
|
|
253
244
|
fake_tap_service['id'],
|
|
@@ -260,8 +251,7 @@ class TestUpdateTapService(network_fakes.TestNetworkV2):
|
|
|
260
251
|
columns, data = self.cmd.take_action(parsed_args)
|
|
261
252
|
attrs = {'name': self._new_name}
|
|
262
253
|
|
|
263
|
-
|
|
264
|
-
mock_update_tap_s.assert_called_once_with(
|
|
254
|
+
self.network_client.update_tap_service.assert_called_once_with(
|
|
265
255
|
fake_tap_service['id'], **attrs
|
|
266
256
|
)
|
|
267
257
|
self.assertEqual(self.columns, columns)
|
|
@@ -519,7 +519,7 @@ class TestUnsetAddressGroup(TestAddressGroup):
|
|
|
519
519
|
|
|
520
520
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
521
521
|
result = self.cmd.take_action(parsed_args)
|
|
522
|
-
self.network_client.remove_addresses_from_address_group.assert_called_once_with(
|
|
522
|
+
self.network_client.remove_addresses_from_address_group.assert_called_once_with(
|
|
523
523
|
self._address_group, ['10.0.0.2/32']
|
|
524
524
|
)
|
|
525
525
|
self.assertIsNone(result)
|
|
@@ -539,7 +539,7 @@ class TestUnsetAddressGroup(TestAddressGroup):
|
|
|
539
539
|
|
|
540
540
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
541
541
|
result = self.cmd.take_action(parsed_args)
|
|
542
|
-
self.network_client.remove_addresses_from_address_group.assert_called_once_with(
|
|
542
|
+
self.network_client.remove_addresses_from_address_group.assert_called_once_with(
|
|
543
543
|
self._address_group, ['10.0.0.2/32', '2001::/16']
|
|
544
544
|
)
|
|
545
545
|
self.assertIsNone(result)
|
|
@@ -383,7 +383,7 @@ class TestDeleteFloatingIPNetwork(TestFloatingIPNetwork):
|
|
|
383
383
|
self.cmd.take_action(parsed_args)
|
|
384
384
|
self.fail('CommandError should be raised.')
|
|
385
385
|
except exceptions.CommandError as e:
|
|
386
|
-
self.assertEqual('1 of 2
|
|
386
|
+
self.assertEqual('1 of 2 floating IPs failed to delete.', str(e))
|
|
387
387
|
|
|
388
388
|
self.network_client.find_ip.assert_any_call(
|
|
389
389
|
self.floating_ips[0].id,
|
|
@@ -425,7 +425,8 @@ class TestListFloatingIPNetwork(TestFloatingIPNetwork):
|
|
|
425
425
|
'Floating Network',
|
|
426
426
|
'Project',
|
|
427
427
|
)
|
|
428
|
-
columns_long =
|
|
428
|
+
columns_long = (
|
|
429
|
+
*columns,
|
|
429
430
|
'Router',
|
|
430
431
|
'Status',
|
|
431
432
|
'Description',
|
|
@@ -39,14 +39,14 @@ class TestFloatingIPPortForwarding(network_fakes.TestNetworkV2):
|
|
|
39
39
|
class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding):
|
|
40
40
|
def setUp(self):
|
|
41
41
|
super().setUp()
|
|
42
|
-
self.new_port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
|
|
42
|
+
self.new_port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
|
|
43
43
|
attrs={
|
|
44
44
|
'internal_port_id': self.port.id,
|
|
45
45
|
'floatingip_id': self.floating_ip.id,
|
|
46
46
|
}
|
|
47
47
|
)
|
|
48
48
|
|
|
49
|
-
self.new_port_forwarding_with_ranges = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
|
|
49
|
+
self.new_port_forwarding_with_ranges = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
|
|
50
50
|
use_range=True,
|
|
51
51
|
attrs={
|
|
52
52
|
'internal_port_id': self.port.id,
|
|
@@ -144,15 +144,15 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding):
|
|
|
144
144
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
145
145
|
columns, data = self.cmd.take_action(parsed_args)
|
|
146
146
|
|
|
147
|
-
self.network_client.create_floating_ip_port_forwarding.assert_called_once_with(
|
|
147
|
+
self.network_client.create_floating_ip_port_forwarding.assert_called_once_with(
|
|
148
148
|
self.new_port_forwarding.floatingip_id,
|
|
149
149
|
**{
|
|
150
|
-
'external_port_range': self.new_port_forwarding_with_ranges.external_port_range,
|
|
151
|
-
'internal_ip_address': self.new_port_forwarding_with_ranges.internal_ip_address,
|
|
152
|
-
'internal_port_range': self.new_port_forwarding_with_ranges.internal_port_range,
|
|
153
|
-
'internal_port_id': self.new_port_forwarding_with_ranges.internal_port_id,
|
|
150
|
+
'external_port_range': self.new_port_forwarding_with_ranges.external_port_range,
|
|
151
|
+
'internal_ip_address': self.new_port_forwarding_with_ranges.internal_ip_address,
|
|
152
|
+
'internal_port_range': self.new_port_forwarding_with_ranges.internal_port_range,
|
|
153
|
+
'internal_port_id': self.new_port_forwarding_with_ranges.internal_port_id,
|
|
154
154
|
'protocol': self.new_port_forwarding_with_ranges.protocol,
|
|
155
|
-
'description': self.new_port_forwarding_with_ranges.description,
|
|
155
|
+
'description': self.new_port_forwarding_with_ranges.description,
|
|
156
156
|
},
|
|
157
157
|
)
|
|
158
158
|
self.assertEqual(self.columns, columns)
|
|
@@ -325,11 +325,11 @@ class TestCreateFloatingIPPortForwarding(TestFloatingIPPortForwarding):
|
|
|
325
325
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
326
326
|
columns, data = self.cmd.take_action(parsed_args)
|
|
327
327
|
|
|
328
|
-
self.network_client.create_floating_ip_port_forwarding.assert_called_once_with(
|
|
328
|
+
self.network_client.create_floating_ip_port_forwarding.assert_called_once_with(
|
|
329
329
|
self.new_port_forwarding.floatingip_id,
|
|
330
330
|
**{
|
|
331
331
|
'external_port': self.new_port_forwarding.external_port,
|
|
332
|
-
'internal_ip_address': self.new_port_forwarding.internal_ip_address,
|
|
332
|
+
'internal_ip_address': self.new_port_forwarding.internal_ip_address,
|
|
333
333
|
'internal_port': self.new_port_forwarding.internal_port,
|
|
334
334
|
'internal_port_id': self.new_port_forwarding.internal_port_id,
|
|
335
335
|
'protocol': self.new_port_forwarding.protocol,
|
|
@@ -375,7 +375,7 @@ class TestDeleteFloatingIPPortForwarding(TestFloatingIPPortForwarding):
|
|
|
375
375
|
|
|
376
376
|
result = self.cmd.take_action(parsed_args)
|
|
377
377
|
|
|
378
|
-
self.network_client.delete_floating_ip_port_forwarding.assert_called_once_with(
|
|
378
|
+
self.network_client.delete_floating_ip_port_forwarding.assert_called_once_with(
|
|
379
379
|
self.floating_ip.id,
|
|
380
380
|
self._port_forwarding[0].id,
|
|
381
381
|
ignore_missing=False,
|
|
@@ -553,7 +553,7 @@ class TestSetFloatingIPPortForwarding(TestFloatingIPPortForwarding):
|
|
|
553
553
|
# The Port Forwarding to set.
|
|
554
554
|
def setUp(self):
|
|
555
555
|
super().setUp()
|
|
556
|
-
self._port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
|
|
556
|
+
self._port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
|
|
557
557
|
attrs={
|
|
558
558
|
'floatingip_id': self.floating_ip.id,
|
|
559
559
|
}
|
|
@@ -675,7 +675,7 @@ class TestShowFloatingIPPortForwarding(TestFloatingIPPortForwarding):
|
|
|
675
675
|
|
|
676
676
|
def setUp(self):
|
|
677
677
|
super().setUp()
|
|
678
|
-
self._port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
|
|
678
|
+
self._port_forwarding = network_fakes.FakeFloatingIPPortForwarding.create_one_port_forwarding(
|
|
679
679
|
attrs={
|
|
680
680
|
'floatingip_id': self.floating_ip.id,
|
|
681
681
|
}
|
|
@@ -340,8 +340,8 @@ class TestListNetworkAgent(TestNetworkAgent):
|
|
|
340
340
|
)
|
|
341
341
|
|
|
342
342
|
# Add a column 'HA State' and corresponding data.
|
|
343
|
-
router_agent_columns = self.columns
|
|
344
|
-
router_agent_data = [d
|
|
343
|
+
router_agent_columns = (*self.columns, 'HA State')
|
|
344
|
+
router_agent_data = [(*d, '') for d in self.data]
|
|
345
345
|
|
|
346
346
|
self.assertEqual(router_agent_columns, columns)
|
|
347
347
|
self.assertEqual(len(router_agent_data), len(list(data)))
|
|
@@ -541,8 +541,9 @@ class TestShowNetworkAgent(TestNetworkAgent):
|
|
|
541
541
|
'configuration',
|
|
542
542
|
'created_at',
|
|
543
543
|
'description',
|
|
544
|
-
'
|
|
544
|
+
'ha_chassis_priority',
|
|
545
545
|
'ha_state',
|
|
546
|
+
'host',
|
|
546
547
|
'id',
|
|
547
548
|
'last_heartbeat_at',
|
|
548
549
|
'resources_synced',
|
|
@@ -558,6 +559,9 @@ class TestShowNetworkAgent(TestNetworkAgent):
|
|
|
558
559
|
format_columns.DictColumn(_network_agent.configuration),
|
|
559
560
|
_network_agent.created_at,
|
|
560
561
|
_network_agent.description,
|
|
562
|
+
# NOTE(ralonsoh): `ha_chassis_priority` column is still not supported
|
|
563
|
+
# by the API. See LP#2103521.
|
|
564
|
+
None,
|
|
561
565
|
_network_agent.ha_state,
|
|
562
566
|
_network_agent.host,
|
|
563
567
|
_network_agent.id,
|
|
@@ -601,5 +605,5 @@ class TestShowNetworkAgent(TestNetworkAgent):
|
|
|
601
605
|
self.network_client.get_agent.assert_called_once_with(
|
|
602
606
|
self._network_agent.id
|
|
603
607
|
)
|
|
604
|
-
self.
|
|
608
|
+
self.assertCountEqual(self.columns, columns)
|
|
605
609
|
self.assertEqual(len(list(self.data)), len(list(data)))
|
|
@@ -167,7 +167,7 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology):
|
|
|
167
167
|
]
|
|
168
168
|
|
|
169
169
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
170
|
-
|
|
170
|
+
_columns, _data = self.cmd.take_action(parsed_args)
|
|
171
171
|
|
|
172
172
|
self.network_client.validate_auto_allocated_topology.assert_called_with(
|
|
173
173
|
None
|
|
@@ -185,7 +185,7 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology):
|
|
|
185
185
|
]
|
|
186
186
|
|
|
187
187
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
188
|
-
|
|
188
|
+
_columns, _data = self.cmd.take_action(parsed_args)
|
|
189
189
|
|
|
190
190
|
self.network_client.validate_auto_allocated_topology.assert_called_with(
|
|
191
191
|
self.project.id
|
|
@@ -206,7 +206,7 @@ class TestValidateAutoAllocatedTopology(TestAutoAllocatedTopology):
|
|
|
206
206
|
]
|
|
207
207
|
|
|
208
208
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
209
|
-
|
|
209
|
+
_columns, _data = self.cmd.take_action(parsed_args)
|
|
210
210
|
|
|
211
211
|
self.network_client.validate_auto_allocated_topology.assert_called_with(
|
|
212
212
|
self.project.id
|
|
@@ -71,7 +71,7 @@ class TestAddNetworkFlavorToProfile(TestNetworkFlavor):
|
|
|
71
71
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
72
72
|
self.cmd.take_action(parsed_args)
|
|
73
73
|
|
|
74
|
-
self.network_client.associate_flavor_with_service_profile.assert_called_once_with(
|
|
74
|
+
self.network_client.associate_flavor_with_service_profile.assert_called_once_with(
|
|
75
75
|
self.network_flavor, self.service_profile
|
|
76
76
|
)
|
|
77
77
|
|
|
@@ -377,7 +377,7 @@ class TestRemoveNetworkFlavorFromProfile(TestNetworkFlavor):
|
|
|
377
377
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
378
378
|
self.cmd.take_action(parsed_args)
|
|
379
379
|
|
|
380
|
-
self.network_client.disassociate_flavor_from_service_profile.assert_called_once_with(
|
|
380
|
+
self.network_client.disassociate_flavor_from_service_profile.assert_called_once_with(
|
|
381
381
|
self.network_flavor, self.service_profile
|
|
382
382
|
)
|
|
383
383
|
|
|
@@ -28,7 +28,7 @@ class TestQosPolicy(network_fakes.TestNetworkV2):
|
|
|
28
28
|
def setUp(self):
|
|
29
29
|
super().setUp()
|
|
30
30
|
# Get a shortcut to the ProjectManager Mock
|
|
31
|
-
self.projects_mock = self.
|
|
31
|
+
self.projects_mock = self.identity_client.projects
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
class TestCreateNetworkQosPolicy(TestQosPolicy):
|
|
@@ -226,7 +226,7 @@ class TestCreateNetworkQosRuleMinimumPacketRate(TestNetworkQosRule):
|
|
|
226
226
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
227
227
|
columns, data = self.cmd.take_action(parsed_args)
|
|
228
228
|
|
|
229
|
-
self.network_client.create_qos_minimum_packet_rate_rule.assert_called_once_with(
|
|
229
|
+
self.network_client.create_qos_minimum_packet_rate_rule.assert_called_once_with(
|
|
230
230
|
self.qos_policy.id,
|
|
231
231
|
**{
|
|
232
232
|
'min_kpps': self.new_rule.min_kpps,
|
|
@@ -613,7 +613,7 @@ class TestDeleteNetworkQosRuleMinimumPacketRate(TestNetworkQosRule):
|
|
|
613
613
|
self.network_client.find_qos_policy.assert_called_once_with(
|
|
614
614
|
self.qos_policy.id, ignore_missing=False
|
|
615
615
|
)
|
|
616
|
-
self.network_client.delete_qos_minimum_packet_rate_rule.assert_called_once_with(
|
|
616
|
+
self.network_client.delete_qos_minimum_packet_rate_rule.assert_called_once_with(
|
|
617
617
|
self.new_rule.id, self.qos_policy.id
|
|
618
618
|
)
|
|
619
619
|
self.assertIsNone(result)
|
|
@@ -224,7 +224,7 @@ class TestCreateNetworkRBAC(TestNetworkRBAC):
|
|
|
224
224
|
]
|
|
225
225
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
226
226
|
|
|
227
|
-
|
|
227
|
+
_columns, _data = self.cmd.take_action(parsed_args)
|
|
228
228
|
|
|
229
229
|
self.network_client.create_rbac_policy.assert_called_with(
|
|
230
230
|
**{
|
|
@@ -250,7 +250,7 @@ class TestListNetworkSegment(TestNetworkSegment):
|
|
|
250
250
|
'Network Type',
|
|
251
251
|
'Segment',
|
|
252
252
|
)
|
|
253
|
-
columns_long = columns
|
|
253
|
+
columns_long = (*columns, 'Physical Network')
|
|
254
254
|
|
|
255
255
|
data = []
|
|
256
256
|
for _network_segment in _network_segments:
|