diff --git a/geant_service_orchestrator/migrations/__pycache__/env.cpython-39.pyc b/geant_service_orchestrator/migrations/__pycache__/env.cpython-39.pyc index a3f1f38bec2618de40ae47f038c6ae77f2e29148..5a87fcf4262da58b73bdab13e78aa986d57e6ca9 100644 Binary files a/geant_service_orchestrator/migrations/__pycache__/env.cpython-39.pyc and b/geant_service_orchestrator/migrations/__pycache__/env.cpython-39.pyc differ diff --git a/geant_service_orchestrator/migrations/versions/schema/2023-03-15_6005995d6eec_update_products.py b/geant_service_orchestrator/migrations/versions/schema/2023-03-15_6005995d6eec_update_products.py new file mode 100644 index 0000000000000000000000000000000000000000..2155ed87f4124fdd4207306c0eabfc2099a2655a --- /dev/null +++ b/geant_service_orchestrator/migrations/versions/schema/2023-03-15_6005995d6eec_update_products.py @@ -0,0 +1,239 @@ +"""Update products. + +Revision ID: 6005995d6eec +Revises: 8329fa45157b +Create Date: 2023-03-15 08:38:09.080265 + +""" +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision = '6005995d6eec' +down_revision = '8329fa45157b' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + conn = op.get_bind() + conn.execute(""" +DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Trunk')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('Trunk Block')) + """) + conn.execute(""" +DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Trunk Config')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('Trunk Config Block')) + """) + conn.execute(""" +DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Trunk Config Common')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('Trunk Config Common Block')) + """) + conn.execute(""" +DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Trunk Config Side')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('Trunk Config Side Block')) + """) + conn.execute(""" +DELETE FROM subscription_instances WHERE subscription_instances.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('Trunk Config Common Block', 'Trunk Block', 'Trunk Config Block', 'Trunk Config Side Block')) + """) + conn.execute(""" +DELETE FROM product_blocks WHERE product_blocks.name IN ('Trunk Config Common Block', 'Trunk Block', 'Trunk Config Block', 'Trunk Config Side Block') + """) + conn.execute(""" +INSERT INTO product_blocks (name, description, tag, status) VALUES ('TrunkBlock', 'trunk block', 'TRUNK_B', 'active') RETURNING product_blocks.product_block_id + """) + conn.execute(""" +INSERT INTO product_blocks (name, description, tag, status) VALUES ('TrunkConfigBlock', 'trunk config block', 'TRUNK_CB', 'active') RETURNING product_blocks.product_block_id + """) + conn.execute(""" +INSERT INTO product_blocks (name, description, tag, status) VALUES ('TrunkConfigCommonBlock', 'trunk config common block', 'TRUNK_CCB', 'active') RETURNING product_blocks.product_block_id + """) + conn.execute(""" +INSERT INTO product_blocks (name, description, tag, status) VALUES ('TrunkConfigSideBlock', 'trunk config side block', 'TRUNK_CSB', 'active') RETURNING product_blocks.product_block_id + """) + conn.execute(""" +INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('Trunk')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkBlock'))) + """) + conn.execute(""" +INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('Trunk Config')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigBlock'))) + """) + conn.execute(""" +INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('Trunk Config Common')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigCommonBlock'))) + """) + conn.execute(""" +INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('Trunk Config Side')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigSideBlock'))) + """) + conn.execute(""" +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 ('TrunkConfigBlock')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkBlock'))) + """) + conn.execute(""" +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 ('TrunkConfigSideBlock')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigBlock'))), ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigCommonBlock')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigBlock'))) + """) + 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 ('TrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_s_sid'))) + """) + 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 ('TrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_name'))) + """) + 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 ('TrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_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 ('TrunkConfigBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_config_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 ('TrunkConfigCommonBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('isis_metric'))) + """) + 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 ('TrunkConfigCommonBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('speed'))) + """) + 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 ('TrunkConfigCommonBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('minimum_links'))) + """) + 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 ('TrunkConfigCommonBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_config_common_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 ('TrunkConfigCommonBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('is_leased_line'))) + """) + 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 ('TrunkConfigSideBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('members'))) + """) + 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 ('TrunkConfigSideBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('ipv6_address'))) + """) + 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 ('TrunkConfigSideBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('ae_name'))) + """) + 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 ('TrunkConfigSideBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('ipv4_address'))) + """) + 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 ('TrunkConfigSideBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_a_sid'))) + """) + 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 ('TrunkConfigSideBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_config_side_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 ('TrunkConfigSideBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('fqdn'))) + """) + + +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 ('TrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_s_sid')) + """) + 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 ('TrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_s_sid')) + """) + 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 ('TrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_name')) + """) + 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 ('TrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_name')) + """) + 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 ('TrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_id')) + """) + 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 ('TrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_id')) + """) + 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 ('TrunkConfigBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_config_id')) + """) + 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 ('TrunkConfigBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_config_id')) + """) + 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 ('TrunkConfigCommonBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('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 ('TrunkConfigCommonBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('isis_metric')) + """) + 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 ('TrunkConfigCommonBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('speed')) + """) + 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 ('TrunkConfigCommonBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('speed')) + """) + 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 ('TrunkConfigCommonBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('minimum_links')) + """) + 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 ('TrunkConfigCommonBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('minimum_links')) + """) + 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 ('TrunkConfigCommonBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_config_common_id')) + """) + 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 ('TrunkConfigCommonBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_config_common_id')) + """) + 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 ('TrunkConfigCommonBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('is_leased_line')) + """) + 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 ('TrunkConfigCommonBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('is_leased_line')) + """) + 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 ('TrunkConfigSideBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('members')) + """) + 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 ('TrunkConfigSideBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('members')) + """) + 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 ('TrunkConfigSideBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('ipv6_address')) + """) + 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 ('TrunkConfigSideBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('ipv6_address')) + """) + 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 ('TrunkConfigSideBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('ae_name')) + """) + 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 ('TrunkConfigSideBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('ae_name')) + """) + 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 ('TrunkConfigSideBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('ipv4_address')) + """) + 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 ('TrunkConfigSideBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('ipv4_address')) + """) + 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 ('TrunkConfigSideBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_a_sid')) + """) + 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 ('TrunkConfigSideBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_a_sid')) + """) + 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 ('TrunkConfigSideBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_config_side_id')) + """) + 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 ('TrunkConfigSideBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('trunk_config_side_id')) + """) + 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 ('TrunkConfigSideBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('fqdn')) + """) + 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 ('TrunkConfigSideBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('fqdn')) + """) + conn.execute(""" +DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Trunk')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkBlock')) + """) + conn.execute(""" +DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Trunk Config')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigBlock')) + """) + conn.execute(""" +DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Trunk Config Common')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigCommonBlock')) + """) + conn.execute(""" +DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Trunk Config Side')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigSideBlock')) + """) + conn.execute(""" +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 ('TrunkConfigBlock')) AND product_block_relations.depends_on_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkBlock')) + """) + conn.execute(""" +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 ('TrunkConfigSideBlock', 'TrunkConfigCommonBlock')) AND product_block_relations.depends_on_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigBlock')) + """) + conn.execute(""" +DELETE FROM subscription_instances WHERE subscription_instances.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigBlock', 'TrunkConfigCommonBlock', 'TrunkConfigSideBlock', 'TrunkBlock')) + """) + conn.execute(""" +DELETE FROM product_blocks WHERE product_blocks.name IN ('TrunkConfigBlock', 'TrunkConfigCommonBlock', 'TrunkConfigSideBlock', 'TrunkBlock') + """) diff --git a/geant_service_orchestrator/products/product_blocks/trunk.py b/geant_service_orchestrator/products/product_blocks/trunk.py index 76237c83a0d8e70003e6a301ce566de5c0dfb4f5..f9ced4b4f7f6477f2e51feb1bf5c5718d6ab3d60 100644 --- a/geant_service_orchestrator/products/product_blocks/trunk.py +++ b/geant_service_orchestrator/products/product_blocks/trunk.py @@ -12,7 +12,7 @@ class TrunkBlockInactive(ProductBlockModel, lifecycle=[SubscriptionLifecycle.INI class TrunkBlockProvisioning(TrunkBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]): trunk_id: Optional[int] = None - geant_s_sid: Optional[str] = None + geant_s_sid: str trunk_name: str diff --git a/geant_service_orchestrator/products/product_blocks/trunk_config_common.py b/geant_service_orchestrator/products/product_blocks/trunk_config_common.py index c2c18b985bf66078b27b91350e4e586b0a193ed7..b6e3a520a98024c6578ca40ca8362e9c7c9ecaf1 100644 --- a/geant_service_orchestrator/products/product_blocks/trunk_config_common.py +++ b/geant_service_orchestrator/products/product_blocks/trunk_config_common.py @@ -19,7 +19,7 @@ class TrunkConfigCommonBlockProvisioning(TrunkConfigCommonBlockInactive, lifecyc trunk_config: TrunkConfigBlockProvisioning trunk_config_common_id: Optional[int] = None speed: str - is_leased_line: Optional[bool] = None + is_leased_line: bool isis_metric: int minimum_links: int diff --git a/geant_service_orchestrator/products/product_blocks/trunk_config_side.py b/geant_service_orchestrator/products/product_blocks/trunk_config_side.py index 8bf1b039a315a6ef254ef33367e6965526c8dbb3..4aa45dd885d9bb6660090c0baf393629c8790292 100644 --- a/geant_service_orchestrator/products/product_blocks/trunk_config_side.py +++ b/geant_service_orchestrator/products/product_blocks/trunk_config_side.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import List, Optional from orchestrator.domain.base import ProductBlockModel from orchestrator.types import SubscriptionLifecycle @@ -14,18 +14,18 @@ class TrunkConfigSideBlockInactive(ProductBlockModel, lifecycle=[SubscriptionLif geant_a_sid: Optional[str] = None ipv4_address: Optional[str] = None ipv6_address: Optional[str] = None - members: Optional[list] = None + members: Optional[List[str]] = None class TrunkConfigSideBlockProvisioning(TrunkConfigSideBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]): trunk_config: TrunkConfigBlockProvisioning trunk_config_side_id: Optional[int] = None fqdn: str - ae_name: Optional[str] = None - geant_a_sid: Optional[str] = None - ipv4_address: Optional[str] = None - ipv6_address: Optional[str] = None - members: Optional[list] = None + ae_name: str + geant_a_sid: str + ipv4_address: Optional[str] = "127.0.0.1" + ipv6_address: Optional[str] = "::1" + members: List[str] class TrunkConfigSideBlock(TrunkConfigSideBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]): @@ -36,4 +36,4 @@ class TrunkConfigSideBlock(TrunkConfigSideBlockProvisioning, lifecycle=[Subscrip geant_a_sid: str ipv4_address: str ipv6_address: str - members: list + members: List[str] diff --git a/geant_service_orchestrator/workflows/trunk/create_trunk.py b/geant_service_orchestrator/workflows/trunk/create_trunk.py index f994aff805ec02c799ff96bdade5a27cda4b5ada..78a2604a47b2b710d684459c71dd040108f35d86 100644 --- a/geant_service_orchestrator/workflows/trunk/create_trunk.py +++ b/geant_service_orchestrator/workflows/trunk/create_trunk.py @@ -1,4 +1,3 @@ -from typing import Optional from uuid import uuid4 from orchestrator.forms import FormPage @@ -17,7 +16,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: title = product_name trunk_name: str - geant_s_sid: Optional[str] + geant_s_sid: str user_input = yield CreateTrunkForm diff --git a/geant_service_orchestrator/workflows/trunk_config/create_trunk_config.py b/geant_service_orchestrator/workflows/trunk_config/create_trunk_config.py index 6338f7704d0915ce54d3ca54c67e80f2c3beabbc..a038329b04cf4864dbda325e8200d562dacac4b1 100644 --- a/geant_service_orchestrator/workflows/trunk_config/create_trunk_config.py +++ b/geant_service_orchestrator/workflows/trunk_config/create_trunk_config.py @@ -1,4 +1,4 @@ -from typing import List, Optional +from typing import List from uuid import uuid4 from random import randint @@ -49,7 +49,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: def _provision_in_gap() -> int: - return random.randint(0, 2147483648) + return randint(0, 2147483648) @step("Create subscription") diff --git a/geant_service_orchestrator/workflows/trunk_config_common/create_trunk_config_common.py b/geant_service_orchestrator/workflows/trunk_config_common/create_trunk_config_common.py index 7569b462e1fb30a86486bfe5a46705851191af1c..ba3b60b53b5c31aa24108471c2b43f11eaf6aadd 100644 --- a/geant_service_orchestrator/workflows/trunk_config_common/create_trunk_config_common.py +++ b/geant_service_orchestrator/workflows/trunk_config_common/create_trunk_config_common.py @@ -1,5 +1,6 @@ -from typing import List, Optional +from typing import List from uuid import uuid4 +from random import randint from orchestrator.db.models import ProductTable, SubscriptionTable from orchestrator.forms import FormPage @@ -40,7 +41,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: title = product_name speed: str - is_leased_line: Optional[bool] + is_leased_line: bool isis_metric: int minimum_links: int trunk_config_ids: trunk_config_selector() # type:ignore @@ -52,7 +53,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: def _provision_in_gap() -> int: - return random.randint(0, 2147483648) + return randint(0, 2147483648) @step("Create subscription") diff --git a/geant_service_orchestrator/workflows/trunk_config_side/create_trunk_config_side.py b/geant_service_orchestrator/workflows/trunk_config_side/create_trunk_config_side.py index c7a89ef64685b10f909c3da5772252dbd66d2554..b0f57fa00e8e6ab8413c01044556f2aabe4c5e73 100644 --- a/geant_service_orchestrator/workflows/trunk_config_side/create_trunk_config_side.py +++ b/geant_service_orchestrator/workflows/trunk_config_side/create_trunk_config_side.py @@ -40,11 +40,11 @@ def initial_input_form_generator(product_name: str) -> FormGenerator: title = product_name fqdn: str - ae_name: Optional[str] - geant_a_sid: Optional[str] + ae_name: str + geant_a_sid: str ipv4_address: Optional[str] ipv6_address: Optional[str] - members: Optional[list] + members: List[str] trunk_config_ids: trunk_config_selector() # type:ignore user_input = yield CreateTrunkConfigSideForm