Prohibit deletion of ports currently in use by a trunk
A port that is currently in use as a trunk port or a subport cannot be
deleted. The trunk or subport that the port is owned by must be deleted
first.
Partially-implements: blueprint vlan-aware-vms
Change-Id: I35aec716b44b85a686c9d0f8f591d7d1ec21a794
diff --git a/neutron/tests/tempest/api/test_trunk_negative.py b/neutron/tests/tempest/api/test_trunk_negative.py
index 16a9af3..654b497 100644
--- a/neutron/tests/tempest/api/test_trunk_negative.py
+++ b/neutron/tests/tempest/api/test_trunk_negative.py
@@ -216,3 +216,22 @@
trunk = self._create_trunk_with_network_and_parent([])
self.assertRaises(lib_exc.NotFound, self.client.remove_subports,
trunk['trunk']['id'], [subport_data])
+
+ @test.attr(type='negative')
+ @test.idempotent_id('6c9c5126-4f61-11e6-8248-40a8f063c891')
+ def test_delete_port_in_use_by_trunk(self):
+ trunk = self._create_trunk_with_network_and_parent(None)
+ self.assertRaises(lib_exc.Conflict, self.client.delete_port,
+ trunk['trunk']['port_id'])
+
+ @test.attr(type='negative')
+ @test.idempotent_id('343a03d0-4f7c-11e6-97fa-40a8f063c891')
+ def test_delete_port_in_use_by_subport(self):
+ network = self.create_network()
+ port = self.create_port(network)
+ subports = [{'port_id': port['id'],
+ 'segmentation_type': 'vlan',
+ 'segmentation_id': 2}]
+ self._create_trunk_with_network_and_parent(subports)
+ self.assertRaises(lib_exc.Conflict, self.client.delete_port,
+ port['id'])