From: Jason Zhang Date: Tue, 11 Dec 2012 20:34:05 +0000 (-0800) Subject: Fixed the security group port binding should be automatically X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=9ca602edc465bbef57957a153044f1acfef84682;p=openstack-build%2Fneutron-build.git Fixed the security group port binding should be automatically deleted when delete_port Added the CASCADE setting for the security group port binding database model. Also removed unused variables and imports Fixes: bug #1080887 Change-Id: Id1af121b6ee57b794cb515a0b0c26b9a6310fbc4 --- diff --git a/quantum/db/securitygroups_db.py b/quantum/db/securitygroups_db.py index b8678cfef..f160522c4 100644 --- a/quantum/db/securitygroups_db.py +++ b/quantum/db/securitygroups_db.py @@ -38,7 +38,9 @@ class SecurityGroup(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant): class SecurityGroupPortBinding(model_base.BASEV2): """Represents binding between quantum ports and security profiles""" - port_id = sa.Column(sa.String(36), sa.ForeignKey("ports.id"), + port_id = sa.Column(sa.String(36), + sa.ForeignKey("ports.id", + ondelete='CASCADE'), primary_key=True) security_group_id = sa.Column(sa.String(36), sa.ForeignKey("securitygroups.id"), @@ -287,9 +289,6 @@ class SecurityGroupDbMixin(ext_sg.SecurityGroupPluginBase): rule.get('external_id')): raise ext_sg.SecurityGroupNotProxyMode() - protocol = rule.get('protocol') - ethertype = rule.get('ethertype') - # Check that port_range's are valid if (rule['port_range_min'] is None and rule['port_range_max'] is None): diff --git a/quantum/tests/unit/test_extension_security_group.py b/quantum/tests/unit/test_extension_security_group.py index baff8188e..9d3fa756d 100644 --- a/quantum/tests/unit/test_extension_security_group.py +++ b/quantum/tests/unit/test_extension_security_group.py @@ -19,21 +19,13 @@ import os import mock import webob.exc -from quantum.api.extensions import PluginAwareExtensionManager -from quantum.api.v2 import attributes -from quantum.api.v2.router import APIRouter -from quantum.common import config from quantum.common.test_lib import test_config from quantum import context -from quantum.db import api as db from quantum.db import db_base_plugin_v2 from quantum.db import securitygroups_db from quantum.extensions import securitygroup as ext_sg -from quantum.manager import QuantumManager from quantum.openstack.common import cfg from quantum.tests.unit import test_db_plugin -from quantum.tests.unit import test_extensions -from quantum.wsgi import JSONDeserializer DB_PLUGIN_KLASS = ('quantum.tests.unit.test_extension_security_group.' 'SecurityGroupTestPlugin') @@ -200,12 +192,6 @@ class SecurityGroupTestPlugin(db_base_plugin_v2.QuantumDbPluginV2, self._extend_port_dict_security_group(context, port) return port - def delete_port(self, context, id): - session = context.session - with session.begin(subtransactions=True): - self._delete_port_security_group_bindings(context, id) - super(SecurityGroupTestPlugin, self).delete_port(context, id) - def create_network(self, context, network): tenant_id = self._get_tenant_id_for_create(context, network['network']) self._ensure_default_security_group(context, tenant_id)