diff --git a/gso/workflows/site/create_imported_site.py b/gso/workflows/site/create_imported_site.py index ef3977f4a7d0d5849a45f24c6abf58f477045921..e149ee22f0e21d46f598df0e1ab8d1b1f4382ba8 100644 --- a/gso/workflows/site/create_imported_site.py +++ b/gso/workflows/site/create_imported_site.py @@ -9,11 +9,10 @@ from orchestrator.workflow import StepList, done, init, step, workflow from orchestrator.workflows.steps import resync, set_status, store_process_subscription from gso.products import ProductName -from gso.products.product_blocks.site import SiteTier +from gso.products.product_blocks.site import LatitudeCoordinate, LongitudeCoordinate, SiteTier from gso.products.product_types.site import ImportedSiteInactive from gso.services import subscriptions from gso.services.partners import get_partner_by_name -from gso.workflows.site.create_site import initialize_subscription @step("Create subscription") @@ -52,6 +51,37 @@ def generate_initial_input_form() -> FormGenerator: return user_input.dict() +@step("Initialize subscription") +def initialize_subscription( + subscription: ImportedSiteInactive, + site_name: str, + site_city: str, + site_country: str, + site_country_code: str, + site_latitude: LatitudeCoordinate, + site_longitude: LongitudeCoordinate, + site_bgp_community_id: int, + site_internal_id: int, + site_ts_address: str, + site_tier: SiteTier, +) -> State: + """Initialise the subscription object with all input.""" + subscription.site.site_name = site_name + subscription.site.site_city = site_city + subscription.site.site_country = site_country + subscription.site.site_country_code = site_country_code + subscription.site.site_latitude = site_latitude + subscription.site.site_longitude = site_longitude + subscription.site.site_bgp_community_id = site_bgp_community_id + subscription.site.site_internal_id = site_internal_id + subscription.site.site_tier = site_tier + subscription.site.site_ts_address = site_ts_address + + subscription.description = f"Site in {site_city}, {site_country}" + + return {"subscription": subscription} + + @workflow( "Import Site", target=Target.CREATE,