From b078060189fc57541d854c00be6cee52b7166d72 Mon Sep 17 00:00:00 2001 From: Anindita Das Date: Tue, 13 Sep 2016 15:51:56 +0000 Subject: [PATCH] Relocate VxlanAllocation/VxlanEndpoints DB model This patch will relocate the VxlanAllocation and VxlanEndpoints db model from plugins/ml2/drivers to db/models/plugins/ml2 and separate it from mixins for OVO implementation. Change-Id: I14702ddcc5c32ba34b5f905a15cd816a69ef2b49 Partial-Bug: #1597913 --- neutron/db/migration/models/head.py | 1 - .../db/models/plugins/ml2/vxlanallocation.py | 45 +++++++++++++++++++ neutron/plugins/ml2/drivers/type_vxlan.py | 39 ++++------------ 3 files changed, 53 insertions(+), 32 deletions(-) create mode 100644 neutron/db/models/plugins/ml2/vxlanallocation.py diff --git a/neutron/db/migration/models/head.py b/neutron/db/migration/models/head.py index 93002f9a1b6..bc69d932039 100644 --- a/neutron/db/migration/models/head.py +++ b/neutron/db/migration/models/head.py @@ -55,7 +55,6 @@ from neutron.db import tag_db # noqa from neutron.ipam.drivers.neutrondb_ipam import db_models # noqa from neutron.plugins.ml2.drivers import type_geneve # 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 as ml2_models # noqa from neutron.services.auto_allocate import models as aa_models # noqa from neutron.services.segments import db # noqa diff --git a/neutron/db/models/plugins/ml2/vxlanallocation.py b/neutron/db/models/plugins/ml2/vxlanallocation.py new file mode 100644 index 00000000000..d37b2991cc5 --- /dev/null +++ b/neutron/db/models/plugins/ml2/vxlanallocation.py @@ -0,0 +1,45 @@ +# Copyright (c) 2013 OpenStack Foundation +# All Rights Reserved. +# +# 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. + +from neutron_lib.db import model_base +import sqlalchemy as sa +from sqlalchemy import sql + + +class VxlanAllocation(model_base.BASEV2): + + __tablename__ = 'ml2_vxlan_allocations' + + vxlan_vni = sa.Column(sa.Integer, nullable=False, primary_key=True, + autoincrement=False) + allocated = sa.Column(sa.Boolean, nullable=False, default=False, + server_default=sql.false(), index=True) + + +class VxlanEndpoints(model_base.BASEV2): + """Represents tunnel endpoint in RPC mode.""" + + __tablename__ = 'ml2_vxlan_endpoints' + __table_args__ = ( + sa.UniqueConstraint('host', + name='unique_ml2_vxlan_endpoints0host'), + model_base.BASEV2.__table_args__ + ) + ip_address = sa.Column(sa.String(64), primary_key=True) + udp_port = sa.Column(sa.Integer, nullable=False) + host = sa.Column(sa.String(255), nullable=True) + + def __repr__(self): + return "" % self.ip_address diff --git a/neutron/plugins/ml2/drivers/type_vxlan.py b/neutron/plugins/ml2/drivers/type_vxlan.py index be2cdd98c36..341ee9e2fca 100644 --- a/neutron/plugins/ml2/drivers/type_vxlan.py +++ b/neutron/plugins/ml2/drivers/type_vxlan.py @@ -13,19 +13,21 @@ # License for the specific language governing permissions and limitations # under the License. -from neutron_lib.db import model_base from neutron_lib import exceptions as n_exc from oslo_config import cfg from oslo_log import log -import sqlalchemy as sa -from sqlalchemy import sql from neutron._i18n import _, _LE +from neutron.common import _deprecate +from neutron.db.models.plugins.ml2 import vxlanallocation as vxlan_model from neutron.plugins.common import constants as p_const from neutron.plugins.ml2.drivers import type_tunnel LOG = log.getLogger(__name__) +_deprecate._moved_global('VxlanAllocation', new_module=vxlan_model) +_deprecate._moved_global('VxlanEndpoints', new_module=vxlan_model) + vxlan_opts = [ cfg.ListOpt('vni_ranges', default=[], @@ -42,38 +44,11 @@ vxlan_opts = [ cfg.CONF.register_opts(vxlan_opts, "ml2_type_vxlan") -class VxlanAllocation(model_base.BASEV2): - - __tablename__ = 'ml2_vxlan_allocations' - - vxlan_vni = sa.Column(sa.Integer, nullable=False, primary_key=True, - autoincrement=False) - allocated = sa.Column(sa.Boolean, nullable=False, default=False, - server_default=sql.false(), index=True) - - -class VxlanEndpoints(model_base.BASEV2): - """Represents tunnel endpoint in RPC mode.""" - - __tablename__ = 'ml2_vxlan_endpoints' - __table_args__ = ( - sa.UniqueConstraint('host', - name='unique_ml2_vxlan_endpoints0host'), - model_base.BASEV2.__table_args__ - ) - ip_address = sa.Column(sa.String(64), primary_key=True) - udp_port = sa.Column(sa.Integer, nullable=False) - host = sa.Column(sa.String(255), nullable=True) - - def __repr__(self): - return "" % self.ip_address - - class VxlanTypeDriver(type_tunnel.EndpointTunnelTypeDriver): def __init__(self): super(VxlanTypeDriver, self).__init__( - VxlanAllocation, VxlanEndpoints) + vxlan_model.VxlanAllocation, vxlan_model.VxlanEndpoints) def get_type(self): return p_const.TYPE_VXLAN @@ -100,3 +75,5 @@ class VxlanTypeDriver(type_tunnel.EndpointTunnelTypeDriver): def get_mtu(self, physical_network=None): mtu = super(VxlanTypeDriver, self).get_mtu() return mtu - p_const.VXLAN_ENCAP_OVERHEAD if mtu else 0 + +_deprecate._MovedGlobals()