diff --git a/magnum/db/sqlalchemy/alembic/versions/05d3e97de9ee_add_volume_driver.py b/magnum/db/sqlalchemy/alembic/versions/05d3e97de9ee_add_volume_driver.py index 62c6f0f342..74461a5639 100644 --- a/magnum/db/sqlalchemy/alembic/versions/05d3e97de9ee_add_volume_driver.py +++ b/magnum/db/sqlalchemy/alembic/versions/05d3e97de9ee_add_volume_driver.py @@ -23,9 +23,14 @@ revision = '05d3e97de9ee' down_revision = '57fbdf2327a2' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): op.add_column('baymodel', sa.Column('volume_driver', - sa.String(length=255), nullable=True)) + String(255, mysql_ndb_type=TINYTEXT), nullable=True)) diff --git a/magnum/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py b/magnum/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py index d71e2092dd..29e0a84e45 100644 --- a/magnum/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py +++ b/magnum/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py @@ -24,8 +24,13 @@ revision = '2581ebaf0cb2' down_revision = None from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): # commands auto generated by Alembic - please adjust! @@ -56,7 +61,8 @@ def upgrade(): sa.Column('keypair_id', sa.String(length=255), nullable=True), sa.Column('image_id', sa.String(length=255), nullable=True), sa.Column('external_network_id', sa.String(length=255), nullable=True), - sa.Column('dns_nameserver', sa.String(length=255), nullable=True), + sa.Column('dns_nameserver', String(255, mysql_ndb_type=TINYTEXT), + nullable=True), sa.Column('apiserver_port', sa.Integer(), nullable=True), sa.PrimaryKeyConstraint('id'), mysql_ENGINE='InnoDB', diff --git a/magnum/db/sqlalchemy/alembic/versions/35cff7c86221_add_private_network_to_baymodel.py b/magnum/db/sqlalchemy/alembic/versions/35cff7c86221_add_private_network_to_baymodel.py index 2cd4551c3f..6cb787d818 100644 --- a/magnum/db/sqlalchemy/alembic/versions/35cff7c86221_add_private_network_to_baymodel.py +++ b/magnum/db/sqlalchemy/alembic/versions/35cff7c86221_add_private_network_to_baymodel.py @@ -24,9 +24,15 @@ revision = '35cff7c86221' down_revision = '3a938526b35d' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): - op.add_column('baymodel', sa.Column('fixed_network', sa.String(length=255), + op.add_column('baymodel', sa.Column('fixed_network', + String(255, mysql_ndb_type=TINYTEXT), nullable=True)) diff --git a/magnum/db/sqlalchemy/alembic/versions/3be65537a94a_add_network_driver_baymodel_column.py b/magnum/db/sqlalchemy/alembic/versions/3be65537a94a_add_network_driver_baymodel_column.py index df8d293e34..8475412056 100644 --- a/magnum/db/sqlalchemy/alembic/versions/3be65537a94a_add_network_driver_baymodel_column.py +++ b/magnum/db/sqlalchemy/alembic/versions/3be65537a94a_add_network_driver_baymodel_column.py @@ -26,9 +26,14 @@ revision = '3be65537a94a' down_revision = '4e263f236334' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): op.add_column('baymodel', sa.Column('network_driver', - sa.String(length=255), nullable=True)) + String(255, mysql_ndb_type=TINYTEXT), nullable=True)) diff --git a/magnum/db/sqlalchemy/alembic/versions/4956f03cabad_add_cluster_distro.py b/magnum/db/sqlalchemy/alembic/versions/4956f03cabad_add_cluster_distro.py index 01891f0226..1459384495 100644 --- a/magnum/db/sqlalchemy/alembic/versions/4956f03cabad_add_cluster_distro.py +++ b/magnum/db/sqlalchemy/alembic/versions/4956f03cabad_add_cluster_distro.py @@ -23,9 +23,14 @@ revision = '4956f03cabad' down_revision = '2d8657c0cdc' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): op.add_column('baymodel', sa.Column('cluster_distro', - sa.String(length=255), nullable=True)) + String(255, mysql_ndb_type=TINYTEXT), nullable=True)) diff --git a/magnum/db/sqlalchemy/alembic/versions/4ea34a59a64c_add_discovery_url_to_bay.py b/magnum/db/sqlalchemy/alembic/versions/4ea34a59a64c_add_discovery_url_to_bay.py index bf8738d4ab..59badfaf8d 100644 --- a/magnum/db/sqlalchemy/alembic/versions/4ea34a59a64c_add_discovery_url_to_bay.py +++ b/magnum/db/sqlalchemy/alembic/versions/4ea34a59a64c_add_discovery_url_to_bay.py @@ -22,10 +22,16 @@ revision = '4ea34a59a64c' down_revision = '456126c6c9e9' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): op.add_column('bay', - sa.Column('discovery_url', sa.String(length=255), + sa.Column('discovery_url', + String(255, mysql_ndb_type=TINYTEXT), nullable=True)) diff --git a/magnum/db/sqlalchemy/alembic/versions/5518af8dbc21_rename_cert_uuid.py b/magnum/db/sqlalchemy/alembic/versions/5518af8dbc21_rename_cert_uuid.py index b028559663..13ef18f7b9 100644 --- a/magnum/db/sqlalchemy/alembic/versions/5518af8dbc21_rename_cert_uuid.py +++ b/magnum/db/sqlalchemy/alembic/versions/5518af8dbc21_rename_cert_uuid.py @@ -22,17 +22,22 @@ revision = '5518af8dbc21' down_revision = '6f21dc920bb' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TEXT + def upgrade(): op.alter_column('bay', 'ca_cert_uuid', new_column_name='ca_cert_ref', existing_type=sa.String(length=36), - type_=sa.String(length=512), + type_=String(512, mysql_ndb_type=TEXT), nullable=True) op.alter_column('bay', 'magnum_cert_uuid', new_column_name='magnum_cert_ref', existing_type=sa.String(length=36), - type_=sa.String(length=512), + type_=String(512, mysql_ndb_type=TEXT), nullable=True) diff --git a/magnum/db/sqlalchemy/alembic/versions/592131657ca1_add_coe_column_to_baymodel.py b/magnum/db/sqlalchemy/alembic/versions/592131657ca1_add_coe_column_to_baymodel.py index 5fa5159c83..c3159f69da 100644 --- a/magnum/db/sqlalchemy/alembic/versions/592131657ca1_add_coe_column_to_baymodel.py +++ b/magnum/db/sqlalchemy/alembic/versions/592131657ca1_add_coe_column_to_baymodel.py @@ -24,18 +24,24 @@ down_revision = '4956f03cabad' from alembic import op +from oslo_db.sqlalchemy.types import String + import magnum.conf import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + CONF = magnum.conf.CONF def upgrade(): - op.add_column('baymodel', sa.Column('coe', sa.String(length=255), + op.add_column('baymodel', sa.Column('coe', String(255, + mysql_ndb_type=TINYTEXT), nullable=True)) baymodel = sa.sql.table('baymodel', - sa.sql.column('coe', sa.String(length=255))) + sa.sql.column('coe', String(255, + mysql_ndb_type=TINYTEXT))) op.execute( baymodel.update().values({ diff --git a/magnum/db/sqlalchemy/alembic/versions/5d4caa6e0a42_create_trustee_for_each_bay.py b/magnum/db/sqlalchemy/alembic/versions/5d4caa6e0a42_create_trustee_for_each_bay.py index 198fe5bc36..075e71ceb4 100644 --- a/magnum/db/sqlalchemy/alembic/versions/5d4caa6e0a42_create_trustee_for_each_bay.py +++ b/magnum/db/sqlalchemy/alembic/versions/5d4caa6e0a42_create_trustee_for_each_bay.py @@ -26,16 +26,23 @@ revision = '5d4caa6e0a42' down_revision = 'bb42b7cad130' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): op.alter_column('bay', 'registry_trust_id', new_column_name='trust_id', existing_type=sa.String(255)) op.add_column('bay', sa.Column('trustee_username', - sa.String(length=255), nullable=True)) + String(255, mysql_ndb_type=TINYTEXT), + nullable=True)) op.add_column('bay', sa.Column('trustee_user_id', sa.String(length=255), nullable=True)) op.add_column('bay', sa.Column('trustee_password', - sa.String(length=255), nullable=True)) + String(255, mysql_ndb_type=TINYTEXT), + nullable=True)) diff --git a/magnum/db/sqlalchemy/alembic/versions/966a99e70ff_add_proxy.py b/magnum/db/sqlalchemy/alembic/versions/966a99e70ff_add_proxy.py index e0b7494403..02e456e0bc 100644 --- a/magnum/db/sqlalchemy/alembic/versions/966a99e70ff_add_proxy.py +++ b/magnum/db/sqlalchemy/alembic/versions/966a99e70ff_add_proxy.py @@ -22,13 +22,21 @@ revision = '966a99e70ff' down_revision = '6f21dc998bb' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): op.add_column('baymodel', sa.Column('http_proxy', - sa.String(length=255), nullable=True)) + String(255, mysql_ndb_type=TINYTEXT), + nullable=True)) op.add_column('baymodel', sa.Column('https_proxy', - sa.String(length=255), nullable=True)) + String(255, mysql_ndb_type=TINYTEXT), + nullable=True)) op.add_column('baymodel', sa.Column('no_proxy', - sa.String(length=255), nullable=True)) + String(255, mysql_ndb_type=TINYTEXT), + nullable=True)) diff --git a/magnum/db/sqlalchemy/alembic/versions/e0653b2d5271_add_fixed_subnet_column_to_baymodel_table.py b/magnum/db/sqlalchemy/alembic/versions/e0653b2d5271_add_fixed_subnet_column_to_baymodel_table.py index 7dfaffd40c..4e7644eeab 100644 --- a/magnum/db/sqlalchemy/alembic/versions/e0653b2d5271_add_fixed_subnet_column_to_baymodel_table.py +++ b/magnum/db/sqlalchemy/alembic/versions/e0653b2d5271_add_fixed_subnet_column_to_baymodel_table.py @@ -22,9 +22,15 @@ revision = 'e0653b2d5271' down_revision = '68ce16dfd341' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): op.add_column('baymodel', sa.Column('fixed_subnet', - sa.String(length=255), nullable=True)) + String(255, mysql_ndb_type=TINYTEXT), + nullable=True)) diff --git a/magnum/db/sqlalchemy/alembic/versions/e647f5931da8_add_insecure_registry_to_baymodel.py b/magnum/db/sqlalchemy/alembic/versions/e647f5931da8_add_insecure_registry_to_baymodel.py index a993f57c91..0dee5ecdf0 100644 --- a/magnum/db/sqlalchemy/alembic/versions/e647f5931da8_add_insecure_registry_to_baymodel.py +++ b/magnum/db/sqlalchemy/alembic/versions/e647f5931da8_add_insecure_registry_to_baymodel.py @@ -22,9 +22,15 @@ revision = 'e647f5931da8' down_revision = '049f81f6f584' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): op.add_column('baymodel', sa.Column('insecure_registry', - sa.String(length=255), nullable=True)) + String(255, mysql_ndb_type=TINYTEXT), + nullable=True)) diff --git a/magnum/db/sqlalchemy/alembic/versions/fcb4efee8f8b_add_version_info_to_bay.py b/magnum/db/sqlalchemy/alembic/versions/fcb4efee8f8b_add_version_info_to_bay.py index f58ff70e5c..a4a0cc77b9 100644 --- a/magnum/db/sqlalchemy/alembic/versions/fcb4efee8f8b_add_version_info_to_bay.py +++ b/magnum/db/sqlalchemy/alembic/versions/fcb4efee8f8b_add_version_info_to_bay.py @@ -22,13 +22,20 @@ revision = 'fcb4efee8f8b' down_revision = 'b1f612248cab' from alembic import op + +from oslo_db.sqlalchemy.types import String + import sqlalchemy as sa +from sqlalchemy.dialects.mysql import TINYTEXT + def upgrade(): op.add_column('bay', - sa.Column('coe_version', sa.String(length=255), + sa.Column('coe_version', String(255, + mysql_ndb_type=TINYTEXT), nullable=True)) op.add_column('bay', - sa.Column('container_version', sa.String(length=255), + sa.Column('container_version', String(255, + mysql_ndb_type=TINYTEXT), nullable=True)) diff --git a/magnum/db/sqlalchemy/models.py b/magnum/db/sqlalchemy/models.py index 086236902f..5e56a7a45e 100644 --- a/magnum/db/sqlalchemy/models.py +++ b/magnum/db/sqlalchemy/models.py @@ -19,6 +19,7 @@ SQLAlchemy models for container service import json from oslo_db.sqlalchemy import models +from oslo_db.sqlalchemy.types import String import six.moves.urllib.parse as urlparse from sqlalchemy import Boolean from sqlalchemy import Column @@ -26,9 +27,10 @@ from sqlalchemy import DateTime from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Integer from sqlalchemy import schema -from sqlalchemy import String from sqlalchemy import Text from sqlalchemy.types import TypeDecorator, TEXT +from sqlalchemy.dialects.mysql import TEXT as mysql_TEXT +from sqlalchemy.dialects.mysql import TINYTEXT import magnum.conf @@ -127,24 +129,24 @@ class Cluster(Base): status = Column(String(20)) status_reason = Column(Text) create_timeout = Column(Integer()) - discovery_url = Column(String(255)) + discovery_url = Column(String(255, mysql_ndb_type=TINYTEXT)) master_addresses = Column(JSONEncodedList) # TODO(wanghua): encrypt trust_id in db trust_id = Column(String(255)) - trustee_username = Column(String(255)) + trustee_username = Column(String(255, mysql_ndb_type=TINYTEXT)) trustee_user_id = Column(String(255)) # TODO(wanghua): encrypt trustee_password in db - trustee_password = Column(String(255)) - coe_version = Column(String(255)) - container_version = Column(String(255)) + trustee_password = Column(String(255, mysql_ndb_type=TINYTEXT)) + coe_version = Column(String(255, mysql_ndb_type=TINYTEXT)) + container_version = Column(String(255, mysql_ndb_type=TINYTEXT)) # (yuanying) if we use barbican, # cert_ref size is determined by below format # * http(s)://${DOMAIN_NAME}/v1/containers/${UUID} # as a result, cert_ref length is estimated to 312 chars. # but we can use another backend to store certs. # so, we use 512 chars to get some buffer. - ca_cert_ref = Column(String(512)) - magnum_cert_ref = Column(String(512)) + ca_cert_ref = Column(String(512, mysql_ndb_type=mysql_TEXT)) + magnum_cert_ref = Column(String(512, mysql_ndb_type=mysql_TEXT)) class ClusterTemplate(Base): @@ -165,25 +167,25 @@ class ClusterTemplate(Base): master_flavor_id = Column(String(255)) keypair_id = Column(String(255)) external_network_id = Column(String(255)) - fixed_network = Column(String(255)) - fixed_subnet = Column(String(255)) - network_driver = Column(String(255)) - volume_driver = Column(String(255)) - dns_nameserver = Column(String(255)) + fixed_network = Column(String(255, mysql_ndb_type=TINYTEXT)) + fixed_subnet = Column(String(255, mysql_ndb_type=TINYTEXT)) + network_driver = Column(String(255, mysql_ndb_type=TINYTEXT)) + volume_driver = Column(String(255, mysql_ndb_type=TINYTEXT)) + dns_nameserver = Column(String(255, mysql_ndb_type=TINYTEXT)) apiserver_port = Column(Integer()) docker_volume_size = Column(Integer()) docker_storage_driver = Column(String(255)) - cluster_distro = Column(String(255)) - coe = Column(String(255)) - http_proxy = Column(String(255)) - https_proxy = Column(String(255)) - no_proxy = Column(String(255)) + cluster_distro = Column(String(255, mysql_ndb_type=TINYTEXT)) + coe = Column(String(255, mysql_ndb_type=TINYTEXT)) + http_proxy = Column(String(255, mysql_ndb_type=TINYTEXT)) + https_proxy = Column(String(255, mysql_ndb_type=TINYTEXT)) + no_proxy = Column(String(255, mysql_ndb_type=TINYTEXT)) registry_enabled = Column(Boolean, default=False) labels = Column(JSONEncodedDict) tls_disabled = Column(Boolean, default=False) public = Column(Boolean, default=False) server_type = Column(String(255)) - insecure_registry = Column(String(255)) + insecure_registry = Column(String(255, mysql_ndb_type=TINYTEXT)) master_lb_enabled = Column(Boolean, default=False) floating_ip_enabled = Column(Boolean, default=True)