python-openstackclient 8.1.0__py3-none-any.whl → 8.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openstackclient/api/compute_v2.py +2 -2
- openstackclient/api/object_store_v1.py +4 -1
- openstackclient/api/volume_v2.py +60 -0
- openstackclient/api/volume_v3.py +60 -0
- openstackclient/command.py +27 -0
- openstackclient/common/availability_zone.py +1 -1
- openstackclient/common/clientmanager.py +59 -21
- openstackclient/common/configuration.py +1 -1
- openstackclient/common/extension.py +1 -1
- openstackclient/common/limits.py +1 -1
- openstackclient/common/module.py +4 -2
- openstackclient/common/project_cleanup.py +10 -8
- openstackclient/common/quota.py +23 -6
- openstackclient/common/versions.py +1 -2
- openstackclient/compute/v2/agent.py +1 -1
- openstackclient/compute/v2/aggregate.py +6 -5
- openstackclient/compute/v2/console.py +5 -3
- openstackclient/compute/v2/console_connection.py +1 -1
- openstackclient/compute/v2/flavor.py +15 -2
- openstackclient/compute/v2/host.py +1 -1
- openstackclient/compute/v2/hypervisor.py +1 -1
- openstackclient/compute/v2/hypervisor_stats.py +1 -1
- openstackclient/compute/v2/keypair.py +1 -1
- openstackclient/compute/v2/server.py +77 -30
- openstackclient/compute/v2/server_backup.py +1 -1
- openstackclient/compute/v2/server_event.py +1 -1
- openstackclient/compute/v2/server_group.py +4 -2
- openstackclient/compute/v2/server_image.py +1 -1
- openstackclient/compute/v2/server_migration.py +1 -1
- openstackclient/compute/v2/server_volume.py +1 -1
- openstackclient/compute/v2/service.py +1 -1
- openstackclient/compute/v2/usage.py +6 -4
- openstackclient/identity/common.py +10 -14
- openstackclient/identity/v2_0/catalog.py +3 -2
- openstackclient/identity/v2_0/ec2creds.py +1 -1
- openstackclient/identity/v2_0/endpoint.py +1 -1
- openstackclient/identity/v2_0/project.py +17 -7
- openstackclient/identity/v2_0/role.py +1 -1
- openstackclient/identity/v2_0/role_assignment.py +3 -3
- openstackclient/identity/v2_0/service.py +1 -1
- openstackclient/identity/v2_0/token.py +1 -1
- openstackclient/identity/v2_0/user.py +2 -2
- openstackclient/identity/v3/access_rule.py +16 -4
- openstackclient/identity/v3/application_credential.py +116 -95
- openstackclient/identity/v3/catalog.py +3 -3
- openstackclient/identity/v3/consumer.py +1 -1
- openstackclient/identity/v3/credential.py +1 -1
- openstackclient/identity/v3/domain.py +15 -10
- openstackclient/identity/v3/ec2creds.py +1 -1
- openstackclient/identity/v3/endpoint.py +33 -12
- openstackclient/identity/v3/endpoint_group.py +1 -1
- openstackclient/identity/v3/federation_protocol.py +1 -1
- openstackclient/identity/v3/group.py +11 -5
- openstackclient/identity/v3/identity_provider.py +12 -10
- openstackclient/identity/v3/implied_role.py +1 -1
- openstackclient/identity/v3/limit.py +1 -1
- openstackclient/identity/v3/mapping.py +1 -1
- openstackclient/identity/v3/policy.py +1 -1
- openstackclient/identity/v3/project.py +34 -22
- openstackclient/identity/v3/region.py +1 -1
- openstackclient/identity/v3/registered_limit.py +16 -11
- openstackclient/identity/v3/role.py +27 -41
- openstackclient/identity/v3/role_assignment.py +12 -23
- openstackclient/identity/v3/service.py +1 -1
- openstackclient/identity/v3/service_provider.py +1 -1
- openstackclient/identity/v3/tag.py +3 -2
- openstackclient/identity/v3/token.py +3 -2
- openstackclient/identity/v3/trust.py +4 -2
- openstackclient/identity/v3/unscoped_saml.py +1 -1
- openstackclient/identity/v3/user.py +22 -13
- openstackclient/image/v1/image.py +35 -17
- openstackclient/image/v2/cache.py +11 -7
- openstackclient/image/v2/image.py +62 -12
- openstackclient/image/v2/info.py +1 -1
- openstackclient/image/v2/metadef_namespaces.py +1 -1
- openstackclient/image/v2/metadef_objects.py +9 -3
- openstackclient/image/v2/metadef_properties.py +11 -3
- openstackclient/image/v2/metadef_resource_type_association.py +1 -1
- openstackclient/image/v2/metadef_resource_types.py +1 -1
- openstackclient/image/v2/task.py +1 -1
- openstackclient/network/common.py +10 -9
- openstackclient/network/v2/address_group.py +4 -3
- openstackclient/network/v2/address_scope.py +8 -6
- openstackclient/network/v2/default_security_group_rule.py +9 -8
- openstackclient/network/v2/floating_ip.py +16 -9
- openstackclient/network/v2/floating_ip_port_forwarding.py +9 -6
- openstackclient/network/v2/ip_availability.py +7 -4
- openstackclient/network/v2/l3_conntrack_helper.py +11 -4
- openstackclient/network/v2/local_ip.py +13 -7
- openstackclient/network/v2/local_ip_association.py +7 -4
- openstackclient/network/v2/ndp_proxy.py +13 -6
- openstackclient/network/v2/network.py +33 -16
- openstackclient/network/v2/network_agent.py +5 -5
- openstackclient/network/v2/network_auto_allocated_topology.py +1 -1
- openstackclient/network/v2/network_flavor.py +1 -1
- openstackclient/network/v2/network_flavor_profile.py +1 -1
- openstackclient/network/v2/network_meter.py +1 -1
- openstackclient/network/v2/network_meter_rule.py +1 -1
- openstackclient/network/v2/network_qos_policy.py +7 -5
- openstackclient/network/v2/network_qos_rule.py +1 -1
- openstackclient/network/v2/network_qos_rule_type.py +1 -1
- openstackclient/network/v2/network_rbac.py +8 -5
- openstackclient/network/v2/network_segment.py +2 -2
- openstackclient/network/v2/network_segment_range.py +13 -6
- openstackclient/network/v2/network_service_provider.py +1 -1
- openstackclient/network/v2/network_trunk.py +65 -42
- openstackclient/network/v2/port.py +38 -20
- openstackclient/network/v2/router.py +19 -8
- openstackclient/network/v2/security_group.py +52 -7
- openstackclient/network/v2/security_group_rule.py +27 -4
- openstackclient/network/v2/subnet.py +17 -18
- openstackclient/network/v2/subnet_pool.py +11 -9
- openstackclient/network/v2/taas/__init__.py +0 -0
- openstackclient/network/v2/taas/tap_flow.py +245 -0
- openstackclient/network/v2/taas/tap_mirror.py +237 -0
- openstackclient/network/v2/taas/tap_service.py +211 -0
- openstackclient/object/v1/account.py +1 -1
- openstackclient/object/v1/container.py +1 -1
- openstackclient/object/v1/object.py +1 -1
- openstackclient/shell.py +18 -8
- openstackclient/tests/functional/identity/v3/test_access_rule.py +1 -1
- openstackclient/tests/functional/identity/v3/test_application_credential.py +7 -7
- openstackclient/tests/functional/identity/v3/test_catalog.py +42 -23
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +174 -0
- openstackclient/tests/functional/image/v2/test_cache.py +54 -0
- openstackclient/tests/functional/image/v2/test_image.py +36 -14
- openstackclient/tests/functional/image/v2/test_metadef_resource_type.py +55 -0
- openstackclient/tests/functional/volume/v2/test_volume.py +1 -1
- openstackclient/tests/functional/volume/v3/test_volume.py +2 -2
- openstackclient/tests/unit/api/test_volume_v2.py +124 -0
- openstackclient/tests/unit/api/test_volume_v3.py +124 -0
- openstackclient/tests/unit/common/test_command.py +1 -1
- openstackclient/tests/unit/common/test_extension.py +2 -3
- openstackclient/tests/unit/common/test_module.py +14 -7
- openstackclient/tests/unit/common/test_quota.py +20 -0
- openstackclient/tests/unit/compute/v2/test_aggregate.py +5 -3
- openstackclient/tests/unit/compute/v2/test_console.py +1 -4
- openstackclient/tests/unit/compute/v2/test_flavor.py +160 -177
- openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -9
- openstackclient/tests/unit/compute/v2/test_server.py +406 -81
- openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -3
- openstackclient/tests/unit/compute/v2/test_service.py +1 -3
- openstackclient/tests/unit/fakes.py +35 -134
- openstackclient/tests/unit/identity/test_common.py +100 -0
- openstackclient/tests/unit/identity/v2_0/test_project.py +4 -4
- openstackclient/tests/unit/identity/v3/fakes.py +10 -2
- openstackclient/tests/unit/identity/v3/test_application_credential.py +50 -44
- openstackclient/tests/unit/identity/v3/test_domain.py +3 -3
- openstackclient/tests/unit/identity/v3/test_endpoint.py +1 -1
- openstackclient/tests/unit/identity/v3/test_group.py +4 -2
- openstackclient/tests/unit/identity/v3/test_identity_provider.py +10 -10
- openstackclient/tests/unit/identity/v3/test_oauth.py +1 -1
- openstackclient/tests/unit/identity/v3/test_project.py +31 -54
- openstackclient/tests/unit/identity/v3/test_registered_limit.py +2 -2
- openstackclient/tests/unit/identity/v3/test_role.py +3 -90
- openstackclient/tests/unit/identity/v3/test_user.py +7 -51
- openstackclient/tests/unit/image/v1/test_image.py +47 -0
- openstackclient/tests/unit/image/v2/test_image.py +190 -9
- openstackclient/tests/unit/image/v2/test_metadef_objects.py +22 -0
- openstackclient/tests/unit/image/v2/test_metadef_properties.py +24 -10
- openstackclient/tests/unit/network/test_common.py +9 -13
- openstackclient/tests/unit/network/v2/fakes.py +1 -0
- openstackclient/tests/unit/network/v2/taas/__init__.py +0 -0
- openstackclient/tests/unit/network/v2/taas/test_osc_tap_flow.py +276 -0
- openstackclient/tests/unit/network/v2/taas/test_osc_tap_mirror.py +288 -0
- openstackclient/tests/unit/network/v2/taas/test_osc_tap_service.py +271 -0
- openstackclient/tests/unit/network/v2/test_address_group.py +19 -22
- openstackclient/tests/unit/network/v2/test_address_scope.py +10 -15
- openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +38 -49
- openstackclient/tests/unit/network/v2/test_floating_ip_network.py +21 -27
- openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +21 -18
- openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -8
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +6 -15
- openstackclient/tests/unit/network/v2/test_local_ip.py +12 -23
- openstackclient/tests/unit/network/v2/test_local_ip_association.py +13 -18
- openstackclient/tests/unit/network/v2/test_ndp_proxy.py +13 -23
- openstackclient/tests/unit/network/v2/test_network.py +41 -37
- openstackclient/tests/unit/network/v2/test_network_agent.py +13 -20
- openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +5 -8
- openstackclient/tests/unit/network/v2/test_network_flavor.py +14 -26
- openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +14 -17
- openstackclient/tests/unit/network/v2/test_network_meter.py +7 -17
- openstackclient/tests/unit/network/v2/test_network_meter_rule.py +10 -20
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +7 -13
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +44 -54
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +2 -7
- openstackclient/tests/unit/network/v2/test_network_rbac.py +21 -36
- openstackclient/tests/unit/network/v2/test_network_segment.py +13 -29
- openstackclient/tests/unit/network/v2/test_network_segment_range.py +20 -19
- openstackclient/tests/unit/network/v2/test_network_service_provider.py +1 -4
- openstackclient/tests/unit/network/v2/test_network_trunk.py +52 -47
- openstackclient/tests/unit/network/v2/test_port.py +113 -84
- openstackclient/tests/unit/network/v2/test_router.py +104 -126
- openstackclient/tests/unit/network/v2/test_security_group_network.py +25 -26
- openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +66 -18
- openstackclient/tests/unit/network/v2/test_subnet.py +35 -46
- openstackclient/tests/unit/network/v2/test_subnet_pool.py +21 -33
- openstackclient/tests/unit/volume/test_find_resource.py +4 -13
- openstackclient/tests/unit/volume/v2/test_volume.py +358 -305
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +3 -1
- openstackclient/tests/unit/volume/v3/test_volume.py +443 -415
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +9 -0
- openstackclient/volume/client.py +7 -17
- openstackclient/volume/v2/backup_record.py +1 -1
- openstackclient/volume/v2/consistency_group.py +1 -1
- openstackclient/volume/v2/consistency_group_snapshot.py +1 -1
- openstackclient/volume/v2/qos_specs.py +1 -1
- openstackclient/volume/v2/service.py +2 -2
- openstackclient/volume/v2/volume.py +80 -54
- openstackclient/volume/v2/volume_backend.py +1 -1
- openstackclient/volume/v2/volume_backup.py +5 -3
- openstackclient/volume/v2/volume_host.py +1 -2
- openstackclient/volume/v2/volume_snapshot.py +2 -2
- openstackclient/volume/v2/volume_transfer_request.py +1 -1
- openstackclient/volume/v2/volume_type.py +11 -6
- openstackclient/volume/v3/block_storage_cleanup.py +1 -1
- openstackclient/volume/v3/block_storage_cluster.py +1 -1
- openstackclient/volume/v3/block_storage_log_level.py +1 -1
- openstackclient/volume/v3/block_storage_manage.py +1 -1
- openstackclient/volume/v3/block_storage_resource_filter.py +1 -1
- openstackclient/volume/v3/service.py +2 -2
- openstackclient/volume/v3/volume.py +104 -77
- openstackclient/volume/v3/volume_attachment.py +6 -5
- openstackclient/volume/v3/volume_backup.py +18 -3
- openstackclient/volume/v3/volume_group.py +2 -2
- openstackclient/volume/v3/volume_group_snapshot.py +1 -1
- openstackclient/volume/v3/volume_group_type.py +1 -1
- openstackclient/volume/v3/volume_message.py +1 -1
- openstackclient/volume/v3/volume_snapshot.py +2 -2
- openstackclient/volume/v3/volume_transfer_request.py +1 -1
- openstackclient/volume/v3/volume_type.py +15 -9
- {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/METADATA +19 -17
- {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/RECORD +239 -224
- {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/WHEEL +1 -1
- {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/entry_points.txt +15 -0
- {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info/licenses}/AUTHORS +15 -0
- python_openstackclient-8.3.0.dist-info/pbr.json +1 -0
- openstackclient/tests/unit/common/test_logs.py +0 -221
- python_openstackclient-8.1.0.dist-info/pbr.json +0 -1
- {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info/licenses}/LICENSE +0 -0
- {python_openstackclient-8.1.0.dist-info → python_openstackclient-8.3.0.dist-info}/top_level.txt +0 -0
|
@@ -136,19 +136,18 @@ class TestCreatePort(TestPort):
|
|
|
136
136
|
def setUp(self):
|
|
137
137
|
super().setUp()
|
|
138
138
|
|
|
139
|
-
self.network_client.create_port =
|
|
140
|
-
self.network_client.set_tags =
|
|
139
|
+
self.network_client.create_port.return_value = self._port
|
|
140
|
+
self.network_client.set_tags.return_value = None
|
|
141
141
|
fake_net = network_fakes.create_one_network(
|
|
142
142
|
{
|
|
143
143
|
'id': self._port.network_id,
|
|
144
144
|
}
|
|
145
145
|
)
|
|
146
|
-
self.network_client.find_network =
|
|
146
|
+
self.network_client.find_network.return_value = fake_net
|
|
147
147
|
self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet()
|
|
148
|
-
self.network_client.find_subnet =
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
self.network_client.find_extension = mock.Mock(return_value=[])
|
|
148
|
+
self.network_client.find_subnet.return_value = self.fake_subnet
|
|
149
|
+
|
|
150
|
+
self.network_client.find_extension.return_value = []
|
|
152
151
|
# Get the command object to test
|
|
153
152
|
self.cmd = port.CreatePort(self.app, None)
|
|
154
153
|
|
|
@@ -321,9 +320,8 @@ class TestCreatePort(TestPort):
|
|
|
321
320
|
|
|
322
321
|
def test_create_with_security_group(self):
|
|
323
322
|
secgroup = network_fakes.create_one_security_group()
|
|
324
|
-
self.network_client.find_security_group =
|
|
325
|
-
|
|
326
|
-
)
|
|
323
|
+
self.network_client.find_security_group.return_value = secgroup
|
|
324
|
+
|
|
327
325
|
arglist = [
|
|
328
326
|
'--network',
|
|
329
327
|
self._port.network_id,
|
|
@@ -393,9 +391,8 @@ class TestCreatePort(TestPort):
|
|
|
393
391
|
def test_create_with_security_groups(self):
|
|
394
392
|
sg_1 = network_fakes.create_one_security_group()
|
|
395
393
|
sg_2 = network_fakes.create_one_security_group()
|
|
396
|
-
self.network_client.find_security_group =
|
|
397
|
-
|
|
398
|
-
)
|
|
394
|
+
self.network_client.find_security_group.side_effect = [sg_1, sg_2]
|
|
395
|
+
|
|
399
396
|
arglist = [
|
|
400
397
|
'--network',
|
|
401
398
|
self._port.network_id,
|
|
@@ -583,9 +580,8 @@ class TestCreatePort(TestPort):
|
|
|
583
580
|
|
|
584
581
|
def test_create_port_with_qos(self):
|
|
585
582
|
qos_policy = network_fakes.create_one_qos_policy()
|
|
586
|
-
self.network_client.find_qos_policy =
|
|
587
|
-
|
|
588
|
-
)
|
|
583
|
+
self.network_client.find_qos_policy.return_value = qos_policy
|
|
584
|
+
|
|
589
585
|
arglist = [
|
|
590
586
|
'--network',
|
|
591
587
|
self._port.network_id,
|
|
@@ -701,9 +697,7 @@ class TestCreatePort(TestPort):
|
|
|
701
697
|
else:
|
|
702
698
|
verifylist.append(('no_tag', True))
|
|
703
699
|
|
|
704
|
-
self.network_client.find_extension =
|
|
705
|
-
return_value=add_tags_in_post
|
|
706
|
-
)
|
|
700
|
+
self.network_client.find_extension.return_value = add_tags_in_post
|
|
707
701
|
|
|
708
702
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
709
703
|
columns, data = self.cmd.take_action(parsed_args)
|
|
@@ -1170,7 +1164,7 @@ class TestDeletePort(TestPort):
|
|
|
1170
1164
|
def setUp(self):
|
|
1171
1165
|
super().setUp()
|
|
1172
1166
|
|
|
1173
|
-
self.network_client.delete_port =
|
|
1167
|
+
self.network_client.delete_port.return_value = None
|
|
1174
1168
|
self.network_client.find_port = network_fakes.get_ports(
|
|
1175
1169
|
ports=self._ports
|
|
1176
1170
|
)
|
|
@@ -1223,7 +1217,7 @@ class TestDeletePort(TestPort):
|
|
|
1223
1217
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
1224
1218
|
|
|
1225
1219
|
find_mock_result = [self._ports[0], exceptions.CommandError]
|
|
1226
|
-
self.network_client.find_port =
|
|
1220
|
+
self.network_client.find_port.side_effect = find_mock_result
|
|
1227
1221
|
|
|
1228
1222
|
try:
|
|
1229
1223
|
self.cmd.take_action(parsed_args)
|
|
@@ -1324,7 +1318,7 @@ class TestListPort(compute_fakes.FakeClientMixin, TestPort):
|
|
|
1324
1318
|
def setUp(self):
|
|
1325
1319
|
super().setUp()
|
|
1326
1320
|
|
|
1327
|
-
self.network_client.ports =
|
|
1321
|
+
self.network_client.ports.return_value = self._ports
|
|
1328
1322
|
fake_router = network_fakes.create_one_router(
|
|
1329
1323
|
{
|
|
1330
1324
|
'id': 'fake-router-id',
|
|
@@ -1335,8 +1329,8 @@ class TestListPort(compute_fakes.FakeClientMixin, TestPort):
|
|
|
1335
1329
|
'id': 'fake-network-id',
|
|
1336
1330
|
}
|
|
1337
1331
|
)
|
|
1338
|
-
self.network_client.find_router =
|
|
1339
|
-
self.network_client.find_network =
|
|
1332
|
+
self.network_client.find_router.return_value = fake_router
|
|
1333
|
+
self.network_client.find_network.return_value = fake_network
|
|
1340
1334
|
|
|
1341
1335
|
# Get the command object to test
|
|
1342
1336
|
self.cmd = port.ListPort(self.app, None)
|
|
@@ -1550,9 +1544,8 @@ class TestListPort(compute_fakes.FakeClientMixin, TestPort):
|
|
|
1550
1544
|
self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet(
|
|
1551
1545
|
{'id': subnet_id}
|
|
1552
1546
|
)
|
|
1553
|
-
self.network_client.find_subnet =
|
|
1554
|
-
|
|
1555
|
-
)
|
|
1547
|
+
self.network_client.find_subnet.return_value = self.fake_subnet
|
|
1548
|
+
|
|
1556
1549
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
1557
1550
|
columns, data = self.cmd.take_action(parsed_args)
|
|
1558
1551
|
|
|
@@ -1579,9 +1572,8 @@ class TestListPort(compute_fakes.FakeClientMixin, TestPort):
|
|
|
1579
1572
|
self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet(
|
|
1580
1573
|
{'id': subnet_id}
|
|
1581
1574
|
)
|
|
1582
|
-
self.network_client.find_subnet =
|
|
1583
|
-
|
|
1584
|
-
)
|
|
1575
|
+
self.network_client.find_subnet.return_value = self.fake_subnet
|
|
1576
|
+
|
|
1585
1577
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
1586
1578
|
columns, data = self.cmd.take_action(parsed_args)
|
|
1587
1579
|
|
|
@@ -1616,9 +1608,8 @@ class TestListPort(compute_fakes.FakeClientMixin, TestPort):
|
|
|
1616
1608
|
'fields': LIST_FIELDS_TO_RETRIEVE,
|
|
1617
1609
|
}
|
|
1618
1610
|
)
|
|
1619
|
-
self.network_client.find_subnet =
|
|
1620
|
-
|
|
1621
|
-
)
|
|
1611
|
+
self.network_client.find_subnet.return_value = self.fake_subnet
|
|
1612
|
+
|
|
1622
1613
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
1623
1614
|
columns, data = self.cmd.take_action(parsed_args)
|
|
1624
1615
|
|
|
@@ -1825,12 +1816,11 @@ class TestSetPort(TestPort):
|
|
|
1825
1816
|
def setUp(self):
|
|
1826
1817
|
super().setUp()
|
|
1827
1818
|
self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet()
|
|
1828
|
-
self.network_client.find_subnet =
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
self.network_client.
|
|
1832
|
-
self.network_client.
|
|
1833
|
-
self.network_client.set_tags = mock.Mock(return_value=None)
|
|
1819
|
+
self.network_client.find_subnet.return_value = self.fake_subnet
|
|
1820
|
+
|
|
1821
|
+
self.network_client.find_port.return_value = self._port
|
|
1822
|
+
self.network_client.update_port.return_value = None
|
|
1823
|
+
self.network_client.set_tags.return_value = None
|
|
1834
1824
|
|
|
1835
1825
|
# Get the command object to test
|
|
1836
1826
|
self.cmd = port.SetPort(self.app, None)
|
|
@@ -1853,7 +1843,7 @@ class TestSetPort(TestPort):
|
|
|
1853
1843
|
_testport = network_fakes.create_one_port(
|
|
1854
1844
|
{'fixed_ips': [{'ip_address': '0.0.0.1'}]}
|
|
1855
1845
|
)
|
|
1856
|
-
self.network_client.find_port =
|
|
1846
|
+
self.network_client.find_port.return_value = _testport
|
|
1857
1847
|
arglist = [
|
|
1858
1848
|
'--fixed-ip',
|
|
1859
1849
|
'ip-address=10.0.0.12',
|
|
@@ -1881,7 +1871,7 @@ class TestSetPort(TestPort):
|
|
|
1881
1871
|
_testport = network_fakes.create_one_port(
|
|
1882
1872
|
{'fixed_ips': [{'ip_address': '0.0.0.1'}]}
|
|
1883
1873
|
)
|
|
1884
|
-
self.network_client.find_port =
|
|
1874
|
+
self.network_client.find_port.return_value = _testport
|
|
1885
1875
|
arglist = [
|
|
1886
1876
|
'--fixed-ip',
|
|
1887
1877
|
'ip-address=10.0.0.12',
|
|
@@ -1931,7 +1921,7 @@ class TestSetPort(TestPort):
|
|
|
1931
1921
|
_testport = network_fakes.create_one_port(
|
|
1932
1922
|
{'binding_profile': {'lok_i': 'visi_on'}}
|
|
1933
1923
|
)
|
|
1934
|
-
self.network_client.find_port =
|
|
1924
|
+
self.network_client.find_port.return_value = _testport
|
|
1935
1925
|
arglist = [
|
|
1936
1926
|
'--binding-profile',
|
|
1937
1927
|
'lok_i=than_os',
|
|
@@ -1956,7 +1946,7 @@ class TestSetPort(TestPort):
|
|
|
1956
1946
|
_testport = network_fakes.create_one_port(
|
|
1957
1947
|
{'mac_address': '11:22:33:44:55:66'}
|
|
1958
1948
|
)
|
|
1959
|
-
self.network_client.find_port =
|
|
1949
|
+
self.network_client.find_port.return_value = _testport
|
|
1960
1950
|
arglist = [
|
|
1961
1951
|
'--mac-address',
|
|
1962
1952
|
'66:55:44:33:22:11',
|
|
@@ -2097,7 +2087,7 @@ class TestSetPort(TestPort):
|
|
|
2097
2087
|
|
|
2098
2088
|
def test_set_port_security_group(self):
|
|
2099
2089
|
sg = network_fakes.create_one_security_group()
|
|
2100
|
-
self.network_client.find_security_group =
|
|
2090
|
+
self.network_client.find_security_group.return_value = sg
|
|
2101
2091
|
arglist = [
|
|
2102
2092
|
'--security-group',
|
|
2103
2093
|
sg.id,
|
|
@@ -2122,13 +2112,12 @@ class TestSetPort(TestPort):
|
|
|
2122
2112
|
sg_1 = network_fakes.create_one_security_group()
|
|
2123
2113
|
sg_2 = network_fakes.create_one_security_group()
|
|
2124
2114
|
sg_3 = network_fakes.create_one_security_group()
|
|
2125
|
-
self.network_client.find_security_group =
|
|
2126
|
-
|
|
2127
|
-
)
|
|
2115
|
+
self.network_client.find_security_group.side_effect = [sg_2, sg_3]
|
|
2116
|
+
|
|
2128
2117
|
_testport = network_fakes.create_one_port(
|
|
2129
2118
|
{'security_group_ids': [sg_1.id]}
|
|
2130
2119
|
)
|
|
2131
|
-
self.network_client.find_port =
|
|
2120
|
+
self.network_client.find_port.return_value = _testport
|
|
2132
2121
|
arglist = [
|
|
2133
2122
|
'--security-group',
|
|
2134
2123
|
sg_2.id,
|
|
@@ -2177,8 +2166,8 @@ class TestSetPort(TestPort):
|
|
|
2177
2166
|
_testport = network_fakes.create_one_port(
|
|
2178
2167
|
{'security_group_ids': [sg1.id]}
|
|
2179
2168
|
)
|
|
2180
|
-
self.network_client.find_port =
|
|
2181
|
-
self.network_client.find_security_group =
|
|
2169
|
+
self.network_client.find_port.return_value = _testport
|
|
2170
|
+
self.network_client.find_security_group.return_value = sg2
|
|
2182
2171
|
arglist = [
|
|
2183
2172
|
'--security-group',
|
|
2184
2173
|
sg2.id,
|
|
@@ -2226,7 +2215,7 @@ class TestSetPort(TestPort):
|
|
|
2226
2215
|
_testport = network_fakes.create_one_port(
|
|
2227
2216
|
{'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]}
|
|
2228
2217
|
)
|
|
2229
|
-
self.network_client.find_port =
|
|
2218
|
+
self.network_client.find_port.return_value = _testport
|
|
2230
2219
|
arglist = [
|
|
2231
2220
|
'--allowed-address',
|
|
2232
2221
|
'ip-address=192.168.1.45',
|
|
@@ -2255,7 +2244,7 @@ class TestSetPort(TestPort):
|
|
|
2255
2244
|
_testport = network_fakes.create_one_port(
|
|
2256
2245
|
{'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]}
|
|
2257
2246
|
)
|
|
2258
|
-
self.network_client.find_port =
|
|
2247
|
+
self.network_client.find_port.return_value = _testport
|
|
2259
2248
|
arglist = [
|
|
2260
2249
|
'--allowed-address',
|
|
2261
2250
|
'ip-address=192.168.1.45',
|
|
@@ -2372,11 +2361,10 @@ class TestSetPort(TestPort):
|
|
|
2372
2361
|
|
|
2373
2362
|
def test_set_port_with_qos(self):
|
|
2374
2363
|
qos_policy = network_fakes.create_one_qos_policy()
|
|
2375
|
-
self.network_client.find_qos_policy =
|
|
2376
|
-
|
|
2377
|
-
)
|
|
2364
|
+
self.network_client.find_qos_policy.return_value = qos_policy
|
|
2365
|
+
|
|
2378
2366
|
_testport = network_fakes.create_one_port({'qos_policy_id': None})
|
|
2379
|
-
self.network_client.find_port =
|
|
2367
|
+
self.network_client.find_port.return_value = _testport
|
|
2380
2368
|
arglist = [
|
|
2381
2369
|
'--qos-policy',
|
|
2382
2370
|
qos_policy.id,
|
|
@@ -2400,7 +2388,7 @@ class TestSetPort(TestPort):
|
|
|
2400
2388
|
|
|
2401
2389
|
def test_set_port_data_plane_status(self):
|
|
2402
2390
|
_testport = network_fakes.create_one_port({'data_plane_status': None})
|
|
2403
|
-
self.network_client.find_port =
|
|
2391
|
+
self.network_client.find_port.return_value = _testport
|
|
2404
2392
|
arglist = [
|
|
2405
2393
|
'--data-plane-status',
|
|
2406
2394
|
'ACTIVE',
|
|
@@ -2546,10 +2534,12 @@ class TestSetPort(TestPort):
|
|
|
2546
2534
|
|
|
2547
2535
|
def test_set_hints_valid_alias_value(self):
|
|
2548
2536
|
testport = network_fakes.create_one_port()
|
|
2549
|
-
self.network_client.find_port =
|
|
2550
|
-
self.network_client.find_extension =
|
|
2551
|
-
|
|
2552
|
-
|
|
2537
|
+
self.network_client.find_port.return_value = testport
|
|
2538
|
+
self.network_client.find_extension.return_value = [
|
|
2539
|
+
'port-hints',
|
|
2540
|
+
'port-hint-ovs-tx-steering',
|
|
2541
|
+
]
|
|
2542
|
+
|
|
2553
2543
|
arglist = [
|
|
2554
2544
|
'--hint',
|
|
2555
2545
|
'ovs-tx-steering=hash',
|
|
@@ -2574,10 +2564,12 @@ class TestSetPort(TestPort):
|
|
|
2574
2564
|
|
|
2575
2565
|
def test_set_hints_valid_json(self):
|
|
2576
2566
|
testport = network_fakes.create_one_port()
|
|
2577
|
-
self.network_client.find_port =
|
|
2578
|
-
self.network_client.find_extension =
|
|
2579
|
-
|
|
2580
|
-
|
|
2567
|
+
self.network_client.find_port.return_value = testport
|
|
2568
|
+
self.network_client.find_extension.return_value = [
|
|
2569
|
+
'port-hints',
|
|
2570
|
+
'port-hint-ovs-tx-steering',
|
|
2571
|
+
]
|
|
2572
|
+
|
|
2581
2573
|
arglist = [
|
|
2582
2574
|
'--hint',
|
|
2583
2575
|
'{"openvswitch": {"other_config": {"tx-steering": "hash"}}}',
|
|
@@ -2670,7 +2662,7 @@ class TestShowPort(TestPort):
|
|
|
2670
2662
|
def setUp(self):
|
|
2671
2663
|
super().setUp()
|
|
2672
2664
|
|
|
2673
|
-
self.network_client.find_port =
|
|
2665
|
+
self.network_client.find_port.return_value = self._port
|
|
2674
2666
|
|
|
2675
2667
|
# Get the command object to test
|
|
2676
2668
|
self.cmd = port.ShowPort(self.app, None)
|
|
@@ -2731,12 +2723,11 @@ class TestUnsetPort(TestPort):
|
|
|
2731
2723
|
self.fake_subnet = network_fakes.FakeSubnet.create_one_subnet(
|
|
2732
2724
|
{'id': '042eb10a-3a18-4658-ab-cf47c8d03152'}
|
|
2733
2725
|
)
|
|
2734
|
-
self.network_client.find_subnet =
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
self.network_client.
|
|
2738
|
-
self.network_client.
|
|
2739
|
-
self.network_client.set_tags = mock.Mock(return_value=None)
|
|
2726
|
+
self.network_client.find_subnet.return_value = self.fake_subnet
|
|
2727
|
+
|
|
2728
|
+
self.network_client.find_port.return_value = self._testport
|
|
2729
|
+
self.network_client.update_port.return_value = None
|
|
2730
|
+
self.network_client.set_tags.return_value = None
|
|
2740
2731
|
# Get the command object to test
|
|
2741
2732
|
self.cmd = port.UnsetPort(self.app, None)
|
|
2742
2733
|
|
|
@@ -2826,10 +2817,9 @@ class TestUnsetPort(TestPort):
|
|
|
2826
2817
|
_fake_port = network_fakes.create_one_port(
|
|
2827
2818
|
{'security_group_ids': [_fake_sg1.id, _fake_sg2.id]}
|
|
2828
2819
|
)
|
|
2829
|
-
self.network_client.find_port =
|
|
2830
|
-
self.network_client.find_security_group =
|
|
2831
|
-
|
|
2832
|
-
)
|
|
2820
|
+
self.network_client.find_port.return_value = _fake_port
|
|
2821
|
+
self.network_client.find_security_group.return_value = _fake_sg2
|
|
2822
|
+
|
|
2833
2823
|
arglist = [
|
|
2834
2824
|
'--security-group',
|
|
2835
2825
|
_fake_sg2.id,
|
|
@@ -2854,9 +2844,8 @@ class TestUnsetPort(TestPort):
|
|
|
2854
2844
|
_fake_port = network_fakes.create_one_port(
|
|
2855
2845
|
{'security_group_ids': [_fake_sg1.id]}
|
|
2856
2846
|
)
|
|
2857
|
-
self.network_client.find_security_group =
|
|
2858
|
-
|
|
2859
|
-
)
|
|
2847
|
+
self.network_client.find_security_group.return_value = _fake_sg2
|
|
2848
|
+
|
|
2860
2849
|
arglist = [
|
|
2861
2850
|
'--security-group',
|
|
2862
2851
|
_fake_sg2.id,
|
|
@@ -2875,7 +2864,7 @@ class TestUnsetPort(TestPort):
|
|
|
2875
2864
|
_fake_port = network_fakes.create_one_port(
|
|
2876
2865
|
{'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]}
|
|
2877
2866
|
)
|
|
2878
|
-
self.network_client.find_port =
|
|
2867
|
+
self.network_client.find_port.return_value = _fake_port
|
|
2879
2868
|
arglist = [
|
|
2880
2869
|
'--allowed-address',
|
|
2881
2870
|
'ip-address=192.168.1.123',
|
|
@@ -2901,7 +2890,7 @@ class TestUnsetPort(TestPort):
|
|
|
2901
2890
|
_fake_port = network_fakes.create_one_port(
|
|
2902
2891
|
{'allowed_address_pairs': [{'ip_address': '192.168.1.123'}]}
|
|
2903
2892
|
)
|
|
2904
|
-
self.network_client.find_port =
|
|
2893
|
+
self.network_client.find_port.return_value = _fake_port
|
|
2905
2894
|
arglist = [
|
|
2906
2895
|
'--allowed-address',
|
|
2907
2896
|
'ip-address=192.168.1.45',
|
|
@@ -2920,7 +2909,7 @@ class TestUnsetPort(TestPort):
|
|
|
2920
2909
|
_fake_port = network_fakes.create_one_port(
|
|
2921
2910
|
{'data_plane_status': 'ACTIVE'}
|
|
2922
2911
|
)
|
|
2923
|
-
self.network_client.find_port =
|
|
2912
|
+
self.network_client.find_port.return_value = _fake_port
|
|
2924
2913
|
arglist = [
|
|
2925
2914
|
'--data-plane-status',
|
|
2926
2915
|
_fake_port.name,
|
|
@@ -2973,7 +2962,7 @@ class TestUnsetPort(TestPort):
|
|
|
2973
2962
|
_fake_port = network_fakes.create_one_port(
|
|
2974
2963
|
{'numa_affinity_policy': 'required'}
|
|
2975
2964
|
)
|
|
2976
|
-
self.network_client.find_port =
|
|
2965
|
+
self.network_client.find_port.return_value = _fake_port
|
|
2977
2966
|
arglist = [
|
|
2978
2967
|
'--numa-policy',
|
|
2979
2968
|
_fake_port.name,
|
|
@@ -2997,7 +2986,7 @@ class TestUnsetPort(TestPort):
|
|
|
2997
2986
|
|
|
2998
2987
|
def test_unset_hints(self):
|
|
2999
2988
|
testport = network_fakes.create_one_port()
|
|
3000
|
-
self.network_client.find_port =
|
|
2989
|
+
self.network_client.find_port.return_value = testport
|
|
3001
2990
|
arglist = [
|
|
3002
2991
|
'--hints',
|
|
3003
2992
|
testport.name,
|
|
@@ -3014,3 +3003,43 @@ class TestUnsetPort(TestPort):
|
|
|
3014
3003
|
**{'hints': None},
|
|
3015
3004
|
)
|
|
3016
3005
|
self.assertIsNone(result)
|
|
3006
|
+
|
|
3007
|
+
def test_unset_device(self):
|
|
3008
|
+
testport = network_fakes.create_one_port()
|
|
3009
|
+
self.network_client.find_port.return_value = testport
|
|
3010
|
+
arglist = [
|
|
3011
|
+
'--device',
|
|
3012
|
+
testport.name,
|
|
3013
|
+
]
|
|
3014
|
+
verifylist = [
|
|
3015
|
+
('device', True),
|
|
3016
|
+
('port', testport.name),
|
|
3017
|
+
]
|
|
3018
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
3019
|
+
result = self.cmd.take_action(parsed_args)
|
|
3020
|
+
|
|
3021
|
+
self.network_client.update_port.assert_called_once_with(
|
|
3022
|
+
testport,
|
|
3023
|
+
**{'device_id': ''},
|
|
3024
|
+
)
|
|
3025
|
+
self.assertIsNone(result)
|
|
3026
|
+
|
|
3027
|
+
def test_unset_device_owner(self):
|
|
3028
|
+
testport = network_fakes.create_one_port()
|
|
3029
|
+
self.network_client.find_port.return_value = testport
|
|
3030
|
+
arglist = [
|
|
3031
|
+
'--device-owner',
|
|
3032
|
+
testport.name,
|
|
3033
|
+
]
|
|
3034
|
+
verifylist = [
|
|
3035
|
+
('device_owner', True),
|
|
3036
|
+
('port', testport.name),
|
|
3037
|
+
]
|
|
3038
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
3039
|
+
result = self.cmd.take_action(parsed_args)
|
|
3040
|
+
|
|
3041
|
+
self.network_client.update_port.assert_called_once_with(
|
|
3042
|
+
testport,
|
|
3043
|
+
**{'device_owner': ''},
|
|
3044
|
+
)
|
|
3045
|
+
self.assertIsNone(result)
|