Merge "Add a provider_id column to Volumes and Snapshots"
This commit is contained in:
commit
9712c818d6
|
@ -0,0 +1,35 @@
|
||||||
|
# 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 Column
|
||||||
|
from sqlalchemy import MetaData, String, Table
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade(migrate_engine):
|
||||||
|
"""Add provider_id column to volumes."""
|
||||||
|
meta = MetaData()
|
||||||
|
meta.bind = migrate_engine
|
||||||
|
|
||||||
|
volumes = Table('volumes', meta, autoload=True)
|
||||||
|
provider_id = Column('provider_id', String(255))
|
||||||
|
volumes.create_column(provider_id)
|
||||||
|
volumes.update().values(provider_id=None).execute()
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade(migrate_engine):
|
||||||
|
"""Remove provider_id column from volumes."""
|
||||||
|
meta = MetaData()
|
||||||
|
meta.bind = migrate_engine
|
||||||
|
|
||||||
|
volumes = Table('volumes', meta, autoload=True)
|
||||||
|
provider_id = volumes.columns.provider_id
|
||||||
|
volumes.drop_column(provider_id)
|
|
@ -0,0 +1,35 @@
|
||||||
|
# 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 Column
|
||||||
|
from sqlalchemy import MetaData, String, Table
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade(migrate_engine):
|
||||||
|
"""Add provider_id column to snapshots."""
|
||||||
|
meta = MetaData()
|
||||||
|
meta.bind = migrate_engine
|
||||||
|
|
||||||
|
snapshots = Table('snapshots', meta, autoload=True)
|
||||||
|
provider_id = Column('provider_id', String(255))
|
||||||
|
snapshots.create_column(provider_id)
|
||||||
|
snapshots.update().values(provider_id=None).execute()
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade(migrate_engine):
|
||||||
|
"""Remove provider_id column from snapshots."""
|
||||||
|
meta = MetaData()
|
||||||
|
meta.bind = migrate_engine
|
||||||
|
|
||||||
|
snapshots = Table('snapshots', meta, autoload=True)
|
||||||
|
provider_id = snapshots.columns.provider_id
|
||||||
|
snapshots.drop_column(provider_id)
|
|
@ -146,6 +146,7 @@ class Volume(BASE, CinderBase):
|
||||||
provider_location = Column(String(255))
|
provider_location = Column(String(255))
|
||||||
provider_auth = Column(String(255))
|
provider_auth = Column(String(255))
|
||||||
provider_geometry = Column(String(255))
|
provider_geometry = Column(String(255))
|
||||||
|
provider_id = Column(String(255))
|
||||||
|
|
||||||
volume_type_id = Column(String(36))
|
volume_type_id = Column(String(36))
|
||||||
source_volid = Column(String(36))
|
source_volid = Column(String(36))
|
||||||
|
@ -431,6 +432,7 @@ class Snapshot(BASE, CinderBase):
|
||||||
volume_type_id = Column(String(36))
|
volume_type_id = Column(String(36))
|
||||||
|
|
||||||
provider_location = Column(String(255))
|
provider_location = Column(String(255))
|
||||||
|
provider_id = Column(String(255))
|
||||||
|
|
||||||
volume = relationship(Volume, backref="snapshots",
|
volume = relationship(Volume, backref="snapshots",
|
||||||
foreign_keys=volume_id,
|
foreign_keys=volume_id,
|
||||||
|
|
|
@ -704,6 +704,24 @@ class MigrationsMixin(test_migrations.WalkVersionsMixin):
|
||||||
volume_types = db_utils.get_table(engine, 'volume_types')
|
volume_types = db_utils.get_table(engine, 'volume_types')
|
||||||
self.assertNotIn('description', volume_types.c)
|
self.assertNotIn('description', volume_types.c)
|
||||||
|
|
||||||
|
def _check_035(self, engine, data):
|
||||||
|
volumes = db_utils.get_table(engine, 'volumes')
|
||||||
|
self.assertIsInstance(volumes.c.provider_id.type,
|
||||||
|
sqlalchemy.types.VARCHAR)
|
||||||
|
|
||||||
|
def _post_downgrade_035(self, engine):
|
||||||
|
volumes = db_utils.get_table(engine, 'volumes')
|
||||||
|
self.assertNotIn('provider_id', volumes.c)
|
||||||
|
|
||||||
|
def _check_036(self, engine, data):
|
||||||
|
snapshots = db_utils.get_table(engine, 'snapshots')
|
||||||
|
self.assertIsInstance(snapshots.c.provider_id.type,
|
||||||
|
sqlalchemy.types.VARCHAR)
|
||||||
|
|
||||||
|
def _post_downgrade_036(self, engine):
|
||||||
|
snapshots = db_utils.get_table(engine, 'snapshots')
|
||||||
|
self.assertNotIn('provider_id', snapshots.c)
|
||||||
|
|
||||||
def test_walk_versions(self):
|
def test_walk_versions(self):
|
||||||
self.walk_versions(True, False)
|
self.walk_versions(True, False)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue