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 0000000000000000000000000000000000000000..1923fc3eeb54371a4e3c339216ac27ef9364a737 --- /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') + """)