]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Reuse constants defined in attributes
authorManjeet Singh Bhatia <manjeet.s.bhatia@intel.com>
Thu, 5 Nov 2015 21:43:58 +0000 (21:43 +0000)
committerManjeet Singh Bhatia <manjeet.s.bhatia@intel.com>
Fri, 4 Dec 2015 05:14:55 +0000 (05:14 +0000)
This change reuses constants defined in attributes module in db
modules.

Change-Id: Idbb5f21a485a41a814b6b8c5744348d25443239e

14 files changed:
neutron/api/v2/attributes.py
neutron/db/address_scope_db.py
neutron/db/agents_db.py
neutron/db/flavors_db.py
neutron/db/l3_db.py
neutron/db/l3_hamode_db.py
neutron/db/metering/metering_db.py
neutron/db/models_v2.py
neutron/db/quota/models.py
neutron/db/rbac_db_models.py
neutron/db/securitygroups_db.py
neutron/db/servicetype_db.py
neutron/services/provider_configuration.py
neutron/tests/functional/db/test_migrations.py

index 506ee2f3e26ed0d7063f43e5aabcd55f18dfb8f3..c9f43b4e1a08c425031695956c5ded0d065a3ece 100644 (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
index 9a4e6832f9468872fac3fbcf4a6a26c928b6006f..f08f0b5839cdc39444b8134ff537d22f8fac9aa3 100644 (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)
 
 
index 1eea41574cfe8c22789d49ba53fb53e908b27436..592340fec1cd7cf82781a46c276037593152aeec 100644 (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
index d48e46fedcb67e4ba06175b0217d5b83f66ae200..f0af94db87407a414bb7f409b1a4f74ebb74ca25 100644 (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())
index a07cb1661750e8c58af9b913e49e0f44609cf0d3..8a051c74db805ac04b21998ed1bedc9d468b88d2 100644 (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'))
index 87545df2901e5b3d14bf34cfdc9490b583ac9ee6..85456d8503d4b0ed422a966ee7751c98f7588491 100644 (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)
index 227b9ad23e255c50409609b65dbd3db343e4a1f9..7d28af0f7ed837b1ddc50fe5d6cd7c64ef2d6c34 100644 (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(
index fbcf612879033a4705dfc1bf201fd60bed8d324e..5b78341b37d777b114840f3fc391c4e14cf2ff2e 100644 (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)
index a4dbd7117e42d4d11ae882de5ebe7b42951a4f43..976657425e54766c49b7c1e7071a479554b403ff 100644 (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())
 
index 37314664337fb8944dc8d7a5dba835959d72e07c..1490e72a2924801d4b08315fa00d51e1eb206d57 100644 (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)
 
index c6b254e7467152a011f6540ca9cc975cf94cd9f7..f395f1cc67a9516c8bd256fac4cfb92d41210b57 100644 (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"),
index a717a27d0820351b0e9dcc74612a738ffe5fe9d4..825f3cff2dfa9f670f52be69ae9f4d7ec04dc5bd 100644 (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,
index 6bc9e4dace82d22322a58959d883ba6cdf422a6b..5823ae937aa04b85fce0e0172c45569e0084dda8 100644 (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()
index b46f24931833b2146f4132823273bbd8e64972dc..6419f962d45d3d16529e942b707f866694653935 100644 (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)