Merge "Enables MySQL Cluster Support for Cinder"

This commit is contained in:
Jenkins 2017-07-20 09:14:39 +00:00 committed by Gerrit Code Review
commit f69e9e79a5
3 changed files with 27 additions and 16 deletions

View File

@ -15,6 +15,7 @@
import datetime
from oslo_config import cfg
from oslo_db.sqlalchemy import ndb
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Index
from sqlalchemy import Integer, MetaData, String, Table, Text, UniqueConstraint
@ -109,14 +110,14 @@ def define_tables(meta):
Column('project_id', String(255)),
Column('host', String(255)),
Column('size', Integer),
Column('availability_zone', String(255)),
Column('status', String(255)),
Column('attach_status', String(255)),
Column('availability_zone', ndb.AutoStringTinyText(255)),
Column('status', ndb.AutoStringSize(255, 64)),
Column('attach_status', ndb.AutoStringSize(255, 64)),
Column('scheduled_at', DateTime),
Column('launched_at', DateTime),
Column('terminated_at', DateTime),
Column('display_name', String(255)),
Column('display_description', String(255)),
Column('display_description', ndb.AutoStringTinyText(255)),
Column('provider_location', String(256)),
Column('provider_auth', String(256)),
Column('snapshot_id', String(36)),
@ -126,10 +127,10 @@ def define_tables(meta):
Column('provider_geometry', String(255)),
Column('_name_id', String(36)),
Column('encryption_key_id', String(36)),
Column('migration_status', String(255)),
Column('replication_status', String(255)),
Column('replication_extended_status', String(255)),
Column('replication_driver_data', String(255)),
Column('migration_status', ndb.AutoStringSize(255, 64)),
Column('replication_status', ndb.AutoStringSize(255, 64)),
Column('replication_extended_status', ndb.AutoStringTinyText(255)),
Column('replication_driver_data', ndb.AutoStringTinyText(255)),
Column('consistencygroup_id', String(36),
ForeignKey('consistencygroups.id')),
Column('provider_id', String(255)),

View File

@ -22,6 +22,7 @@ SQLAlchemy models for cinder data.
from oslo_config import cfg
from oslo_db.sqlalchemy import models
from oslo_db.sqlalchemy import ndb
from oslo_utils import timeutils
from sqlalchemy import and_, func, select
from sqlalchemy import bindparam
@ -264,17 +265,17 @@ class Volume(BASE, CinderBase):
cluster_name = Column(String(255), nullable=True)
host = Column(String(255)) # , ForeignKey('hosts.id'))
size = Column(Integer)
availability_zone = Column(String(255)) # TODO(vish): foreign key?
status = Column(String(255)) # TODO(vish): enum?
attach_status = Column(String(255)) # TODO(vish): enum
migration_status = Column(String(255))
availability_zone = Column(ndb.AutoStringTinyText(255)) # TODO(vish):fkey?
status = Column(ndb.AutoStringSize(255, 64)) # TODO(vish): enum?
attach_status = Column(ndb.AutoStringSize(255, 64)) # TODO(vish): enum
migration_status = Column(ndb.AutoStringSize(255, 64))
scheduled_at = Column(DateTime)
launched_at = Column(DateTime)
terminated_at = Column(DateTime)
display_name = Column(String(255))
display_description = Column(String(255))
display_description = Column(ndb.AutoStringTinyText(255))
provider_location = Column(String(255))
provider_auth = Column(String(255))
@ -291,9 +292,9 @@ class Volume(BASE, CinderBase):
bootable = Column(Boolean, default=False)
multiattach = Column(Boolean, default=False)
replication_status = Column(String(255))
replication_extended_status = Column(String(255))
replication_driver_data = Column(String(255))
replication_status = Column(ndb.AutoStringSize(255, 64))
replication_extended_status = Column(ndb.AutoStringTinyText(255))
replication_driver_data = Column(ndb.AutoStringTinyText(255))
previous_status = Column(String(255))

View File

@ -0,0 +1,9 @@
---
features:
- |
Enabled the usage of MySQL Cluster (NDB) with Cinder. This includes the
usage of the boolean mysql_enable_ndb setting from oslo.db 4.24 and
above. This feature allows operators to select from MySQL (InnoDB) or
MySQL Cluster (NDB) as the database storage engine backend. This feature
is intended only for new installations as there is no automated migration
path from InnoDB to MySQL Cluster (NDB).