Skip to content
Snippets Groups Projects

Feature/vrf

Merged Neda Moeini requested to merge feature/vrf into develop
All threads resolved!
5 files
+ 40
102
Compare changes
  • Side-by-side
  • Inline
Files
5
"""Add VRF and ImportedVRF products..
"""Add VRF product..
Revision ID: 4b5bbefb296f
Revision ID: 6103f83731bb
Revises: 0e7e7d749617
Create Date: 2024-11-26 10:28:41.081655
Create Date: 2024-11-27 14:44:07.029634
"""
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision = '4b5bbefb296f'
revision = '6103f83731bb'
down_revision = '0e7e7d749617'
branch_labels = None
depends_on = None
@@ -18,25 +18,25 @@ depends_on = None
def upgrade() -> None:
conn = op.get_bind()
conn.execute(sa.text("""
INSERT INTO products (name, description, product_type, tag, status) VALUES ('VRF', 'Virtual Routing and Forwarding product', 'VRF', 'VRF', 'active') RETURNING products.product_id
INSERT INTO products (name, description, product_type, tag, status) VALUES ('VRF', 'Virtual Routing Forwarding', 'VRF', 'VRF', 'active') RETURNING products.product_id
"""))
conn.execute(sa.text("""
INSERT INTO products (name, description, product_type, tag, status) VALUES ('Imported VRF', 'Imported Virtual Routing and Forwarding products', 'ImportedVRF', 'IMP_VRF', 'active') RETURNING products.product_id
INSERT INTO product_blocks (name, description, tag, status) VALUES ('VRFBlock', 'VRF block', 'VRF_BLOCK', 'active') RETURNING product_blocks.product_block_id
"""))
conn.execute(sa.text("""
INSERT INTO product_blocks (name, description, tag, status) VALUES ('VRFBlock', 'Virtual Routing and Forwarding product block', 'VRF_BLOCK', 'active') RETURNING product_blocks.product_block_id
INSERT INTO resource_types (resource_type, description) VALUES ('vrf_name', 'Unique name identifying this VRF.') RETURNING resource_types.resource_type_id
"""))
conn.execute(sa.text("""
INSERT INTO resource_types (resource_type, description) VALUES ('vrf_name', 'Unique name identifying this VRF') RETURNING resource_types.resource_type_id
INSERT INTO resource_types (resource_type, description) VALUES ('vrf_as_number', 'AS number of the VRF') RETURNING resource_types.resource_type_id
"""))
conn.execute(sa.text("""
INSERT INTO resource_types (resource_type, description) VALUES ('route_distinguisher', 'Route Distinguisher (RD) ensuring unique route identification within this VRF') RETURNING resource_types.resource_type_id
INSERT INTO resource_types (resource_type, description) VALUES ('route_distinguisher', 'Route Distinguisher (RD) ensuring unique route identification within this VRF.') RETURNING resource_types.resource_type_id
"""))
conn.execute(sa.text("""
INSERT INTO resource_types (resource_type, description) VALUES ('route_target', 'Route Target (RT) defining routing policies for importing/exporting routes') RETURNING resource_types.resource_type_id
INSERT INTO resource_types (resource_type, description) VALUES ('route_target', 'Route Target (RT) defining routing policies for importing/exporting routes.') RETURNING resource_types.resource_type_id
"""))
conn.execute(sa.text("""
INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('VRF')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('VRFBlock'))), ((SELECT products.product_id FROM products WHERE products.name IN ('Imported VRF')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('VRFBlock')))
INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('VRF')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('VRFBlock')))
"""))
conn.execute(sa.text("""
INSERT INTO product_block_relations (in_use_by_id, depends_on_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('VRFBlock')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')))
@@ -50,6 +50,9 @@ INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VA
conn.execute(sa.text("""
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 ('VRFBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('route_target')))
"""))
conn.execute(sa.text("""
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 ('VRFBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('vrf_as_number')))
"""))
def downgrade() -> None:
@@ -73,13 +76,19 @@ DELETE FROM product_block_resource_types WHERE product_block_resource_types.prod
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 ('VRFBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('route_target'))
"""))
conn.execute(sa.text("""
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 ('vrf_name', 'route_distinguisher', 'route_target'))
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 ('VRFBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('vrf_as_number'))
"""))
conn.execute(sa.text("""
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 ('VRFBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('vrf_as_number'))
"""))
conn.execute(sa.text("""
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 ('vrf_name', 'vrf_as_number', 'route_distinguisher', 'route_target'))
"""))
conn.execute(sa.text("""
DELETE FROM resource_types WHERE resource_types.resource_type IN ('vrf_name', 'route_distinguisher', 'route_target')
DELETE FROM resource_types WHERE resource_types.resource_type IN ('vrf_name', 'vrf_as_number', 'route_distinguisher', 'route_target')
"""))
conn.execute(sa.text("""
DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('VRF', 'Imported VRF')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('VRFBlock'))
DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('VRF')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('VRFBlock'))
"""))
conn.execute(sa.text("""
DELETE FROM product_block_relations WHERE product_block_relations.in_use_by_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('VRFBlock')) AND product_block_relations.depends_on_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))
@@ -91,17 +100,17 @@ DELETE FROM subscription_instances WHERE subscription_instances.product_block_id
DELETE FROM product_blocks WHERE product_blocks.name IN ('VRFBlock')
"""))
conn.execute(sa.text("""
DELETE FROM processes WHERE processes.pid IN (SELECT processes_subscriptions.pid FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('VRF', 'Imported VRF'))))
DELETE FROM processes WHERE processes.pid IN (SELECT processes_subscriptions.pid FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('VRF'))))
"""))
conn.execute(sa.text("""
DELETE FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('VRF', 'Imported VRF')))
DELETE FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('VRF')))
"""))
conn.execute(sa.text("""
DELETE FROM subscription_instances WHERE subscription_instances.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('VRF', 'Imported VRF')))
DELETE FROM subscription_instances WHERE subscription_instances.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('VRF')))
"""))
conn.execute(sa.text("""
DELETE FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('VRF', 'Imported VRF'))
DELETE FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('VRF'))
"""))
conn.execute(sa.text("""
DELETE FROM products WHERE products.name IN ('VRF', 'Imported VRF')
DELETE FROM products WHERE products.name IN ('VRF')
"""))
Loading