import ipaddress from pydantic import BaseSettings from gso import settings class ServiceNetworks(BaseSettings): v4: ipaddress.IPv4Network v6: ipaddress.IPv6Network class HostAddresses(BaseSettings): v4: ipaddress.IPv4Address v6: ipaddress.IPv6Address def new_service_networks( service_params: settings.ServiceNetworkParams) -> ServiceNetworks: oss = settings.load_oss_params() assert oss.IPAM.INFOBLOX # TODO: load from ipam # cf. https://gitlab.geant.org/goat/gap-jenkins/-/blob/development/service-editor/gap_service_editor/ipam.py#L35-66 # noqa: E501 return ServiceNetworks( v4=ipaddress.IPv4Network('10.0.0.0/24'), v6=ipaddress.IPv6Network('dead:beef::/120')) def new_device_lo_address() -> HostAddresses: oss = settings.load_oss_params() assert oss.IPAM.INFOBLOX # TODO: load from ipam return HostAddresses( v4=ipaddress.IPv4Address('10.10.10.10'), v6=ipaddress.IPv6Address('fc00:798:aa:1::10'))