Reuse constants defined in attributes

This change reuses constants defined in attributes module in db
modules.

Change-Id: Idbb5f21a485a41a814b6b8c5744348d25443239e
This commit is contained in:
Manjeet Singh Bhatia 2015-11-05 21:43:58 +00:00
parent 770624b13b
commit ae40bf1fd9
14 changed files with 35 additions and 26 deletions

View File

@ -34,9 +34,6 @@ SHARED = 'shared'
# Used by range check to indicate no limit for a bound.
UNLIMITED = None
# TODO(watanabe.isao): A fix like in neutron/db/models_v2.py needs to be
# done in other db modules, to reuse the following constants.
# Common definitions for maximum string field length
NAME_MAX_LEN = 255
TENANT_ID_MAX_LEN = 255
DESCRIPTION_MAX_LEN = 255

View File

@ -17,6 +17,7 @@ from oslo_utils import uuidutils
import sqlalchemy as sa
from sqlalchemy.orm import exc
from neutron.api.v2 import attributes as attr
from neutron.db import model_base
from neutron.db import models_v2
from neutron.extensions import address_scope as ext_address_scope
@ -29,7 +30,7 @@ class AddressScope(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):
__tablename__ = "address_scopes"
name = sa.Column(sa.String(255), nullable=False)
name = sa.Column(sa.String(attr.NAME_MAX_LEN), nullable=False)
shared = sa.Column(sa.Boolean, nullable=False)

View File

@ -96,7 +96,7 @@ class Agent(model_base.BASEV2, models_v2.HasId):
# updated when agents report
heartbeat_timestamp = sa.Column(sa.DateTime, nullable=False)
# description is note for admin user
description = sa.Column(sa.String(255))
description = sa.Column(sa.String(attributes.DESCRIPTION_MAX_LEN))
# configurations: a json dict string, I think 4095 is enough
configurations = sa.Column(sa.String(4095), nullable=False)
# load - number of resources hosted by the agent

View File

@ -18,6 +18,7 @@ import sqlalchemy as sa
from sqlalchemy import orm
from sqlalchemy.orm import exc as sa_exc
from neutron.api.v2 import attributes as attr
from neutron.db import common_db_mixin
from neutron.db import model_base
from neutron.db import models_v2
@ -28,8 +29,8 @@ LOG = logging.getLogger(__name__)
class Flavor(model_base.BASEV2, models_v2.HasId):
name = sa.Column(sa.String(255))
description = sa.Column(sa.String(1024))
name = sa.Column(sa.String(attr.NAME_MAX_LEN))
description = sa.Column(sa.String(attr.LONG_DESCRIPTION_MAX_LEN))
enabled = sa.Column(sa.Boolean, nullable=False, default=True,
server_default=sa.sql.true())
# Make it True for multi-type flavors
@ -39,7 +40,7 @@ class Flavor(model_base.BASEV2, models_v2.HasId):
class ServiceProfile(model_base.BASEV2, models_v2.HasId):
description = sa.Column(sa.String(1024))
description = sa.Column(sa.String(attr.LONG_DESCRIPTION_MAX_LEN))
driver = sa.Column(sa.String(1024), nullable=False)
enabled = sa.Column(sa.Boolean, nullable=False, default=True,
server_default=sa.sql.true())

View File

