Merge "models: move AllowedAddressPair model under neutron/db/models"

This commit is contained in:
Jenkins
2016-08-13 01:59:55 +00:00
committed by Gerrit Code Review
6 changed files with 60 additions and 31 deletions

View File

@@ -10,21 +10,13 @@
# License for the specific language governing permissions and limitations
# under the License.
import sqlalchemy as sa
from sqlalchemy import orm
import sys
from neutron.db import model_base
from neutron.db import models_v2
from neutron.common import _deprecate
from neutron.db.models import allowed_address_pair as aap_models
class AllowedAddressPair(model_base.BASEV2):
port_id = sa.Column(sa.String(36),
sa.ForeignKey('ports.id', ondelete="CASCADE"),
primary_key=True)
mac_address = sa.Column(sa.String(32), nullable=False, primary_key=True)
ip_address = sa.Column(sa.String(64), nullable=False, primary_key=True)
port = orm.relationship(
models_v2.Port,
backref=orm.backref("allowed_address_pairs",
lazy="joined", cascade="delete"))
# WARNING: THESE MUST BE THE LAST TWO LINES IN THIS MODULE
_OLD_REF = sys.modules[__name__]
sys.modules[__name__] = _deprecate._DeprecateSubset(globals(), aap_models)
# WARNING: THESE MUST BE THE LAST TWO LINES IN THIS MODULE

View File

@@ -29,11 +29,11 @@ from neutron.callbacks import registry
from neutron.callbacks import resources
from neutron.common import constants as l3_const
from neutron.common import utils as n_utils
from neutron.db.allowed_address_pairs import models as addr_pair_db
from neutron.db import api as db_api
from neutron.db import l3_agentschedulers_db as l3_sched_db
from neutron.db import l3_attrs_db
from neutron.db import l3_db
from neutron.db.models import allowed_address_pair as aap_models
from neutron.db import models_v2
from neutron.extensions import l3
from neutron.extensions import portbindings
@@ -212,8 +212,8 @@ class L3_NAT_with_dvr_db_mixin(l3_db.L3_NAT_db_mixin,
"""Return all active ports associated with the allowed_addr_pair ip."""
query = context.session.query(
models_v2.Port).filter(
models_v2.Port.id == addr_pair_db.AllowedAddressPair.port_id,
addr_pair_db.AllowedAddressPair.ip_address == fixed_ip,
models_v2.Port.id == aap_models.AllowedAddressPair.port_id,
aap_models.AllowedAddressPair.ip_address == fixed_ip,
models_v2.Port.network_id == network_id,
models_v2.Port.admin_state_up == True) # noqa
return query.all()

View File

@@ -21,14 +21,17 @@ Based on this comparison database can be healed with healing migration.
"""
# TODO(ihrachys): move the module under neutron/tests
import os.path
from neutron.db import address_scope_db # noqa
from neutron.db import agents_db # noqa
from neutron.db import agentschedulers_db # noqa
from neutron.db.allowed_address_pairs import models # noqa
from neutron.db import dns_db # noqa
from neutron.db import dvr_mac_db # noqa
from neutron.db import external_net_db # noqa
from neutron.db.extra_dhcp_opt import models # noqa
from neutron.db.extra_dhcp_opt import models as edo_models # noqa
from neutron.db import extraroute_db # noqa
from neutron.db import flavors_db # noqa
from neutron.db import l3_agentschedulers_db # noqa
@@ -39,13 +42,13 @@ from neutron.db import l3_gwmode_db # noqa
from neutron.db import l3_hamode_db # noqa
from neutron.db.metering import metering_db # noqa
from neutron.db import model_base
from neutron.db.models import securitygroup # noqa
from neutron.db import models
from neutron.db import models_v2 # noqa
from neutron.db.port_security import models # noqa
from neutron.db.port_security import models as ps_models # noqa
from neutron.db import portbindings_db # noqa
from neutron.db import provisioning_blocks # noqa
from neutron.db.qos import models as qos_models # noqa
from neutron.db.quota import models # noqa
from neutron.db.quota import models as quota_models # noqa
from neutron.db import rbac_db_models # noqa
from neutron.db import segments_db # noqa
from neutron.db import servicetype_db # noqa
@@ -56,10 +59,14 @@ from neutron.plugins.ml2.drivers import type_geneve # noqa
from neutron.plugins.ml2.drivers import type_gre # noqa
from neutron.plugins.ml2.drivers import type_vlan # noqa
from neutron.plugins.ml2.drivers import type_vxlan # noqa
from neutron.plugins.ml2 import models # noqa
from neutron.services.auto_allocate import models # noqa
from neutron.plugins.ml2 import models as ml2_models # noqa
from neutron.services.auto_allocate import models as aa_models # noqa
from neutron.services.segments import db # noqa
from neutron.services.trunk import models # noqa
from neutron.services.trunk import models as trunk_models # noqa
from neutron.tests import tools
tools.import_modules_recursively(os.path.dirname(models.__file__))
def get_metadata():

View File

@@ -0,0 +1,30 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import sqlalchemy as sa
from sqlalchemy import orm
from neutron.db import model_base
from neutron.db import models_v2
class AllowedAddressPair(model_base.BASEV2):
port_id = sa.Column(sa.String(36),
sa.ForeignKey('ports.id', ondelete="CASCADE"),
primary_key=True)
mac_address = sa.Column(sa.String(32), nullable=False, primary_key=True)
ip_address = sa.Column(sa.String(64), nullable=False, primary_key=True)
port = orm.relationship(
models_v2.Port,
backref=orm.backref("allowed_address_pairs",
lazy="joined", cascade="delete"))

View File

@@ -21,7 +21,7 @@ from sqlalchemy.orm import exc
from neutron._i18n import _, _LW
from neutron.common import ipv6_utils as ipv6
from neutron.common import utils
from neutron.db.allowed_address_pairs import models as addr_pair
from neutron.db.models import allowed_address_pair as aap_models
from neutron.db.models import securitygroup as sg_models
from neutron.db import models_v2
from neutron.db import securitygroups_db as sg_db
@@ -271,14 +271,14 @@ class SecurityGroupServerRpcMixin(sg_db.SecurityGroupDbMixin):
# table instead of via the Port table skip an unnecessary intermediary
query = context.session.query(sg_binding_sgid,
models_v2.IPAllocation.ip_address,
addr_pair.AllowedAddressPair.ip_address)
aap_models.AllowedAddressPair.ip_address)
query = query.join(models_v2.IPAllocation,
ip_port == sg_binding_port)
# Outerjoin because address pairs may be null and we still want the
# IP for the port.
query = query.outerjoin(
addr_pair.AllowedAddressPair,
sg_binding_port == addr_pair.AllowedAddressPair.port_id)
aap_models.AllowedAddressPair,
sg_binding_port == aap_models.AllowedAddressPair.port_id)
query = query.filter(sg_binding_sgid.in_(remote_group_ids))
# Each allowed address pair IP record for a port beyond the 1st
# will have a duplicate regular IP in the query response since

View File

@@ -14,7 +14,7 @@ from oslo_versionedobjects import base as obj_base
from oslo_versionedobjects import fields as obj_fields
from neutron.common import utils
from neutron.db.allowed_address_pairs import models
from neutron.db.models import allowed_address_pair as models
from neutron.objects import base
from neutron.objects import common_types