Refactor software config db model to use LongText

Reuse the types defined in heat.db.sqlalchemy.types in software config
db model and versions migration to make code clean and consistent.

Change-Id: Iae7d5ec34413aedf8a38a3e22d22cacf4e031c24
This commit is contained in:
JUN JIE NAN 2014-01-25 00:52:21 +08:00
parent 97dded3fb0
commit 3d2e080721
2 changed files with 9 additions and 11 deletions

View File

@ -13,18 +13,15 @@
# under the License.
import sqlalchemy
from sqlalchemy.dialects import mysql
from heat.db.sqlalchemy.types import Json
from heat.db.sqlalchemy.types import LongText
def upgrade(migrate_engine):
meta = sqlalchemy.MetaData()
meta.bind = migrate_engine
if migrate_engine.name == 'mysql':
long_text = mysql.LONGTEXT()
else:
long_text = sqlalchemy.Text
software_config = sqlalchemy.Table(
'software_config', meta,
sqlalchemy.Column('id', sqlalchemy.String(36),
@ -35,8 +32,8 @@ def upgrade(migrate_engine):
sqlalchemy.Column('name', sqlalchemy.String(255),
nullable=True),
sqlalchemy.Column('group', sqlalchemy.String(255)),
sqlalchemy.Column('config', long_text),
sqlalchemy.Column('io', long_text),
sqlalchemy.Column('config', LongText),
sqlalchemy.Column('io', Json),
sqlalchemy.Column('tenant', sqlalchemy.String(256),
nullable=False,
index=True),
@ -60,8 +57,8 @@ def upgrade(migrate_engine):
sqlalchemy.String(36),
sqlalchemy.ForeignKey('software_config.id'),
nullable=False),
sqlalchemy.Column('input_values', long_text),
sqlalchemy.Column('output_values', long_text),
sqlalchemy.Column('input_values', Json),
sqlalchemy.Column('output_values', Json),
sqlalchemy.Column('signal_id', sqlalchemy.String(1024)),
sqlalchemy.Column('action', sqlalchemy.String(255)),
sqlalchemy.Column('status', sqlalchemy.String(255)),

View File

@ -26,6 +26,7 @@ from heat.openstack.common.db.sqlalchemy import models
from heat.openstack.common.db.sqlalchemy import session
from sqlalchemy.orm.session import Session
from heat.db.sqlalchemy.types import Json
from heat.db.sqlalchemy.types import LongText
BASE = declarative_base()
get_session = session.get_session
@ -258,7 +259,7 @@ class SoftwareConfig(BASE, HeatBase):
name = sqlalchemy.Column('name', sqlalchemy.String(255),
nullable=True)
group = sqlalchemy.Column('group', sqlalchemy.String(255))
config = sqlalchemy.Column('config', sqlalchemy.Text)
config = sqlalchemy.Column('config', LongText)
io = sqlalchemy.Column('io', Json)
tenant = sqlalchemy.Column(
'tenant', sqlalchemy.String(256), nullable=False)