Merge "Tempest: change way how QoS policies are cleaned"

This commit is contained in:
Jenkins 2017-08-25 18:01:14 +00:00 committed by Gerrit Code Review
commit 86d80ee336
2 changed files with 13 additions and 41 deletions

View File

@ -118,14 +118,6 @@ class BaseNetworkTest(test.BaseTestCase):
@classmethod
def resource_cleanup(cls):
if CONF.service_available.neutron:
# Clean up QoS rules
for qos_rule in cls.qos_rules:
cls._try_delete_resource(cls.admin_client.delete_qos_rule,
qos_rule['id'])
# Clean up QoS policies
for qos_policy in cls.qos_policies:
cls._try_delete_resource(cls.admin_client.delete_qos_policy,
qos_policy['id'])
# Clean up floating IPs
for floating_ip in cls.floating_ips:
cls._try_delete_resource(cls.client.delete_floatingip,
@ -194,6 +186,17 @@ class BaseNetworkTest(test.BaseTestCase):
cls.admin_client.delete_address_scope,
address_scope['id'])
# Clean up QoS rules
for qos_rule in cls.qos_rules:
cls._try_delete_resource(cls.admin_client.delete_qos_rule,
qos_rule['id'])
# Clean up QoS policies
# as all networks and ports are already removed, QoS policies
# shouldn't be "in use"
for qos_policy in cls.qos_policies:
cls._try_delete_resource(cls.admin_client.delete_qos_policy,
qos_policy['id'])
super(BaseNetworkTest, cls).resource_cleanup()
@classmethod

View File

@ -214,11 +214,6 @@ class QosTestJSON(base.BaseAdminNetworkTest):
sorted(tuple(expected_rule_type_details_keys)),
sorted(tuple(rule_type_details.keys())))
def _disassociate_network(self, client, network_id):
updated_network = client.update_network(network_id,
qos_policy_id=None)
self.assertIsNone(updated_network['network']['qos_policy_id'])
@decorators.idempotent_id('65b9ef75-1911-406a-bbdb-ca1d68d528b0')
def test_policy_association_with_admin_network(self):
policy = self.create_qos_policy(name='test-policy',
@ -231,8 +226,6 @@ class QosTestJSON(base.BaseAdminNetworkTest):
self.assertEqual(
policy['id'], retrieved_network['network']['qos_policy_id'])
self._disassociate_network(self.admin_client, network['id'])
@decorators.idempotent_id('1738de5d-0476-4163-9022-5e1b548c208e')
def test_policy_association_with_tenant_network(self):
policy = self.create_qos_policy(name='test-policy',
@ -245,8 +238,6 @@ class QosTestJSON(base.BaseAdminNetworkTest):
self.assertEqual(
policy['id'], retrieved_network['network']['qos_policy_id'])
self._disassociate_network(self.client, network['id'])
@decorators.idempotent_id('9efe63d0-836f-4cc2-b00c-468e63aa614e')
def test_policy_association_with_network_nonexistent_policy(self):
self.assertRaises(
@ -280,13 +271,6 @@ class QosTestJSON(base.BaseAdminNetworkTest):
self.assertEqual(
policy['id'], retrieved_network['network']['qos_policy_id'])
self._disassociate_network(self.admin_client, network['id'])
def _disassociate_port(self, port_id):
self.client.update_port(port_id, qos_policy_id=None)
updated_port = self.admin_client.show_port(port_id)
self.assertIsNone(updated_port['port']['qos_policy_id'])
@decorators.idempotent_id('98fcd95e-84cf-4746-860e-44692e674f2e')
def test_policy_association_with_port_shared_policy(self):
policy = self.create_qos_policy(name='test-policy',
@ -299,8 +283,6 @@ class QosTestJSON(base.BaseAdminNetworkTest):
self.assertEqual(
policy['id'], retrieved_port['port']['qos_policy_id'])
self._disassociate_port(port['id'])
@decorators.idempotent_id('49e02f5a-e1dd-41d5-9855-cfa37f2d195e')
def test_policy_association_with_port_nonexistent_policy(self):
network = self.create_shared_network('test network')
@ -336,36 +318,27 @@ class QosTestJSON(base.BaseAdminNetworkTest):
self.assertEqual(
policy['id'], retrieved_port['port']['qos_policy_id'])
self._disassociate_port(port['id'])
@decorators.idempotent_id('18163237-8ba9-4db5-9525-bad6d2343c75')
def test_delete_not_allowed_if_policy_in_use_by_network(self):
policy = self.create_qos_policy(name='test-policy',
description='test policy',
shared=True)
network = self.create_shared_network(
'test network', qos_policy_id=policy['id'])
self.create_shared_network('test network', qos_policy_id=policy['id'])
self.assertRaises(
exceptions.Conflict,
self.admin_client.delete_qos_policy, policy['id'])
self._disassociate_network(self.admin_client, network['id'])
self.admin_client.delete_qos_policy(policy['id'])
@decorators.idempotent_id('24153230-84a9-4dd5-9525-bad6d2343c75')
def test_delete_not_allowed_if_policy_in_use_by_port(self):
policy = self.create_qos_policy(name='test-policy',
description='test policy',
shared=True)
network = self.create_shared_network('test network')
port = self.create_port(network, qos_policy_id=policy['id'])
self.create_port(network, qos_policy_id=policy['id'])
self.assertRaises(
exceptions.Conflict,
self.admin_client.delete_qos_policy, policy['id'])
self._disassociate_port(port['id'])
self.admin_client.delete_qos_policy(policy['id'])
@decorators.idempotent_id('a2a5849b-dd06-4b18-9664-0b6828a1fc27')
def test_qos_policy_delete_with_rules(self):
policy = self.create_qos_policy(name='test-policy',
@ -404,8 +377,6 @@ class QosTestJSON(base.BaseAdminNetworkTest):
is_default=True)
network = self.create_network('test network', client=self.admin_client,
project_id=project_id)
self.addCleanup(self._disassociate_network,
self.admin_client, network['id'])
retrieved_network = self.admin_client.show_network(network['id'])
self.assertEqual(
policy['id'], retrieved_network['network']['qos_policy_id'])
@ -421,8 +392,6 @@ class QosTestJSON(base.BaseAdminNetworkTest):
network = self.create_network('test network', client=self.admin_client,
project_id=project_id,
qos_policy_id=policy['id'])
self.addCleanup(self._disassociate_network,
self.admin_client, network['id'])
retrieved_network = self.admin_client.show_network(network['id'])
self.assertEqual(
policy['id'], retrieved_network['network']['qos_policy_id'])