@ -71,7 +71,7 @@ class RouterPort(model_base.BASEV2):
# queries on router ports, and also prevents potential error-prone
# conditions which might originate from users altering the DEVICE_OWNER
# property of router ports.
port_type = sa.Column(sa.String(255))
port_type = sa.Column(sa.String(attributes.DEVICE_OWNER_MAX_LEN))
port = orm.relationship(
models_v2.Port,
backref=orm.backref('routerport', uselist=False, cascade="all,delete"),
@ -82,7 +82,7 @@ class Router(model_base.HasStandardAttributes, model_base.BASEV2,
models_v2.HasId, models_v2.HasTenant):
"""Represents a v2 neutron router."""
name = sa.Column(sa.String(255))
name = sa.Column(sa.String(attributes.NAME_MAX_LEN))
status = sa.Column(sa.String(16))
admin_state_up = sa.Column(sa.Boolean)
gw_port_id = sa.Column(sa.String(36), sa.ForeignKey('ports.id'))

View File

@ -114,8 +114,8 @@ class L3HARouterNetwork(model_base.BASEV2):
__tablename__ = 'ha_router_networks'
tenant_id = sa.Column(sa.String(255), primary_key=True,
nullable=False)
tenant_id = sa.Column(sa.String(attributes.TENANT_ID_MAX_LEN),
primary_key=True, nullable=False)
network_id = sa.Column(sa.String(36),
sa.ForeignKey('networks.id', ondelete="CASCADE"),
nullable=False, primary_key=True)

View File

@ -20,6 +20,7 @@ from sqlalchemy import orm
from sqlalchemy import sql
from neutron.api.rpc.agentnotifiers import metering_rpc_agent_api
from neutron.api.v2 import attributes as attr
from neutron.common import constants
from neutron.db import common_db_mixin as base_db
from neutron.db import l3_db
@ -43,8 +44,8 @@ class MeteringLabelRule(model_base.BASEV2, models_v2.HasId):
class MeteringLabel(model_base.BASEV2, models_v2.HasId, models_v2.HasTenant):
name = sa.Column(sa.String(255))
description = sa.Column(sa.String(1024))
name = sa.Column(sa.String(attr.NAME_MAX_LEN))
description = sa.Column(sa.String(attr.LONG_DESCRIPTION_MAX_LEN))
rules = orm.relationship(MeteringLabelRule, backref="label",
cascade="delete", lazy="joined")
routers = orm.relationship(

View File

@ -234,7 +234,7 @@ class SubnetPool(model_base.HasStandardAttributes, model_base.BASEV2,
"""Represents a neutron subnet pool.
"""
name = sa.Column(sa.String(255))
name = sa.Column(sa.String(attr.NAME_MAX_LEN))
ip_version = sa.Column(sa.Integer, nullable=False)
default_prefixlen = sa.Column(sa.Integer, nullable=False)
min_prefixlen = sa.Column(sa.Integer, nullable=False)

View File

@ -16,6 +16,7 @@ import sqlalchemy as sa
from sqlalchemy import orm
from sqlalchemy import sql
from neutron.api.v2 import attributes as attr
from neutron.db import model_base
from neutron.db import models_v2
@ -32,7 +33,7 @@ class ResourceDelta(model_base.BASEV2):
class Reservation(model_base.BASEV2, models_v2.HasId):
tenant_id = sa.Column(sa.String(255))
tenant_id = sa.Column(sa.String(attr.TENANT_ID_MAX_LEN))
expiration = sa.Column(sa.DateTime())
resource_deltas = orm.relationship(ResourceDelta,
backref='reservation',
@ -55,7 +56,7 @@ class QuotaUsage(model_base.BASEV2):
resource = sa.Column(sa.String(255), nullable=False,
primary_key=True, index=True)
tenant_id = sa.Column(sa.String(255), nullable=False,
tenant_id = sa.Column(sa.String(attr.TENANT_ID_MAX_LEN), nullable=False,
primary_key=True, index=True)
dirty = sa.Column(sa.Boolean, nullable=False, server_default=sql.false())

View File

@ -18,6 +18,7 @@ import abc
import sqlalchemy as sa
from sqlalchemy.orm import validates
from neutron.api.v2 import attributes as attr
from neutron.common import exceptions as n_exc
from neutron.db import model_base
@ -38,7 +39,8 @@ class RBACColumns(model_base.HasId, model_base.HasTenant):
# the target_tenant is the subject that the policy will affect. this may
# also be a wildcard '*' to indicate all tenants or it may be a role if
# neutron gets better integration with keystone
target_tenant = sa.Column(sa.String(255), nullable=False)
target_tenant = sa.Column(sa.String(attr.TENANT_ID_MAX_LEN),
nullable=False)
action = sa.Column(sa.String(255), nullable=False)

View File

@ -47,14 +47,15 @@ class SecurityGroup(model_base.HasStandardAttributes, model_base.BASEV2,
models_v2.HasId, models_v2.HasTenant):
"""Represents a v2 neutron security group."""
name = sa.Column(sa.String(255))
description = sa.Column(sa.String(255))
name = sa.Column(sa.String(attributes.NAME_MAX_LEN))
description = sa.Column(sa.String(attributes.DESCRIPTION_MAX_LEN))
class DefaultSecurityGroup(model_base.BASEV2):
__tablename__ = 'default_security_group'
tenant_id = sa.Column(sa.String(255), primary_key=True, nullable=False)
tenant_id = sa.Column(sa.String(attributes.TENANT_ID_MAX_LEN),
primary_key=True, nullable=False)
security_group_id = sa.Column(sa.String(36),
sa.ForeignKey("securitygroups.id",
ondelete="CASCADE"),

View File

@ -18,6 +18,7 @@ from itertools import chain
from oslo_log import log as logging
import sqlalchemy as sa
from neutron.api.v2 import attributes as attr
from neutron.db import model_base
from neutron.services import provider_configuration as pconf
@ -25,7 +26,7 @@ LOG = logging.getLogger(__name__)
class ProviderResourceAssociation(model_base.BASEV2):
provider_name = sa.Column(sa.String(255),
provider_name = sa.Column(sa.String(attr.NAME_MAX_LEN),
nullable=False, primary_key=True)
# should be manually deleted on resource deletion
resource_id = sa.Column(sa.String(36), nullable=False, primary_key=True,

View File

@ -21,6 +21,7 @@ from oslo_log import log as logging
import stevedore
from neutron._i18n import _LW
from neutron.api.v2 import attributes as attr
from neutron.common import exceptions as n_exc
LOG = logging.getLogger(__name__)
@ -133,9 +134,10 @@ def parse_service_provider_opt(service_module='neutron'):
"""Parse service definition opts and returns result."""
def validate_name(name):
if len(name) > 255:
if len(name) > attr.NAME_MAX_LEN:
raise n_exc.Invalid(
_("Provider name is limited by 255 characters: %s") % name)
_("Provider name %(name)s is limited by %(len)s characters")
% {'name': name, 'len': attr.NAME_MAX_LEN})
neutron_mod = NeutronModule(service_module)
svc_providers_opt = neutron_mod.service_providers()

View File

@ -24,6 +24,7 @@ from oslo_db.sqlalchemy import test_migrations
import sqlalchemy
from sqlalchemy import event
from neutron.api.v2 import attributes as attr
import neutron.db.migration as migration_help
from neutron.db.migration.alembic_migrations import external
from neutron.db.migration import cli as migration
@ -283,8 +284,9 @@ class TestSanityCheck(test_base.DbTestCase):
'securitygroups', sqlalchemy.MetaData(),
sqlalchemy.Column('id', sqlalchemy.String(length=36),
nullable=False),
sqlalchemy.Column('name', sqlalchemy.String(255)),
sqlalchemy.Column('tenant_id', sqlalchemy.String(255)))
sqlalchemy.Column('name', sqlalchemy.String(attr.NAME_MAX_LEN)),
sqlalchemy.Column('tenant_id',
sqlalchemy.String(attr.TENANT_ID_MAX_LEN)))
with self.engine.connect() as conn:
SecurityGroup.create(conn)