From d8e95078cd51e5dae982c9f8651efb9813cba4f6 Mon Sep 17 00:00:00 2001 From: Michael Still Date: Sat, 22 Feb 2025 08:25:37 +1100 Subject: [PATCH] libvirt: direct SPICE console database changes This patch makes just the schema changes required for the implementation of SPICE direct consoles, as requested during review. See change I1e701cbabc0e2c435685e31465159eec09e3b1a0 for the related feature implementation. APIImpact Change-Id: I838ad1a8a74f47544226d3da0e7f1a2f5585b7cb --- ...c14_add_tls_port_to_console_auth_tokens.py | 33 +++++++++++++++++++ nova/db/main/models.py | 1 + nova/tests/unit/db/main/test_migrations.py | 5 +++ 3 files changed, 39 insertions(+) create mode 100644 nova/db/main/migrations/versions/2903cd72dc14_add_tls_port_to_console_auth_tokens.py diff --git a/nova/db/main/migrations/versions/2903cd72dc14_add_tls_port_to_console_auth_tokens.py b/nova/db/main/migrations/versions/2903cd72dc14_add_tls_port_to_console_auth_tokens.py new file mode 100644 index 0000000000..4bdc613cdd --- /dev/null +++ b/nova/db/main/migrations/versions/2903cd72dc14_add_tls_port_to_console_auth_tokens.py @@ -0,0 +1,33 @@ +# 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. + +"""add_tls_port_to_console_auth_tokens + +Revision ID: 2903cd72dc14 +Revises: d60bddf7a903 +Create Date: 2024-07-18 22:55:25.736157 +""" + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '2903cd72dc14' +down_revision = 'd60bddf7a903' +branch_labels = None +depends_on = None + + +def upgrade(): + with op.batch_alter_table('console_auth_tokens', schema=None) as batch_op: + batch_op.add_column(sa.Column('tls_port', sa.Integer())) diff --git a/nova/db/main/models.py b/nova/db/main/models.py index 903ef267c9..ee82b2ea11 100644 --- a/nova/db/main/models.py +++ b/nova/db/main/models.py @@ -1218,6 +1218,7 @@ class ConsoleAuthToken(BASE, NovaBase): console_type = sa.Column(sa.String(255), nullable=False) host = sa.Column(sa.String(255), nullable=False) port = sa.Column(sa.Integer, nullable=False) + tls_port = sa.Column(sa.Integer, nullable=True) internal_access_path = sa.Column(sa.String(255)) instance_uuid = sa.Column(sa.String(36), nullable=False) expires = sa.Column(sa.Integer, nullable=False) diff --git a/nova/tests/unit/db/main/test_migrations.py b/nova/tests/unit/db/main/test_migrations.py index 8619124d29..b7ea88a56e 100644 --- a/nova/tests/unit/db/main/test_migrations.py +++ b/nova/tests/unit/db/main/test_migrations.py @@ -374,6 +374,11 @@ class NovaMigrationsWalk( def _check_d60bddf7a903(self, connection): pass + def _check_2903cd72dc14(self, connection): + self.assertColumnExists(connection, + 'console_auth_tokens', + 'tls_port') + def test_single_base_revision(self): """Ensure we only have a single base revision.