From 35c7999ebd25af4d8f0d6c82455bcf93c6538c15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harald=20Jens=C3=A5s?= Date: Mon, 29 Mar 2021 10:24:45 +0200 Subject: [PATCH] Allow 255 character strings in tags In TripleO we are moving to a model where heat is not used to manage neutron resources. This work relies on using tags, and we are hitting the 60 characther limit. This change bumps the tag elements to 255 characters. Closes-Bug: #1921713 Change-Id: Ie69526acb94b62fd5d8db1dbddc1f24072df7a5e --- .../alembic_migrations/versions/EXPAND_HEAD | 2 +- ...e_increase_tag_elements_from_60_to_255_.py | 36 +++++++++++++++++++ neutron/db/models/tag.py | 2 +- neutron/extensions/tagging.py | 2 +- ...eased-from-60-to-255-e98455525b865333.yaml | 6 ++++ 5 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 neutron/db/migration/alembic_migrations/versions/xena/expand/8df53b0d2c0e_increase_tag_elements_from_60_to_255_.py create mode 100644 releasenotes/notes/tag-elements-increased-from-60-to-255-e98455525b865333.yaml diff --git a/neutron/db/migration/alembic_migrations/versions/EXPAND_HEAD b/neutron/db/migration/alembic_migrations/versions/EXPAND_HEAD index 30dc6562ae9..d13d55f4767 100644 --- a/neutron/db/migration/alembic_migrations/versions/EXPAND_HEAD +++ b/neutron/db/migration/alembic_migrations/versions/EXPAND_HEAD @@ -1 +1 @@ -6135a7bd4425 +8df53b0d2c0e diff --git a/neutron/db/migration/alembic_migrations/versions/xena/expand/8df53b0d2c0e_increase_tag_elements_from_60_to_255_.py b/neutron/db/migration/alembic_migrations/versions/xena/expand/8df53b0d2c0e_increase_tag_elements_from_60_to_255_.py new file mode 100644 index 00000000000..61358ffce0c --- /dev/null +++ b/neutron/db/migration/alembic_migrations/versions/xena/expand/8df53b0d2c0e_increase_tag_elements_from_60_to_255_.py @@ -0,0 +1,36 @@ +# Copyright 2021 OpenStack Foundation +# +# 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 alembic import op +import sqlalchemy as sa + +"""increase tag elements from 60 to 255 chars + +Revision ID: 8df53b0d2c0e +Revises: 6135a7bd4425 +Create Date: 2021-03-29 14:44:35.607053 + +""" + +# revision identifiers, used by Alembic. +revision = '8df53b0d2c0e' +down_revision = '6135a7bd4425' + +TABLE = 'tags' + + +def upgrade(): + op.alter_column(TABLE, 'tag', existing_type=sa.String(60), + type_=sa.String(255), existing_nullable=False) diff --git a/neutron/db/models/tag.py b/neutron/db/models/tag.py index 7e37cfe01a0..3cab5a81959 100644 --- a/neutron/db/models/tag.py +++ b/neutron/db/models/tag.py @@ -24,7 +24,7 @@ class Tag(model_base.BASEV2): sa.BigInteger().with_variant(sa.Integer(), 'sqlite'), sa.ForeignKey(standard_attr.StandardAttribute.id, ondelete="CASCADE"), nullable=False, primary_key=True) - tag = sa.Column(sa.String(60), nullable=False, primary_key=True) + tag = sa.Column(sa.String(255), nullable=False, primary_key=True) standard_attr = orm.relationship( 'StandardAttribute', load_on_pending=True, backref=orm.backref('tags', lazy='subquery', viewonly=True)) diff --git a/neutron/extensions/tagging.py b/neutron/extensions/tagging.py index 57806ba0250..162f55ceb83 100644 --- a/neutron/extensions/tagging.py +++ b/neutron/extensions/tagging.py @@ -35,7 +35,7 @@ TAGS = TAG + 's' TAGS_ANY = TAGS + '-any' NOT_TAGS = 'not-' + TAGS NOT_TAGS_ANY = NOT_TAGS + '-any' -MAX_TAG_LEN = 60 +MAX_TAG_LEN = 255 TAG_PLUGIN_TYPE = 'TAG' TAG_SUPPORTED_RESOURCES = standard_attr.get_tag_resource_parent_map() diff --git a/releasenotes/notes/tag-elements-increased-from-60-to-255-e98455525b865333.yaml b/releasenotes/notes/tag-elements-increased-from-60-to-255-e98455525b865333.yaml new file mode 100644 index 00000000000..1c4abd87ff6 --- /dev/null +++ b/releasenotes/notes/tag-elements-increased-from-60-to-255-e98455525b865333.yaml @@ -0,0 +1,6 @@ +--- +other: + - | + Neutron resource tags can now be 255 characters long, previously resource + tags was limited to 60 characters. +