Merge "Add x_project_id, accepted to transfers"

This commit is contained in:
Zuul 2019-01-13 17:56:23 +00:00 committed by Gerrit Code Review
commit a4bbe10782
3 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,34 @@
# 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 Boolean, Column, MetaData, Table, String
def upgrade(migrate_engine):
"""Add columns to the transfers table.
Add source_project_id, destination_project_id and accepted columns to the
transfers table to improve volume transfer records.
"""
meta = MetaData(bind=migrate_engine)
transfers = Table('transfers', meta, autoload=True)
if not hasattr(transfers.c, 'source_project_id'):
transfers.create_column(Column('source_project_id', String(255),
nullable=True))
if not hasattr(transfers.c, 'destination_project_id'):
transfers.create_column(Column('destination_project_id', String(255),
nullable=True))
if not hasattr(transfers.c, 'accepted'):
transfers.create_column(Column('accepted', Boolean, default=False))

View File

@ -831,6 +831,9 @@ class Transfer(BASE, CinderBase):
crypt_hash = Column(String(255))
expires_at = Column(DateTime)
no_snapshots = Column(Boolean, default=False)
source_project_id = Column(String(255), nullable=True)
destination_project_id = Column(String(255), nullable=True)
accepted = Column(Boolean, default=False)
volume = relationship(Volume, backref="transfer",
foreign_keys=volume_id,
primaryjoin='and_('

View File

@ -422,6 +422,12 @@ class MigrationsMixin(test_migrations.WalkVersionsMixin):
self.VARCHAR_TYPE)
self.assertEqual(300, quota_usage_resource.c.resource.type.length)
def _check_128(self, engine, data):
volume_transfer = db_utils.get_table(engine, 'transfers')
self.assertIn('source_project_id', volume_transfer.c)
self.assertIn('destination_project_id', volume_transfer.c)
self.assertIn('accepted', volume_transfer.c)
def test_walk_versions(self):
self.walk_versions(False, False)
self.assert_each_foreign_key_is_part_of_an_index()