diff --git a/nova/db/sqlalchemy/migrate_repo/versions/216_havana.py b/nova/db/sqlalchemy/migrate_repo/versions/216_havana.py index d3992d88d3..1ddc7167ad 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/216_havana.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/216_havana.py @@ -1551,7 +1551,3 @@ def upgrade(migrate_engine): _populate_instance_types(instance_types) _create_dump_tables(migrate_engine) - - -def downgrade(migrate_engine): - raise NotImplementedError('Downgrade from Havana is unsupported.') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/217_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/217_placeholder.py index b1a618ef0e..64e3b1c53d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/217_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/217_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/218_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/218_placeholder.py index b1a618ef0e..64e3b1c53d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/218_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/218_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/219_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/219_placeholder.py index b1a618ef0e..64e3b1c53d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/219_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/219_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/220_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/220_placeholder.py index b1a618ef0e..64e3b1c53d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/220_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/220_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/221_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/221_placeholder.py index b1a618ef0e..64e3b1c53d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/221_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/221_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/222_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/222_placeholder.py index b1a618ef0e..64e3b1c53d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/222_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/222_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/223_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/223_placeholder.py index b1a618ef0e..64e3b1c53d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/223_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/223_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/224_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/224_placeholder.py index b1a618ef0e..64e3b1c53d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/224_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/224_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/225_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/225_placeholder.py index b1a618ef0e..64e3b1c53d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/225_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/225_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/226_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/226_placeholder.py index b1a618ef0e..64e3b1c53d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/226_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/226_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/227_fix_project_user_quotas_resource_length.py b/nova/db/sqlalchemy/migrate_repo/versions/227_fix_project_user_quotas_resource_length.py index ceea2fa6d9..8eef3612c0 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/227_fix_project_user_quotas_resource_length.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/227_fix_project_user_quotas_resource_length.py @@ -28,9 +28,3 @@ def upgrade(migrate_engine): col_resource.alter(type=String(255)) table.update().where(table.c.resource == 'injected_file_content_byt')\ .values(resource='injected_file_content_bytes').execute() - - -def downgrade(migrate_engine): - # This migration fixes the resource of project_user_quotas table. - # No need to go back and reverse this change. - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/228_add_metrics_in_compute_nodes.py b/nova/db/sqlalchemy/migrate_repo/versions/228_add_metrics_in_compute_nodes.py index 7a46db1219..89351f6abd 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/228_add_metrics_in_compute_nodes.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/228_add_metrics_in_compute_nodes.py @@ -30,15 +30,3 @@ def upgrade(migrate_engine): shadow_metrics = Column('metrics', Text, nullable=True) compute_nodes.create_column(metrics) shadow_compute_nodes.create_column(shadow_metrics) - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - # Remove the new column - compute_nodes = Table('compute_nodes', meta, autoload=True) - shadow_compute_nodes = Table('shadow_compute_nodes', meta, autoload=True) - - compute_nodes.drop_column('metrics') - shadow_compute_nodes.drop_column('metrics') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/229_add_extra_resources_in_compute_nodes.py b/nova/db/sqlalchemy/migrate_repo/versions/229_add_extra_resources_in_compute_nodes.py index c4b9f133d8..5a968e32d6 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/229_add_extra_resources_in_compute_nodes.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/229_add_extra_resources_in_compute_nodes.py @@ -32,15 +32,3 @@ def upgrade(migrate_engine): shadow_extra_resources = Column('extra_resources', Text, nullable=True) compute_nodes.create_column(extra_resources) shadow_compute_nodes.create_column(shadow_extra_resources) - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - # Remove the new column - compute_nodes = Table('compute_nodes', meta, autoload=True) - shadow_compute_nodes = Table('shadow_compute_nodes', meta, autoload=True) - - compute_nodes.drop_column('extra_resources') - shadow_compute_nodes.drop_column('extra_resources') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/230_add_details_column_to_instance_actions_events.py b/nova/db/sqlalchemy/migrate_repo/versions/230_add_details_column_to_instance_actions_events.py index 51856c1e66..104e2f6bfe 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/230_add_details_column_to_instance_actions_events.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/230_add_details_column_to_instance_actions_events.py @@ -28,13 +28,3 @@ def upgrade(migrate_engine): api._SHADOW_TABLE_PREFIX + 'instance_actions_events') shadow_actions_events.create_column(host.copy()) shadow_actions_events.create_column(details.copy()) - - -def downgrade(migrate_engine): - actions_events = utils.get_table(migrate_engine, 'instance_actions_events') - actions_events.drop_column('host') - actions_events.drop_column('details') - shadow_actions_events = utils.get_table(migrate_engine, - api._SHADOW_TABLE_PREFIX + 'instance_actions_events') - shadow_actions_events.drop_column('host') - shadow_actions_events.drop_column('details') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/231_add_ephemeral_key_uuid.py b/nova/db/sqlalchemy/migrate_repo/versions/231_add_ephemeral_key_uuid.py index b30a33262a..3c218f2fbb 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/231_add_ephemeral_key_uuid.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/231_add_ephemeral_key_uuid.py @@ -32,13 +32,3 @@ def upgrade(migrate_engine): values(ephemeral_key_uuid=None)) migrate_engine.execute(shadow_instances.update(). values(ephemeral_key_uuid=None)) - - -def downgrade(migrate_engine): - """Function removes ephemeral storage encryption key uuid field.""" - meta = MetaData(bind=migrate_engine) - instances = Table('instances', meta, autoload=True) - shadow_instances = Table('shadow_instances', meta, autoload=True) - - instances.c.ephemeral_key_uuid.drop() - shadow_instances.c.ephemeral_key_uuid.drop() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/232_drop_dump_tables.py b/nova/db/sqlalchemy/migrate_repo/versions/232_drop_dump_tables.py index 3275a2ef4c..35466120ef 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/232_drop_dump_tables.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/232_drop_dump_tables.py @@ -26,7 +26,3 @@ def upgrade(migrate_engine): for table_name in table_names: table = Table('dump_' + table_name, meta) table.drop(checkfirst=True) - - -def downgrade(migrate_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/233_add_stats_in_compute_nodes.py b/nova/db/sqlalchemy/migrate_repo/versions/233_add_stats_in_compute_nodes.py index 39c40f13bc..517fe02ed2 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/233_add_stats_in_compute_nodes.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/233_add_stats_in_compute_nodes.py @@ -13,15 +13,8 @@ # License for the specific language governing permissions and limitations # under the License. - -from oslo_utils import timeutils from sqlalchemy import Column -from sqlalchemy import DateTime -from sqlalchemy import ForeignKey -from sqlalchemy import Index -from sqlalchemy import Integer from sqlalchemy import MetaData -from sqlalchemy import String from sqlalchemy import Table from sqlalchemy import Text @@ -44,51 +37,3 @@ def upgrade(engine): table = Table(table_name, meta, autoload=True) stats = Column('stats', Text, default='{}') table.create_column(stats) - - -def downgrade(engine): - meta = MetaData() - meta.bind = engine - - table_names = ('compute_nodes', 'shadow_compute_nodes') - for table_name in table_names: - table = Table(table_name, meta, autoload=True) - table.drop_column('stats') - - if engine.name == 'mysql': - fk_name = 'fk_compute_node_stats_compute_node_id' - else: - fk_name = 'compute_node_stats_compute_node_id_fkey' - - table = Table('compute_node_stats', meta, - Column('created_at', DateTime, default=timeutils.utcnow), - Column('updated_at', DateTime, onupdate=timeutils.utcnow), - Column('deleted_at', DateTime), - Column('deleted', Integer, default=0), - Column('id', Integer, nullable=False), - Column('key', String(255), nullable=False), - Column('value', String(255), nullable=True), - Column('compute_node_id', Integer, - ForeignKey('compute_nodes.id', name=fk_name), - index=True), - Index('compute_node_stats_node_id_and_deleted_idx', - 'compute_node_id', 'deleted'), - mysql_engine='InnoDB', - mysql_charset='utf8' - ) - table.create() - - # shadow version has no fkey or index - table = Table('shadow_compute_node_stats', meta, - Column('created_at', DateTime, default=timeutils.utcnow), - Column('updated_at', DateTime, onupdate=timeutils.utcnow), - Column('deleted_at', DateTime), - Column('deleted', Integer, default=0), - Column('id', Integer, primary_key=True, nullable=False), - Column('key', String(255), nullable=False), - Column('value', String(255), nullable=True), - Column('compute_node_id', Integer), - mysql_engine='InnoDB', - mysql_charset='utf8' - ) - table.create() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/234_add_expire_reservations_index.py b/nova/db/sqlalchemy/migrate_repo/versions/234_add_expire_reservations_index.py index de1d25e2cd..d9484a7bfd 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/234_add_expire_reservations_index.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/234_add_expire_reservations_index.py @@ -43,17 +43,3 @@ def upgrade(migrate_engine): reservations.c.deleted, reservations.c.expire) index.create(migrate_engine) - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - reservations = Table('reservations', meta, autoload=True) - - index = _get_deleted_expire_index(reservations) - if index: - index.drop(migrate_engine) - else: - LOG.info(_LI('Skipped removing reservations_deleted_expire_idx ' - 'because index does not exist.')) diff --git a/nova/db/sqlalchemy/migrate_repo/versions/235_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/235_placeholder.py index f5c5483cda..0a96cbdb27 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/235_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/235_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/236_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/236_placeholder.py index f5c5483cda..0a96cbdb27 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/236_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/236_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/237_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/237_placeholder.py index f5c5483cda..0a96cbdb27 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/237_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/237_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/238_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/238_placeholder.py index f5c5483cda..0a96cbdb27 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/238_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/238_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/239_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/239_placeholder.py index f5c5483cda..0a96cbdb27 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/239_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/239_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/240_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/240_placeholder.py index f5c5483cda..0a96cbdb27 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/240_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/240_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/241_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/241_placeholder.py index f5c5483cda..0a96cbdb27 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/241_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/241_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/242_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/242_placeholder.py index f5c5483cda..0a96cbdb27 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/242_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/242_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/243_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/243_placeholder.py index f5c5483cda..0a96cbdb27 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/243_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/243_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/244_increase_user_id_length_volume_usage_cache.py b/nova/db/sqlalchemy/migrate_repo/versions/244_increase_user_id_length_volume_usage_cache.py index 079003d733..882d7339e3 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/244_increase_user_id_length_volume_usage_cache.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/244_increase_user_id_length_volume_usage_cache.py @@ -22,10 +22,3 @@ def upgrade(migrate_engine): # Match the maximum length of user_id in Keystone here instead of # assuming explicitly a single UUID length. col_resource.alter(type=String(64)) - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - table = Table('volume_usage_cache', meta, autoload=True) - col_resource = getattr(table.c, 'user_id') - col_resource.alter(type=String(36)) diff --git a/nova/db/sqlalchemy/migrate_repo/versions/245_add_mtu_and_dhcp_server.py b/nova/db/sqlalchemy/migrate_repo/versions/245_add_mtu_and_dhcp_server.py index 5c6391bfd9..326b9af4fa 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/245_add_mtu_and_dhcp_server.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/245_add_mtu_and_dhcp_server.py @@ -51,40 +51,3 @@ def upgrade(migrate_engine): shadow_networks.create_column(enable_dhcp.copy()) if not hasattr(shadow_networks.c, 'share_address'): shadow_networks.create_column(share_address.copy()) - - -# NOTE(vish): sqlite won't drop bool columns because it leaves a -# constraint behind so work around it. -def drop_boolean(column): - for constraint in column.table.constraints: - if column.name in unicode(getattr(constraint, 'sqltext', '')): - column.table.constraints.remove(constraint) - break - column.drop() - - -def downgrade(migrate_engine): - """Function removes network mtu, dhcp_server, and share_dhcp fields.""" - meta = MetaData(bind=migrate_engine) - networks = Table('networks', meta, autoload=True) - shadow_networks = Table('shadow_networks', meta, autoload=True) - - # NOTE(vish): ignore duplicate runs of upgrade so this can - # be backported - if hasattr(networks.c, 'mtu'): - networks.c.mtu.drop() - if hasattr(networks.c, 'dhcp_server'): - networks.c.dhcp_server.drop() - if hasattr(networks.c, 'enable_dhcp'): - drop_boolean(networks.c.enable_dhcp) - if hasattr(networks.c, 'share_address'): - drop_boolean(networks.c.share_address) - - if hasattr(shadow_networks.c, 'mtu'): - shadow_networks.c.mtu.drop() - if hasattr(shadow_networks.c, 'dhcp_server'): - shadow_networks.c.dhcp_server.drop() - if hasattr(shadow_networks.c, 'enable_dhcp'): - drop_boolean(shadow_networks.c.enable_dhcp) - if hasattr(shadow_networks.c, 'share_address'): - drop_boolean(shadow_networks.c.share_address) diff --git a/nova/db/sqlalchemy/migrate_repo/versions/246_add_compute_node_id_fk.py b/nova/db/sqlalchemy/migrate_repo/versions/246_add_compute_node_id_fk.py index a7e32e2d64..5c56f9b179 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/246_add_compute_node_id_fk.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/246_add_compute_node_id_fk.py @@ -28,14 +28,3 @@ def upgrade(migrate_engine): fkey = ForeignKeyConstraint(columns=[pci_devices.c.compute_node_id], refcolumns=[compute_nodes.c.id]) fkey.create() - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - pci_devices = Table('pci_devices', meta, autoload=True) - compute_nodes = Table('compute_nodes', meta, autoload=True) - - fkey = ForeignKeyConstraint(columns=[pci_devices.c.compute_node_id], - refcolumns=[compute_nodes.c.id]) - fkey.drop() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/247_nullable_mismatch.py b/nova/db/sqlalchemy/migrate_repo/versions/247_nullable_mismatch.py index 78f608732c..b4c226bc32 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/247_nullable_mismatch.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/247_nullable_mismatch.py @@ -28,16 +28,3 @@ def upgrade(migrate_engine): pci_devices.c.product_id.alter(nullable=False) pci_devices.c.vendor_id.alter(nullable=False) pci_devices.c.dev_type.alter(nullable=False) - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - quota_usages = Table('quota_usages', meta, autoload=True) - quota_usages.c.resource.alter(nullable=True) - - pci_devices = Table('pci_devices', meta, autoload=True) - pci_devices.c.deleted.alter(nullable=False) - pci_devices.c.product_id.alter(nullable=True) - pci_devices.c.vendor_id.alter(nullable=True) - pci_devices.c.dev_type.alter(nullable=True) diff --git a/nova/db/sqlalchemy/migrate_repo/versions/248_add_expire_reservations_index.py b/nova/db/sqlalchemy/migrate_repo/versions/248_add_expire_reservations_index.py index de1d25e2cd..d9484a7bfd 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/248_add_expire_reservations_index.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/248_add_expire_reservations_index.py @@ -43,17 +43,3 @@ def upgrade(migrate_engine): reservations.c.deleted, reservations.c.expire) index.create(migrate_engine) - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - reservations = Table('reservations', meta, autoload=True) - - index = _get_deleted_expire_index(reservations) - if index: - index.drop(migrate_engine) - else: - LOG.info(_LI('Skipped removing reservations_deleted_expire_idx ' - 'because index does not exist.')) diff --git a/nova/db/sqlalchemy/migrate_repo/versions/249_remove_duplicate_index.py b/nova/db/sqlalchemy/migrate_repo/versions/249_remove_duplicate_index.py index 9d2f797c9c..cc2ea31800 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/249_remove_duplicate_index.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/249_remove_duplicate_index.py @@ -29,8 +29,3 @@ def upgrade(migrate_engine): for index in bdm.indexes: if index.name == INDEX_NAME: index.drop() - - -def downgrade(migrate_engine): - # Unnecessary to re-add duplicate index when downgrading - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/250_remove_instance_groups_metadata.py b/nova/db/sqlalchemy/migrate_repo/versions/250_remove_instance_groups_metadata.py index 667baae823..4762fdb08e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/250_remove_instance_groups_metadata.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/250_remove_instance_groups_metadata.py @@ -14,8 +14,7 @@ # under the License. -from sqlalchemy import MetaData, Table, Column, DateTime, Integer, String, \ - ForeignKey +from sqlalchemy import MetaData, Table def upgrade(migrate_engine): @@ -30,42 +29,3 @@ def upgrade(migrate_engine): shadow_group_metadata = Table('shadow_instance_group_metadata', meta, autoload=True) shadow_group_metadata.drop() - - -def downgrade(migrate_engine): - """Revert removal of the instance_group_metadata table.""" - meta = MetaData(bind=migrate_engine) - Table('instance_groups', meta, autoload=True) - Table('shadow_instance_groups', meta, autoload=True) - - if not migrate_engine.has_table('instance_group_metadata'): - group_metadata = Table('instance_group_metadata', meta, - Column('created_at', DateTime), - Column('updated_at', DateTime), - Column('deleted_at', DateTime), - Column('deleted', Integer), - Column('id', Integer, primary_key=True, nullable=False), - Column('key', String(length=255)), - Column('value', String(length=255)), - Column('group_id', Integer, ForeignKey('instance_groups.id'), - nullable=False), - mysql_engine='InnoDB', - mysql_charset='utf8', - ) - group_metadata.create() - if not migrate_engine.has_table('shadow_instance_group_metadata'): - shadow_group_metadata = Table('shadow_instance_group_metadata', meta, - Column('created_at', DateTime), - Column('updated_at', DateTime), - Column('deleted_at', DateTime), - Column('deleted', Integer), - Column('id', Integer, primary_key=True, nullable=False), - Column('key', String(length=255)), - Column('value', String(length=255)), - Column('group_id', Integer, - ForeignKey('shadow_instance_groups.id'), - nullable=False), - mysql_engine='InnoDB', - mysql_charset='utf8', - ) - shadow_group_metadata.create() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/251_add_numa_topology_to_comput_nodes.py b/nova/db/sqlalchemy/migrate_repo/versions/251_add_numa_topology_to_comput_nodes.py index c2510d9b07..bad7b8e557 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/251_add_numa_topology_to_comput_nodes.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/251_add_numa_topology_to_comput_nodes.py @@ -28,14 +28,3 @@ def upgrade(migrate_engine): shadow_numa_topology = Column('numa_topology', Text, nullable=True) compute_nodes.create_column(numa_topology) shadow_compute_nodes.create_column(shadow_numa_topology) - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - compute_nodes = Table('compute_nodes', meta, autoload=True) - shadow_compute_nodes = Table('shadow_compute_nodes', meta, autoload=True) - - compute_nodes.drop_column('numa_topology') - shadow_compute_nodes.drop_column('numa_topology') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/252_add_instance_extra_table.py b/nova/db/sqlalchemy/migrate_repo/versions/252_add_instance_extra_table.py index ef8fa542f8..3ddabd990b 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/252_add_instance_extra_table.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/252_add_instance_extra_table.py @@ -58,14 +58,3 @@ def upgrade(migrate_engine): instance_fkey = ForeignKeyConstraint( columns=fkey_columns, refcolumns=fkey_refcolumns) instance_fkey.create() - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - for prefix in ('', 'shadow_'): - table_name = prefix + 'instance_extra' - if migrate_engine.has_table(table_name): - instance_extra = Table(table_name, meta, autoload=True) - instance_extra.drop() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/253_add_pci_requests_to_instance_extra_table.py b/nova/db/sqlalchemy/migrate_repo/versions/253_add_pci_requests_to_instance_extra_table.py index e0ae99b1c4..96cc34402e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/253_add_pci_requests_to_instance_extra_table.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/253_add_pci_requests_to_instance_extra_table.py @@ -30,13 +30,3 @@ def upgrade(migrate_engine): new_column = Column(NEW_COLUMN_NAME, Text, nullable=True) if not hasattr(table.c, NEW_COLUMN_NAME): table.create_column(new_column) - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - for prefix in ('', 'shadow_'): - table = Table(prefix + BASE_TABLE_NAME, meta, autoload=True) - if hasattr(table.c, NEW_COLUMN_NAME): - getattr(table.c, NEW_COLUMN_NAME).drop() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/254_add_request_id_in_pci_devices.py b/nova/db/sqlalchemy/migrate_repo/versions/254_add_request_id_in_pci_devices.py index f409bcc793..fae470312c 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/254_add_request_id_in_pci_devices.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/254_add_request_id_in_pci_devices.py @@ -33,17 +33,3 @@ def upgrade(engine): if not hasattr(shadow_pci_devices.c, 'request_id'): shadow_pci_devices.create_column(request_id.copy()) - - -def downgrade(engine): - """Function drops request_id field.""" - meta = MetaData(bind=engine) - - pci_devices = Table('pci_devices', meta, autoload=True) - shadow_pci_devices = Table('shadow_pci_devices', meta, autoload=True) - - if hasattr(pci_devices.c, 'request_id'): - pci_devices.c.request_id.drop() - - if hasattr(shadow_pci_devices.c, 'request_id'): - shadow_pci_devices.c.request_id.drop() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/255_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/255_placeholder.py index 939c97a41e..c3e43ef46e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/255_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/255_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/256_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/256_placeholder.py index 939c97a41e..c3e43ef46e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/256_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/256_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/257_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/257_placeholder.py index 939c97a41e..c3e43ef46e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/257_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/257_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/258_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/258_placeholder.py index 939c97a41e..c3e43ef46e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/258_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/258_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/259_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/259_placeholder.py index 939c97a41e..c3e43ef46e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/259_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/259_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/260_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/260_placeholder.py index 939c97a41e..c3e43ef46e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/260_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/260_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/261_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/261_placeholder.py index 939c97a41e..c3e43ef46e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/261_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/261_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/262_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/262_placeholder.py index 939c97a41e..c3e43ef46e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/262_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/262_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/263_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/263_placeholder.py index 939c97a41e..c3e43ef46e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/263_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/263_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/264_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/264_placeholder.py index 939c97a41e..c3e43ef46e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/264_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/264_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/265_remove_duplicated_index.py b/nova/db/sqlalchemy/migrate_repo/versions/265_remove_duplicated_index.py index b8983ea0b0..b6f7d17f97 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/265_remove_duplicated_index.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/265_remove_duplicated_index.py @@ -35,8 +35,3 @@ def upgrade(migrate_engine): for index in table.indexes: if index.name == index_name: index.drop() - - -def downgrade(migrate_engine): - # Unnecessary to re-add duplicated index when downgrading - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/266_add_instance_tags.py b/nova/db/sqlalchemy/migrate_repo/versions/266_add_instance_tags.py index 051ef7ec28..b1b11a2f56 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/266_add_instance_tags.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/266_add_instance_tags.py @@ -25,10 +25,3 @@ def upgrade(migrate_engine): mysql_engine='InnoDB', mysql_charset='utf8') tags.create() - - -def downgrade(migrate_engine): - meta = sa.MetaData() - meta.bind = migrate_engine - table = sa.Table('tags', meta, autoload=True) - table.drop() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/267_instance_uuid_non_nullable.py b/nova/db/sqlalchemy/migrate_repo/versions/267_instance_uuid_non_nullable.py index 492f20071e..889c7ff21e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/267_instance_uuid_non_nullable.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/267_instance_uuid_non_nullable.py @@ -13,7 +13,6 @@ # under the License. from migrate import UniqueConstraint -from oslo_db.sqlalchemy import utils from oslo_log import log as logging from sqlalchemy import MetaData from sqlalchemy.sql import null @@ -112,14 +111,3 @@ def upgrade(migrate_engine): # any ForeignKeys on the instances.uuid column due to some index rename # issues in older versions of MySQL. That is beyond the scope of this # migration. - - -def downgrade(migrate_engine): - # drop the unique constraint on instances.uuid - UniqueConstraint('uuid', - table=utils.get_table(migrate_engine, 'instances'), - name=UC_NAME).drop() - # We can't bring the deleted records back but we can make uuid nullable. - for table_name in ('instances', 'shadow_instances'): - table = utils.get_table(migrate_engine, table_name) - table.columns.uuid.alter(nullable=True) diff --git a/nova/db/sqlalchemy/migrate_repo/versions/268_add_host_in_compute_node.py b/nova/db/sqlalchemy/migrate_repo/versions/268_add_host_in_compute_node.py index c55f6e6198..48ecc0774e 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/268_add_host_in_compute_node.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/268_add_host_in_compute_node.py @@ -40,19 +40,3 @@ def upgrade(migrate_engine): ukey = UniqueConstraint('host', 'hypervisor_hostname', table=compute_nodes, name="uniq_compute_nodes0host0hypervisor_hostname") ukey.create() - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - # Remove the new column - compute_nodes = Table('compute_nodes', meta, autoload=True) - shadow_compute_nodes = Table('shadow_compute_nodes', meta, autoload=True) - - ukey = UniqueConstraint('host', 'hypervisor_hostname', table=compute_nodes, - name="uniq_compute_nodes0host0hypervisor_hostname") - ukey.drop() - - compute_nodes.drop_column('host') - shadow_compute_nodes.drop_column('host') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/269_add_numa_node_column.py b/nova/db/sqlalchemy/migrate_repo/versions/269_add_numa_node_column.py index 50115ab719..8bffd13564 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/269_add_numa_node_column.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/269_add_numa_node_column.py @@ -30,16 +30,3 @@ def upgrade(migrate_engine): pci_devices.create_column(numa_node) if not hasattr(shadow_pci_devices.c, 'numa_node'): shadow_pci_devices.create_column(numa_node.copy()) - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - # Remove the numa_node column - pci_devices = Table('pci_devices', meta, autoload=True) - shadow_pci_devices = Table('shadow_pci_devices', meta, autoload=True) - - if hasattr(pci_devices.c, 'numa_node'): - pci_devices.drop_column('numa_node') - if hasattr(shadow_pci_devices.c, 'numa_node'): - shadow_pci_devices.drop_column('numa_node') diff --git a/nova/db/sqlalchemy/migrate_repo/versions/270_flavor_data_in_extra.py b/nova/db/sqlalchemy/migrate_repo/versions/270_flavor_data_in_extra.py index 51fbf6d610..202e53b895 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/270_flavor_data_in_extra.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/270_flavor_data_in_extra.py @@ -30,13 +30,3 @@ def upgrade(migrate_engine): new_column = Column(NEW_COLUMN_NAME, Text, nullable=True) if not hasattr(table.c, NEW_COLUMN_NAME): table.create_column(new_column) - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - for prefix in ('', 'shadow_'): - table = Table(prefix + BASE_TABLE_NAME, meta, autoload=True) - if hasattr(table.c, NEW_COLUMN_NAME): - getattr(table.c, NEW_COLUMN_NAME).drop() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/271_sqlite_postgresql_indexes.py b/nova/db/sqlalchemy/migrate_repo/versions/271_sqlite_postgresql_indexes.py index fe017d3979..84d57028ca 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/271_sqlite_postgresql_indexes.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/271_sqlite_postgresql_indexes.py @@ -67,22 +67,3 @@ def upgrade(migrate_engine): ensure_index_exists(migrate_engine, 'virtual_interfaces', 'virtual_interfaces_network_id_idx', ['network_id']) - - -def downgrade(migrate_engine): - """Remove indexes previously missing on SQLite and PostgreSQL.""" - - if migrate_engine.name in ('sqlite', 'postgresql'): - for table_name, index_name, column_names in INDEXES: - ensure_index_removed(migrate_engine, table_name, index_name) - elif migrate_engine.name == 'mysql': - # Rename some indexes with conflicting names back - ensure_index_removed(migrate_engine, 'dns_domains', - 'dns_domains_project_id_idx') - ensure_index_exists(migrate_engine, 'dns_domains', 'project_id', - ['project_id']) - - ensure_index_removed(migrate_engine, 'virtual_interfaces', - 'virtual_interfaces_network_id_idx') - ensure_index_exists(migrate_engine, 'virtual_interfaces', 'network_id', - ['network_id']) diff --git a/nova/db/sqlalchemy/migrate_repo/versions/272_add_keypair_type.py b/nova/db/sqlalchemy/migrate_repo/versions/272_add_keypair_type.py index 426fad902c..5137b16675 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/272_add_keypair_type.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/272_add_keypair_type.py @@ -26,7 +26,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migrate_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/273_sqlite_foreign_keys.py b/nova/db/sqlalchemy/migrate_repo/versions/273_sqlite_foreign_keys.py index 4f5aabdaa4..01eafbd21d 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/273_sqlite_foreign_keys.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/273_sqlite_foreign_keys.py @@ -106,10 +106,3 @@ def upgrade(migrate_engine): uc = UniqueConstraint(*column_names, table=table, name=name) uc.create() - - -def downgrade(migrate_engine): - # sqlalchemy-migrate doesn't handle dropping foreign keys. Since this - # migration only applies to SQLite, which isn't a supported production - # deploy, the amount of work outweighs the need for a downgrade. - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/274_update_instances_project_id_index.py b/nova/db/sqlalchemy/migrate_repo/versions/274_update_instances_project_id_index.py index ae65b378e6..3b8ba9f154 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/274_update_instances_project_id_index.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/274_update_instances_project_id_index.py @@ -44,24 +44,3 @@ def upgrade(migrate_engine): for index in instances.indexes: if [c.name for c in index.columns] == ['project_id']: index.drop() - - -def downgrade(migrate_engine): - """Change instances (project_id, deleted) index to cover (project_id).""" - - meta = MetaData(bind=migrate_engine) - - instances = Table('instances', meta, autoload=True) - - for index in instances.indexes: - if [c.name for c in index.columns] == ['project_id']: - LOG.info(_LI('Skipped adding instances_project_id_idx ' - 'because an equivalent index already exists.')) - break - else: - index = Index('project_id', instances.c.project_id) - index.create() - - for index in instances.indexes: - if [c.name for c in index.columns] == ['project_id', 'deleted']: - index.drop() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/275_add_keypair_type.py b/nova/db/sqlalchemy/migrate_repo/versions/275_add_keypair_type.py index 39889066ee..95b4607a06 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/275_add_keypair_type.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/275_add_keypair_type.py @@ -39,19 +39,3 @@ def upgrade(migrate_engine): key_pairs.create_column(keypair_type) shadow_key_pairs.create_column(keypair_type.copy()) - - -def downgrade(migrate_engine): - """Function removes key_pairs type field.""" - meta = MetaData(bind=migrate_engine) - key_pairs = Table('key_pairs', meta, autoload=True) - shadow_key_pairs = Table('shadow_key_pairs', meta, autoload=True) - enum = Enum(metadata=meta, name='keypair_types') - - if hasattr(key_pairs.c, 'type'): - key_pairs.c.type.drop() - - if hasattr(shadow_key_pairs.c, 'type'): - shadow_key_pairs.c.type.drop() - - enum.drop() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/276_vcpu_model.py b/nova/db/sqlalchemy/migrate_repo/versions/276_vcpu_model.py index 223e459334..254ddcf03f 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/276_vcpu_model.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/276_vcpu_model.py @@ -30,13 +30,3 @@ def upgrade(migrate_engine): new_column = Column(NEW_COLUMN_NAME, Text, nullable=True) if not hasattr(table.c, NEW_COLUMN_NAME): table.create_column(new_column) - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - for prefix in ('', 'shadow_'): - table = Table(prefix + BASE_TABLE_NAME, meta, autoload=True) - if hasattr(table.c, NEW_COLUMN_NAME): - getattr(table.c, NEW_COLUMN_NAME).drop() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/277_add_fixed_ip_updated_index.py b/nova/db/sqlalchemy/migrate_repo/versions/277_add_fixed_ip_updated_index.py index 31f85484d9..afba49cd58 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/277_add_fixed_ip_updated_index.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/277_add_fixed_ip_updated_index.py @@ -43,12 +43,3 @@ def upgrade(migrate_engine): columns = [getattr(table.c, col_name) for col_name in INDEX_COLUMNS] index = Index(INDEX_NAME, *columns) index.create(migrate_engine) - - -def downgrade(migrate_engine): - meta, table, index = _get_table_index(migrate_engine) - if not index: - LOG.info(_LI('Skipped removing %s because no such index exists'), - INDEX_NAME) - return - index.drop(migrate_engine) diff --git a/nova/db/sqlalchemy/migrate_repo/versions/278_remove_service_fk_in_compute_nodes.py b/nova/db/sqlalchemy/migrate_repo/versions/278_remove_service_fk_in_compute_nodes.py index 9e86cd431a..9fd5c222b4 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/278_remove_service_fk_in_compute_nodes.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/278_remove_service_fk_in_compute_nodes.py @@ -66,40 +66,3 @@ def upgrade(migrate_engine): # Delete the nested index which was created by the FK index.drop() break - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - compute_nodes = Table('compute_nodes', meta, autoload=True) - shadow_compute_nodes = Table('shadow_compute_nodes', meta, autoload=True) - services = Table('services', meta, autoload=True) - - _correct_sqlite_unique_constraints(migrate_engine, compute_nodes) - - # Make the service_id field not nullable - # NOTE(sbauza): Beyond the point of this commit, service_id will not be - # updated, but previous commits still do. We can tho safely go back to - # a state where all the compute nodes are providing this field. - compute_nodes.c.service_id.alter(nullable=False) - shadow_compute_nodes.c.service_id.alter(nullable=False) - - # Adding only FK if not existing yet - fkeys = {fk.parent.name: fk.column - for fk in compute_nodes.foreign_keys} - if 'service_id' in fkeys and fkeys['service_id'] == services.c.id: - return - - # NOTE(sbauza): See 216_havana.py for the whole logic - if migrate_engine.name == 'postgresql': - # PostgreSQL names things like it wants (correct and compatible!) - fkey = ForeignKeyConstraint(columns=[compute_nodes.c.service_id], - refcolumns=[services.c.id]) - fkey.create() - else: - # For MySQL we name our fkeys explicitly so they match Havana - fkey = ForeignKeyConstraint(columns=[compute_nodes.c.service_id], - refcolumns=[services.c.id], - name='fk_compute_nodes_service_id') - fkey.create() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/279_fix_unique_constraint_for_compute_node.py b/nova/db/sqlalchemy/migrate_repo/versions/279_fix_unique_constraint_for_compute_node.py index 412c4f5d3b..820fa3f696 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/279_fix_unique_constraint_for_compute_node.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/279_fix_unique_constraint_for_compute_node.py @@ -33,19 +33,3 @@ def upgrade(migrate_engine): table=compute_nodes, name="uniq_compute_nodes0host0hypervisor_hostname0deleted") ukey.create() - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - compute_nodes = Table('compute_nodes', meta, autoload=True) - - ukey = UniqueConstraint( - 'host', 'hypervisor_hostname', 'deleted', - table=compute_nodes, - name="uniq_compute_nodes0host0hypervisor_hostname0deleted") - ukey.drop() - - ukey = UniqueConstraint('host', 'hypervisor_hostname', table=compute_nodes, - name="uniq_compute_nodes0host0hypervisor_hostname") - ukey.create() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/280_add_nullable_false_to_keypairs_name.py b/nova/db/sqlalchemy/migrate_repo/versions/280_add_nullable_false_to_keypairs_name.py index 624495171b..f3339cad1a 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/280_add_nullable_false_to_keypairs_name.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/280_add_nullable_false_to_keypairs_name.py @@ -33,21 +33,3 @@ def upgrade(migrate_engine): UniqueConstraint('user_id', 'name', 'deleted', table=key_pairs, name='uniq_key_pairs0user_id0name0deleted').create() - - -def downgrade(migrate_engine): - """Function allows null value for keypairs name field.""" - meta = MetaData(bind=migrate_engine) - key_pairs = Table('key_pairs', meta, autoload=True) - - # Note: Since we are altering name field, this constraint on name needs to - # first be dropped before we can alter name. We then re-create the same - # constraint. It was first added in 216_havana.py so no need to remove - # constraint on downgrade. - UniqueConstraint('user_id', 'name', 'deleted', table=key_pairs, - name='uniq_key_pairs0user_id0name0deleted').drop() - - key_pairs.c.name.alter(nullable=True) - - UniqueConstraint('user_id', 'name', 'deleted', table=key_pairs, - name='uniq_key_pairs0user_id0name0deleted').create() diff --git a/nova/db/sqlalchemy/migrate_repo/versions/281_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/281_placeholder.py index 9dfc9cb471..b088f203c5 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/281_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/281_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/282_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/282_placeholder.py index 9dfc9cb471..b088f203c5 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/282_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/282_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/283_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/283_placeholder.py index 9dfc9cb471..b088f203c5 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/283_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/283_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/284_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/284_placeholder.py index 9dfc9cb471..b088f203c5 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/284_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/284_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/285_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/285_placeholder.py index 9dfc9cb471..b088f203c5 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/285_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/285_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/286_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/286_placeholder.py index 9dfc9cb471..b088f203c5 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/286_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/286_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/287_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/287_placeholder.py index 9dfc9cb471..b088f203c5 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/287_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/287_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/288_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/288_placeholder.py index 9dfc9cb471..b088f203c5 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/288_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/288_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/289_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/289_placeholder.py index 9dfc9cb471..b088f203c5 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/289_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/289_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/db/sqlalchemy/migrate_repo/versions/290_placeholder.py b/nova/db/sqlalchemy/migrate_repo/versions/290_placeholder.py index 9dfc9cb471..b088f203c5 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/290_placeholder.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/290_placeholder.py @@ -20,7 +20,3 @@ def upgrade(migrate_engine): pass - - -def downgrade(migration_engine): - pass diff --git a/nova/tests/unit/db/test_migrations.py b/nova/tests/unit/db/test_migrations.py index d75d19599b..b978e8f13c 100644 --- a/nova/tests/unit/db/test_migrations.py +++ b/nova/tests/unit/db/test_migrations.py @@ -69,9 +69,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, TIMEOUT_SCALING_FACTOR = 2 - snake_walk = True - downgrade = True - @property def INIT_VERSION(self): return migration.db_initial_version() @@ -194,7 +191,7 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, super(NovaMigrationsCheckers, self).migrate_up(version, with_data) def test_walk_versions(self): - self.walk_versions(self.snake_walk, self.downgrade) + self.walk_versions(snake_walk=False, downgrade=False) def _check_227(self, engine, data): table = oslodbutils.get_table(engine, 'project_user_quotas') @@ -218,9 +215,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIsInstance(compute_nodes.c.metrics.type, sqlalchemy.types.Text) - def _post_downgrade_228(self, engine): - self.assertColumnNotExists(engine, 'compute_nodes', 'metrics') - def _check_229(self, engine, data): self.assertColumnExists(engine, 'compute_nodes', 'extra_resources') @@ -228,9 +222,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIsInstance(compute_nodes.c.extra_resources.type, sqlalchemy.types.Text) - def _post_downgrade_229(self, engine): - self.assertColumnNotExists(engine, 'compute_nodes', 'extra_resources') - def _check_230(self, engine, data): for table_name in ['instance_actions_events', 'shadow_instance_actions_events']: @@ -244,12 +235,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIsInstance(action_events.c.details.type, sqlalchemy.types.Text) - def _post_downgrade_230(self, engine): - for table_name in ['instance_actions_events', - 'shadow_instance_actions_events']: - self.assertColumnNotExists(engine, table_name, 'host') - self.assertColumnNotExists(engine, table_name, 'details') - def _check_231(self, engine, data): self.assertColumnExists(engine, 'instances', 'ephemeral_key_uuid') @@ -258,10 +243,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, sqlalchemy.types.String) self.assertTrue(db_utils.check_shadow_table(engine, 'instances')) - def _post_downgrade_231(self, engine): - self.assertColumnNotExists(engine, 'instances', 'ephemeral_key_uuid') - self.assertTrue(db_utils.check_shadow_table(engine, 'instances')) - def _check_232(self, engine, data): table_names = ['compute_node_stats', 'compute_nodes', 'instance_actions', 'instance_actions_events', @@ -279,12 +260,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertRaises(sqlalchemy.exc.NoSuchTableError, oslodbutils.get_table, engine, 'compute_node_stats') - def _post_downgrade_233(self, engine): - self.assertColumnNotExists(engine, 'compute_nodes', 'stats') - - # confirm compute_node_stats exists - oslodbutils.get_table(engine, 'compute_node_stats') - def _check_234(self, engine, data): self.assertIndexMembers(engine, 'reservations', 'reservations_deleted_expire_idx', @@ -295,11 +270,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, engine, 'volume_usage_cache') self.assertEqual(64, volume_usage_cache.c.user_id.type.length) - def _post_downgrade_244(self, engine): - volume_usage_cache = oslodbutils.get_table( - engine, 'volume_usage_cache') - self.assertEqual(36, volume_usage_cache.c.user_id.type.length) - def _pre_upgrade_245(self, engine): # create a fake network networks = oslodbutils.get_table(engine, 'networks') @@ -318,22 +288,11 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, # share address should default to false self.assertFalse(network.share_address) - def _post_downgrade_245(self, engine): - self.assertColumnNotExists(engine, 'networks', 'mtu') - self.assertColumnNotExists(engine, 'networks', 'dhcp_server') - self.assertColumnNotExists(engine, 'networks', 'enable_dhcp') - self.assertColumnNotExists(engine, 'networks', 'share_address') - def _check_246(self, engine, data): pci_devices = oslodbutils.get_table(engine, 'pci_devices') self.assertEqual(1, len([fk for fk in pci_devices.foreign_keys if fk.parent.name == 'compute_node_id'])) - def _post_downgrade_246(self, engine): - pci_devices = oslodbutils.get_table(engine, 'pci_devices') - self.assertEqual(0, len([fk for fk in pci_devices.foreign_keys - if fk.parent.name == 'compute_node_id'])) - def _check_247(self, engine, data): quota_usages = oslodbutils.get_table(engine, 'quota_usages') self.assertFalse(quota_usages.c.resource.nullable) @@ -344,26 +303,11 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertFalse(pci_devices.c.vendor_id.nullable) self.assertFalse(pci_devices.c.dev_type.nullable) - def _post_downgrade_247(self, engine): - quota_usages = oslodbutils.get_table(engine, 'quota_usages') - self.assertTrue(quota_usages.c.resource.nullable) - - pci_devices = oslodbutils.get_table(engine, 'pci_devices') - self.assertFalse(pci_devices.c.deleted.nullable) - self.assertTrue(pci_devices.c.product_id.nullable) - self.assertTrue(pci_devices.c.vendor_id.nullable) - self.assertTrue(pci_devices.c.dev_type.nullable) - def _check_248(self, engine, data): self.assertIndexMembers(engine, 'reservations', 'reservations_deleted_expire_idx', ['deleted', 'expire']) - def _post_downgrade_248(self, engine): - reservations = oslodbutils.get_table(engine, 'reservations') - index_names = [idx.name for idx in reservations.indexes] - self.assertNotIn('reservations_deleted_expire_idx', index_names) - def _check_249(self, engine, data): # Assert that only one index exists that covers columns # instance_uuid and device_name @@ -372,23 +316,10 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, if [c.name for c in i.columns] == ['instance_uuid', 'device_name']])) - def _post_downgrade_249(self, engine): - # The duplicate index is not created on downgrade, so this - # asserts that only one index exists that covers columns - # instance_uuid and device_name - bdm = oslodbutils.get_table(engine, 'block_device_mapping') - self.assertEqual(1, len([i for i in bdm.indexes - if [c.name for c in i.columns] == - ['instance_uuid', 'device_name']])) - def _check_250(self, engine, data): self.assertTableNotExists(engine, 'instance_group_metadata') self.assertTableNotExists(engine, 'shadow_instance_group_metadata') - def _post_downgrade_250(self, engine): - oslodbutils.get_table(engine, 'instance_group_metadata') - oslodbutils.get_table(engine, 'shadow_instance_group_metadata') - def _check_251(self, engine, data): self.assertColumnExists(engine, 'compute_nodes', 'numa_topology') self.assertColumnExists(engine, 'shadow_compute_nodes', @@ -402,11 +333,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIsInstance(shadow_compute_nodes.c.numa_topology.type, sqlalchemy.types.Text) - def _post_downgrade_251(self, engine): - self.assertColumnNotExists(engine, 'compute_nodes', 'numa_topology') - self.assertColumnNotExists(engine, 'shadow_compute_nodes', - 'numa_topology') - def _check_252(self, engine, data): oslodbutils.get_table(engine, 'instance_extra') oslodbutils.get_table(engine, 'shadow_instance_extra') @@ -414,10 +340,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, 'instance_extra_idx', ['instance_uuid']) - def _post_downgrade_252(self, engine): - self.assertTableNotExists(engine, 'instance_extra') - self.assertTableNotExists(engine, 'shadow_instance_extra') - def _check_253(self, engine, data): self.assertColumnExists(engine, 'instance_extra', 'pci_requests') self.assertColumnExists( @@ -430,11 +352,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIsInstance(shadow_instance_extra.c.pci_requests.type, sqlalchemy.types.Text) - def _post_downgrade_253(self, engine): - self.assertColumnNotExists(engine, 'instance_extra', 'pci_requests') - self.assertColumnNotExists(engine, 'shadow_instance_extra', - 'pci_requests') - def _check_254(self, engine, data): self.assertColumnExists(engine, 'pci_devices', 'request_id') self.assertColumnExists( @@ -448,11 +365,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIsInstance(shadow_pci_devices.c.request_id.type, sqlalchemy.types.String) - def _post_downgrade_254(self, engine): - self.assertColumnNotExists(engine, 'pci_devices', 'request_id') - self.assertColumnNotExists( - engine, 'shadow_pci_devices', 'request_id') - def _check_265(self, engine, data): # Assert that only one index exists that covers columns # host and deleted @@ -466,20 +378,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, if [c.name for c in i.columns][:1] == ['host']])) - def _post_downgrade_265(self, engine): - # The duplicated index is not created on downgrade, so this - # asserts that only one index exists that covers columns - # host and deleted - instances = oslodbutils.get_table(engine, 'instances') - self.assertEqual(1, len([i for i in instances.indexes - if [c.name for c in i.columns][:2] == - ['host', 'deleted']])) - # and only one index covers host column - iscsi_targets = oslodbutils.get_table(engine, 'iscsi_targets') - self.assertEqual(1, len([i for i in iscsi_targets.indexes - if [c.name for c in i.columns][:1] == - ['host']])) - def _check_266(self, engine, data): self.assertColumnExists(engine, 'tags', 'resource_id') self.assertColumnExists(engine, 'tags', 'tag') @@ -491,9 +389,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIsInstance(table.c.tag.type, sqlalchemy.types.String) - def _post_downgrade_266(self, engine): - self.assertTableNotExists(engine, 'tags') - def _pre_upgrade_267(self, engine): # Create a fixed_ips row with a null instance_uuid (if not already # there) to make sure that's not deleted. @@ -539,16 +434,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, ).execute().first() self.assertIsNone(volume.instance_uuid) - def _post_downgrade_267(self, engine): - # Make sure the UC is gone and the column is nullable again. - instances = oslodbutils.get_table(engine, 'instances') - self.assertTrue(instances.c.uuid.nullable) - - inspector = reflection.Inspector.from_engine(engine) - constraints = inspector.get_unique_constraints('instances') - constraint_names = [constraint['name'] for constraint in constraints] - self.assertNotIn('uniq_instances0uuid', constraint_names) - def test_migration_267(self): # This is separate from test_walk_versions so we can test the case # where there are non-null instance_uuid entries in the database which @@ -603,10 +488,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIsInstance(shadow_compute_nodes.c.host.type, sqlalchemy.types.String) - def _post_downgrade_268(self, engine): - self.assertColumnNotExists(engine, 'compute_nodes', 'host') - self.assertColumnNotExists(engine, 'shadow_compute_nodes', 'host') - def _check_269(self, engine, data): self.assertColumnExists(engine, 'pci_devices', 'numa_node') @@ -621,10 +502,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, sqlalchemy.types.Integer) self.assertTrue(shadow_pci_devices.c.numa_node.nullable) - def _post_downgrade_269(self, engine): - self.assertColumnNotExists(engine, 'pci_devices', 'numa_node') - self.assertColumnNotExists(engine, 'shadow_pci_devices', 'numa_node') - def _check_270(self, engine, data): self.assertColumnExists(engine, 'instance_extra', 'flavor') self.assertColumnExists(engine, 'shadow_instance_extra', 'flavor') @@ -637,10 +514,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIsInstance(shadow_instance_extra.c.flavor.type, sqlalchemy.types.Text) - def _post_downgrade_270(self, engine): - self.assertColumnNotExists(engine, 'instance_extra', 'flavor') - self.assertColumnNotExists(engine, 'shadow_instance_extra', 'flavor') - def _check_271(self, engine, data): self.assertIndexMembers(engine, 'block_device_mapping', 'snapshot_id', ['snapshot_id']) @@ -672,39 +545,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIndexNotExists(engine, 'dns_domains', 'project_id') self.assertIndexNotExists(engine, 'virtual_interfaces', 'network_id') - def _post_downgrade_271(self, engine): - self.assertIndexNotExists(engine, 'dns_domains', - 'dns_domains_project_id_idx') - self.assertIndexNotExists(engine, 'virtual_interfaces', - 'virtual_interfaces_network_id_idx') - if engine.name == 'mysql': - self.assertIndexMembers(engine, 'dns_domains', - 'project_id', - ['project_id']) - self.assertIndexMembers(engine, 'virtual_interfaces', - 'network_id', - ['network_id']) - # Rest of indexes will still exist on MySQL - return - - # Never existed on non-MySQL databases, so shouldn't exist now - self.assertIndexNotExists(engine, 'dns_domains', 'project_id') - self.assertIndexNotExists(engine, 'virtual_interfaces', 'network_id') - - for table_name, index_name in [ - ('block_device_mapping', 'snapshot_id'), - ('block_device_mapping', 'volume_id'), - ('dns_domains', 'dns_domains_project_id_idx'), - ('fixed_ips', 'network_id'), - ('fixed_ips', 'fixed_ips_instance_uuid_fkey'), - ('fixed_ips', 'fixed_ips_virtual_interface_id_fkey'), - ('floating_ips', 'fixed_ip_id'), - ('iscsi_targets', 'iscsi_targets_volume_id_fkey'), - ('virtual_interfaces', 'virtual_interfaces_network_id_idx'), - ('virtual_interfaces', - 'virtual_interfaces_instance_uuid_fkey')]: - self.assertIndexNotExists(engine, table_name, index_name) - def _pre_upgrade_273(self, engine): if engine.name != 'sqlite': return @@ -762,22 +602,12 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertEqual(fkeys[src_column].table.name, dst_table) self.assertEqual(fkeys[src_column].name, dst_column) - def _post_downgrade_273(self, engine): - # NOTE(johannes): No downgrade implemented, so nothing to check - pass - def _check_274(self, engine, data): self.assertIndexMembers(engine, 'instances', 'instances_project_id_deleted_idx', ['project_id', 'deleted']) self.assertIndexNotExists(engine, 'instances', 'project_id') - def _post_downgrade_274(self, engine): - self.assertIndexMembers(engine, 'instances', - 'project_id', ['project_id']) - self.assertIndexNotExists(engine, 'instances', - 'instances_project_id_deleted_idx') - def _pre_upgrade_275(self, engine): # Create a keypair record so we can test that the upgrade will set # 'ssh' as default value in the new column for the previous keypair @@ -803,10 +633,6 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, key_pairs.c.name == 'test-migr').execute().first() self.assertEqual('ssh', keypair.type) - def _post_downgrade_275(self, engine): - self.assertColumnNotExists(engine, 'key_pairs', 'type') - self.assertColumnNotExists(engine, 'shadow_key_pairs', 'type') - def _check_276(self, engine, data): self.assertColumnExists(engine, 'instance_extra', 'vcpu_model') self.assertColumnExists(engine, 'shadow_instance_extra', 'vcpu_model') @@ -819,42 +645,17 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIsInstance(shadow_instance_extra.c.vcpu_model.type, sqlalchemy.types.Text) - def _post_downgrade_276(self, engine): - self.assertColumnNotExists(engine, 'instance_extra', 'vcpu_model') - self.assertColumnNotExists(engine, 'shadow_instance_extra', - 'vcpu_model') - def _check_277(self, engine, data): self.assertIndexMembers(engine, 'fixed_ips', 'fixed_ips_deleted_allocated_updated_at_idx', ['deleted', 'allocated', 'updated_at']) - def _post_downgrade_277(self, engine): - self.assertIndexNotExists(engine, 'fixed_ips', - 'fixed_ips_deleted_allocated_updated_at_idx') - def _check_278(self, engine, data): compute_nodes = oslodbutils.get_table(engine, 'compute_nodes') self.assertEqual(0, len([fk for fk in compute_nodes.foreign_keys if fk.parent.name == 'service_id'])) self.assertTrue(compute_nodes.c.service_id.nullable) - def _post_downgrade_278(self, engine): - compute_nodes = oslodbutils.get_table(engine, 'compute_nodes') - service_id_fks = [fk for fk in compute_nodes.foreign_keys - if fk.parent.name == 'service_id' - and fk.column.name == 'id'] - self.assertEqual(1, len(service_id_fks)) - self.assertFalse(compute_nodes.c.service_id.nullable) - if engine.name == 'postgresql': - # Only make sure that posgresql at least adds a name for the FK - self.assertIsNotNone(service_id_fks[0].name) - elif engine.name != 'sqlite': - # Erm, SQLA<1.0 doesn't return FK names for sqlite so we need to - # check only for other engines - self.assertEqual('fk_compute_nodes_service_id', - service_id_fks[0].name) - def _check_279(self, engine, data): inspector = reflection.Inspector.from_engine(engine) constraints = inspector.get_unique_constraints('compute_nodes') @@ -864,23 +665,10 @@ class NovaMigrationsCheckers(test_migrations.ModelsMigrationsSync, self.assertIn('uniq_compute_nodes0host0hypervisor_hostname0deleted', constraint_names) - def _post_downgrade_279(self, engine): - inspector = reflection.Inspector.from_engine(engine) - constraints = inspector.get_unique_constraints('compute_nodes') - constraint_names = [constraint['name'] for constraint in constraints] - self.assertNotIn('uniq_compute_nodes0host0hypervisor_hostname0deleted', - constraint_names) - self.assertIn('uniq_compute_nodes0host0hypervisor_hostname', - constraint_names) - def _check_280(self, engine, data): key_pairs = oslodbutils.get_table(engine, 'key_pairs') self.assertFalse(key_pairs.c.name.nullable) - def _post_downgrade_280(self, engine): - key_pairs = oslodbutils.get_table(engine, 'key_pairs') - self.assertTrue(key_pairs.c.name.nullable) - class TestNovaMigrationsSQLite(NovaMigrationsCheckers, test_base.DbTestCase, @@ -922,12 +710,12 @@ class TestNovaMigrationsPostgreSQL(NovaMigrationsCheckers, class ProjectTestCase(test.NoDBTestCase): - def test_all_migrations_have_downgrade(self): + def test_no_migrations_have_downgrade(self): topdir = os.path.normpath(os.path.dirname(__file__) + '/../../../') py_glob = os.path.join(topdir, "nova", "db", "sqlalchemy", "migrate_repo", "versions", "*.py") - missing_downgrade = [] + includes_downgrade = [] for path in glob.iglob(py_glob): has_upgrade = False has_downgrade = False @@ -938,10 +726,11 @@ class ProjectTestCase(test.NoDBTestCase): if 'def downgrade(' in line: has_downgrade = True - if has_upgrade and not has_downgrade: + if has_upgrade and has_downgrade: fname = os.path.basename(path) - missing_downgrade.append(fname) + includes_downgrade.append(fname) - helpful_msg = ("The following migrations are missing a downgrade:" - "\n\t%s" % '\n\t'.join(sorted(missing_downgrade))) - self.assertFalse(missing_downgrade, helpful_msg) + helpful_msg = ("The following migrations have a downgrade " + "which is not supported:" + "\n\t%s" % '\n\t'.join(sorted(includes_downgrade))) + self.assertFalse(includes_downgrade, helpful_msg)