From 6bc661911c9d52e67afd205ec4bad99d066d424e Mon Sep 17 00:00:00 2001 From: Simone Spinelli <simone.spinelli@geant.org> Date: Sun, 18 Jun 2023 08:13:01 +0000 Subject: [PATCH] Add migration for ISIS metric attribut --- ...6-18_c7def54cc165_add_iptrunk_isis_attr.py | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 gso/migrations/versions/2023-06-18_c7def54cc165_add_iptrunk_isis_attr.py diff --git a/gso/migrations/versions/2023-06-18_c7def54cc165_add_iptrunk_isis_attr.py b/gso/migrations/versions/2023-06-18_c7def54cc165_add_iptrunk_isis_attr.py new file mode 100644 index 00000000..1923fc3e --- /dev/null +++ b/gso/migrations/versions/2023-06-18_c7def54cc165_add_iptrunk_isis_attr.py @@ -0,0 +1,41 @@ +"""Add Iptrunk ISIS attr. + +Revision ID: c7def54cc165 +Revises: 647e066bc99e +Create Date: 2023-06-18 06:56:21.189733 + +""" +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision = 'c7def54cc165' +down_revision = '647e066bc99e' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + conn = op.get_bind() + conn.execute(""" +INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_isis_metric', 'ISIS metric for a Trunk') RETURNING resource_types.resource_type_id + """) + conn.execute(""" +INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric'))) + """) + + +def downgrade() -> None: + conn = op.get_bind() + conn.execute(""" +DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric')) + """) + conn.execute(""" +DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric')) + """) + conn.execute(""" +DELETE FROM subscription_instance_values WHERE subscription_instance_values.resource_type_id IN (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric')) + """) + conn.execute(""" +DELETE FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric') + """) -- GitLab