diff --git a/gso/workflows/device/create_device.py b/gso/workflows/device/create_device.py index f3a12ab7d8de4350acaa542098a3b7b884c31e82..18956707d37a8b54cbadcb9ec962f6fe6b85019f 100644 --- a/gso/workflows/device/create_device.py +++ b/gso/workflows/device/create_device.py @@ -1,4 +1,5 @@ import ipaddress +import re from uuid import uuid4 from orchestrator.db.models import ProductTable, SubscriptionTable @@ -72,6 +73,12 @@ def create_subscription(product: UUIDstr) -> State: 'subscription_id': subscription.subscription_id, } +def iso_from_ipv4(ipv4_address): + padded_octets = [f'{x:>03}' for x in ipv4_address.split('.')] + joined_octets = ''.join(padded_octets) + re_split = '.'.join(re.findall('....', joined_octets)) + result = '.'.join(['49.51e5.0001', re_split, '00']) + return (result) @step('Get information from IPAM') def get_info_from_ipam(subscription: DeviceInactive) -> State: @@ -83,12 +90,14 @@ def get_info_from_ipam(subscription: DeviceInactive) -> State: ipaddress.ip_address('10.10.10.10') subscription.device.device_lo_ipv6_address = \ ipaddress.ip_address('fc00:798:10::10') + #subscription.device.device_lo_iso_address \ + # = "49.51e5.0001.0620.4009.6047.00" subscription.device.device_lo_iso_address \ - = '49.51e5.0001.0620.4009.6047.00' - subscription.device.device_si_ipv4_network = '192.168.0.0/31' - subscription.device.device_ias_lt_ipv4_network = '192.168.1.0/31' - subscription.device.device_ias_lt_ipv6_network = 'fc00:798:1::150/126' - return {'subscription': subscription} + = iso_from_ipv4(str(subscription.device.device_lo_ipv4_address)) + subscription.device.device_si_ipv4_network = "192.168.0.0/31" + subscription.device.device_ias_lt_ipv4_network = "192.168.1.0/31" + subscription.device.device_ias_lt_ipv6_network = "fc00:798:1::150/126" + return {"subscription": subscription} @step('Initialize subscription')