From bbbd0402aa929517007fc3c26b02ceab576964a3 Mon Sep 17 00:00:00 2001 From: Karel van Klink <karel.vanklink@geant.org> Date: Mon, 28 Aug 2023 15:20:20 +0200 Subject: [PATCH] extract PortNumber to shared package --- gso/products/product_blocks/router.py | 12 +----------- gso/products/shared.py | 11 +++++++++++ gso/workflows/router/create_router.py | 2 +- gso/workflows/tasks/import_router.py | 3 ++- 4 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 gso/products/shared.py diff --git a/gso/products/product_blocks/router.py b/gso/products/product_blocks/router.py index 200012a7..58026318 100644 --- a/gso/products/product_blocks/router.py +++ b/gso/products/product_blocks/router.py @@ -4,9 +4,9 @@ from typing import Optional from orchestrator.domain.base import ProductBlockModel from orchestrator.types import SubscriptionLifecycle, strEnum -from pydantic import ConstrainedInt from gso.products.product_blocks.site import SiteBlock, SiteBlockInactive, SiteBlockProvisioning +from gso.products.shared import PortNumber class RouterVendor(strEnum): @@ -24,16 +24,6 @@ class RouterRole(strEnum): AMT = "amt" -class PortNumber(ConstrainedInt): - """Constrained integer for valid port numbers. - - The range from 49152 to 65535 is marked as ephemeral, and can therefore not be selected for permanent allocation. - """ - - gt = 0 - le = 49151 - - class RouterBlockInactive( ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="RouterBlock" ): diff --git a/gso/products/shared.py b/gso/products/shared.py new file mode 100644 index 00000000..81e08061 --- /dev/null +++ b/gso/products/shared.py @@ -0,0 +1,11 @@ +from pydantic import ConstrainedInt + + +class PortNumber(ConstrainedInt): + """Constrained integer for valid port numbers. + + The range from 49152 to 65535 is marked as ephemeral, and can therefore not be selected for permanent allocation. + """ + + gt = 0 + le = 49151 diff --git a/gso/workflows/router/create_router.py b/gso/workflows/router/create_router.py index 1f7b96c4..c94826f2 100644 --- a/gso/workflows/router/create_router.py +++ b/gso/workflows/router/create_router.py @@ -9,12 +9,12 @@ from orchestrator.types import FormGenerator, State, SubscriptionLifecycle, UUID from orchestrator.workflow import StepList, done, init, step, workflow from orchestrator.workflows.steps import resync, set_status, store_process_subscription from orchestrator.workflows.utils import wrap_create_initial_input_form -from products.product_blocks.router import PortNumber from gso.products.product_blocks import router as router_pb from gso.products.product_types import router from gso.products.product_types.router import RouterInactive, RouterProvisioning from gso.products.product_types.site import Site +from gso.products.shared import PortNumber from gso.services import ipam, provisioning_proxy, subscriptions from gso.services.provisioning_proxy import pp_interaction from gso.workflows.utils import customer_selector, iso_from_ipv4 diff --git a/gso/workflows/tasks/import_router.py b/gso/workflows/tasks/import_router.py index 8f122b35..01b7081d 100644 --- a/gso/workflows/tasks/import_router.py +++ b/gso/workflows/tasks/import_router.py @@ -10,9 +10,10 @@ from orchestrator.workflow import StepList, done, init, step from orchestrator.workflows.steps import resync, set_status, store_process_subscription from gso.products.product_blocks import router as router_pb -from gso.products.product_blocks.router import PortNumber, RouterRole, RouterVendor +from gso.products.product_blocks.router import RouterRole, RouterVendor from gso.products.product_types import router from gso.products.product_types.router import RouterInactive +from gso.products.shared import PortNumber from gso.products.product_types.site import Site from gso.schemas.enums import ProductType from gso.services import subscriptions -- GitLab