diff options
author | Christian Rohmann <christian.rohmann@inovex.de> | 2022-09-09 13:56:20 +0200 |
---|---|---|
committer | Christian Rohmann <christian.rohmann@inovex.de> | 2022-09-15 19:42:39 +0200 |
commit | 531e1e8733b8928d262bf3b0b72540dde3ef1dad (patch) | |
tree | 2ba501cf380494636100cecd1ffedc6562057da9 /nova | |
parent | b8c62f2055de1079657e13aacf34d691d954f305 (diff) | |
download | nova-531e1e8733b8928d262bf3b0b72540dde3ef1dad.tar.gz |
db: Drop redundant indexes on instances and console_auth_tokens tables
* There were two unique constrains on the same column uuid of instances.
This change drops one of them. The second constraint was introduced with
https://review.opendev.org/c/openstack/nova/+/97946, but was pending cleanup
since.
* In console_auth_tokens there was a unique constraint and another index on
column token_hash.
Closes-Bug: #1641185
Change-Id: I0ffa47d2afbfbfa63651991b3791dfad3e1832e1
Diffstat (limited to 'nova')
-rw-r--r-- | nova/db/main/migrations/versions/960aac0e09ea_de_duplicate_indexes_in_instances__.py | 35 | ||||
-rw-r--r-- | nova/db/main/models.py | 2 | ||||
-rw-r--r-- | nova/tests/unit/db/main/test_migrations.py | 9 |
3 files changed, 44 insertions, 2 deletions
diff --git a/nova/db/main/migrations/versions/960aac0e09ea_de_duplicate_indexes_in_instances__.py b/nova/db/main/migrations/versions/960aac0e09ea_de_duplicate_indexes_in_instances__.py new file mode 100644 index 0000000000..f4666a2b00 --- /dev/null +++ b/nova/db/main/migrations/versions/960aac0e09ea_de_duplicate_indexes_in_instances__.py @@ -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. + +"""de-duplicate_indexes_in_instances__console_auth_tokens + +Revision ID: 960aac0e09ea +Revises: ccb0fa1a2252 +Create Date: 2022-09-15 17:00:23.175991 +""" + +from alembic import op + + +# revision identifiers, used by Alembic. +revision = '960aac0e09ea' +down_revision = 'ccb0fa1a2252' +branch_labels = None +depends_on = None + + +def upgrade(): + with op.batch_alter_table('console_auth_tokens', schema=None) as batch_op: + batch_op.drop_index('console_auth_tokens_token_hash_idx') + + with op.batch_alter_table('instances', schema=None) as batch_op: + batch_op.drop_index('uuid') diff --git a/nova/db/main/models.py b/nova/db/main/models.py index 7551584c1c..f8363a89c0 100644 --- a/nova/db/main/models.py +++ b/nova/db/main/models.py @@ -266,7 +266,6 @@ class Instance(BASE, NovaBase, models.SoftDeleteMixin): """Represents a guest VM.""" __tablename__ = 'instances' __table_args__ = ( - sa.Index('uuid', 'uuid', unique=True), sa.Index('instances_project_id_idx', 'project_id'), sa.Index('instances_project_id_deleted_idx', 'project_id', 'deleted'), @@ -1046,7 +1045,6 @@ class ConsoleAuthToken(BASE, NovaBase): __table_args__ = ( sa.Index('console_auth_tokens_instance_uuid_idx', 'instance_uuid'), sa.Index('console_auth_tokens_host_expires_idx', 'host', 'expires'), - sa.Index('console_auth_tokens_token_hash_idx', 'token_hash'), sa.Index( 'console_auth_tokens_token_hash_instance_uuid_idx', 'token_hash', 'instance_uuid', diff --git a/nova/tests/unit/db/main/test_migrations.py b/nova/tests/unit/db/main/test_migrations.py index d2c4ef9762..e52deb262a 100644 --- a/nova/tests/unit/db/main/test_migrations.py +++ b/nova/tests/unit/db/main/test_migrations.py @@ -314,6 +314,15 @@ class NovaMigrationsWalk( self.assertIsInstance( table.c.encryption_options.type, sa.types.String) + def _check_960aac0e09ea(self, connection): + self.assertIndexNotExists( + connection, 'console_auth_tokens', + 'console_auth_tokens_token_hash_idx', + ) + self.assertIndexNotExists( + connection, 'instances', 'uuid', + ) + def test_single_base_revision(self): """Ensure we only have a single base revision. |