Skip to content
Snippets Groups Projects
Commit df0cd9c9 authored by Aleksandr Kurbatov's avatar Aleksandr Kurbatov
Browse files

IPAM: create_device: LO, SI and LT_IAS; create_trunk: trunk networks.

parent 0119f1b7
No related branches found
No related tags found
1 merge request!20IPAM: create_device: LO, SI and LT_IAS; create_trunk: trunk networks.
......@@ -63,6 +63,8 @@ class IPAMParams(BaseSettings):
LO: ServiceNetworkParams
TRUNK: ServiceNetworkParams
GEANT_IP: ServiceNetworkParams
SI: ServiceNetworkParams
LT_IAS: ServiceNetworkParams
class ProvisioningProxyParams(BaseSettings):
......
......@@ -95,9 +95,12 @@ def get_info_from_ipam(subscription: DeviceProvisioning) -> State:
subscription.device.device_lo_ipv6_address = lo0_addr.v6
subscription.device.device_lo_iso_address \
= 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'
subscription.device.device_si_ipv4_network \
= _ipam.allocate_service_ipv4_network(service_type='SI', comment=f"SI for {lo0_name}").v4
subscription.device.device_ias_lt_ipv4_network \
= _ipam.allocate_service_ipv4_network(service_type='LT_IAS', comment=f"LT for {lo0_name}").v4
subscription.device.device_ias_lt_ipv6_network \
= _ipam.allocate_service_ipv6_network(service_type='LT_IAS', comment=f"LT for {lo0_name}").v6
return {'subscription': subscription}
......
......@@ -17,7 +17,7 @@ from gso.products.product_blocks.iptrunk import IptrunkType
from gso.products.product_types.device import Device
from gso.products.product_types.iptrunk import IptrunkInactive, \
IptrunkProvisioning
from gso.services import provisioning_proxy
from gso.services import provisioning_proxy, _ipam
from gso.services.provisioning_proxy import confirm_pp_results, \
await_pp_results
......@@ -91,12 +91,12 @@ def create_subscription(product: UUIDstr) -> State:
@step('Get information from IPAM')
def get_info_from_ipam(subscription: IptrunkInactive) -> State:
def get_info_from_ipam(subscription: IptrunkProvisioning) -> State:
# TODO: get info about how these should be generated
subscription.iptrunk.iptrunk_ipv4_network \
= ipaddress.ip_network('192.168.255.0/31')
= _ipam.allocate_service_ipv4_network(service_type="TRUNK", comment=subscription.iptrunk.iptrunk_description).v4
subscription.iptrunk.iptrunk_ipv6_network \
= ipaddress.ip_network('fc00:798:255::150/126')
= _ipam.allocate_service_ipv6_network(service_type="TRUNK", comment=subscription.iptrunk.iptrunk_description).v6
return {'subscription': subscription}
......@@ -235,8 +235,8 @@ def create_iptrunk():
init
>> create_subscription
>> store_process_subscription(Target.CREATE)
>> get_info_from_ipam
>> initialize_subscription
>> get_info_from_ipam
>> provision_ip_trunk_iface_dry
>> await_pp_results
>> confirm_pp_results
......
......@@ -58,6 +58,32 @@ def configuration_data():
"mask": 126
},
"domain_name": ".geantip"
},
"SI": {
"V4": {
"containers": ["10.255.253.128/25"],
"networks": [],
"mask": 31
},
"V6": {
"containers": [],
"networks": [],
"mask": 126
},
"domain_name": ".geantip"
},
"LT_IAS": {
"V4": {
"containers": ["10.255.255.0/24"],
"networks": [],
"mask": 31
},
"V6": {
"containers": ["dead:beef:cc::/48"],
"networks": [],
"mask": 126
},
"domain_name": ".geantip"
}
},
"PROVISIONING_PROXY": {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment