Merge "Increase BDM column in build_requests table"
This commit is contained in:
commit
1c4167d945
@ -0,0 +1,24 @@
|
|||||||
|
# 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 sqlalchemy import MetaData
|
||||||
|
from sqlalchemy import Table
|
||||||
|
|
||||||
|
from nova.db.sqlalchemy import api_models
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade(migrate_engine):
|
||||||
|
meta = MetaData()
|
||||||
|
meta.bind = migrate_engine
|
||||||
|
|
||||||
|
build_requests = Table('build_requests', meta, autoload=True)
|
||||||
|
build_requests.c.block_device_mappings.alter(type=api_models.MediumText())
|
@ -14,6 +14,7 @@
|
|||||||
from oslo_db.sqlalchemy import models
|
from oslo_db.sqlalchemy import models
|
||||||
from sqlalchemy import Boolean
|
from sqlalchemy import Boolean
|
||||||
from sqlalchemy import Column
|
from sqlalchemy import Column
|
||||||
|
from sqlalchemy.dialects.mysql import MEDIUMTEXT
|
||||||
from sqlalchemy import Enum
|
from sqlalchemy import Enum
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
from sqlalchemy import Float
|
from sqlalchemy import Float
|
||||||
@ -28,6 +29,10 @@ from sqlalchemy import Text
|
|||||||
from sqlalchemy import Unicode
|
from sqlalchemy import Unicode
|
||||||
|
|
||||||
|
|
||||||
|
def MediumText():
|
||||||
|
return Text().with_variant(MEDIUMTEXT(), 'mysql')
|
||||||
|
|
||||||
|
|
||||||
class _NovaAPIBase(models.ModelBase, models.TimestampMixin):
|
class _NovaAPIBase(models.ModelBase, models.TimestampMixin):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -236,7 +241,7 @@ class BuildRequest(API_BASE):
|
|||||||
instance_uuid = Column(String(36))
|
instance_uuid = Column(String(36))
|
||||||
project_id = Column(String(255), nullable=False)
|
project_id = Column(String(255), nullable=False)
|
||||||
instance = Column(Text)
|
instance = Column(Text)
|
||||||
block_device_mappings = Column(Text)
|
block_device_mappings = Column(MediumText())
|
||||||
# TODO(alaski): Drop these from the db in Ocata
|
# TODO(alaski): Drop these from the db in Ocata
|
||||||
# columns_to_drop = ['request_spec_id', 'user_id', 'display_name',
|
# columns_to_drop = ['request_spec_id', 'user_id', 'display_name',
|
||||||
# 'instance_metadata', 'progress', 'vm_state', 'task_state',
|
# 'instance_metadata', 'progress', 'vm_state', 'task_state',
|
||||||
|
@ -445,6 +445,23 @@ class NovaAPIMigrationsWalk(test_migrations.WalkVersionsMixin):
|
|||||||
self.assertColumnExists(engine, 'build_requests',
|
self.assertColumnExists(engine, 'build_requests',
|
||||||
'block_device_mappings')
|
'block_device_mappings')
|
||||||
|
|
||||||
|
def _pre_upgrade_020(self, engine):
|
||||||
|
build_requests = db_utils.get_table(engine, 'build_requests')
|
||||||
|
fake_build_req = {'id': 2020,
|
||||||
|
'project_id': 'fake_proj_id',
|
||||||
|
'block_device_mappings': 'fake_BDM'}
|
||||||
|
build_requests.insert().execute(fake_build_req)
|
||||||
|
|
||||||
|
def _check_020(self, engine, data):
|
||||||
|
build_requests = db_utils.get_table(engine, 'build_requests')
|
||||||
|
if engine.name == 'mysql':
|
||||||
|
self.assertIsInstance(build_requests.c.block_device_mappings.type,
|
||||||
|
sqlalchemy.dialects.mysql.MEDIUMTEXT)
|
||||||
|
|
||||||
|
fake_build_req = build_requests.select(
|
||||||
|
build_requests.c.id == 2020).execute().first()
|
||||||
|
self.assertEqual('fake_BDM', fake_build_req.block_device_mappings)
|
||||||
|
|
||||||
|
|
||||||
class TestNovaAPIMigrationsWalkSQLite(NovaAPIMigrationsWalk,
|
class TestNovaAPIMigrationsWalkSQLite(NovaAPIMigrationsWalk,
|
||||||
test_base.DbTestCase,
|
test_base.DbTestCase,
|
||||||
|
Loading…
Reference in New Issue
Block a user