Skip to content
Snippets Groups Projects
ipam.py 1003 B
Newer Older
Erik Reid's avatar
Erik Reid committed
import ipaddress
from pydantic import BaseSettings
from gso import settings
Erik Reid's avatar
Erik Reid committed

Erik Reid's avatar
Erik Reid committed
class ServiceNetworks(BaseSettings):
Erik Reid's avatar
Erik Reid committed
    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
Erik Reid's avatar
Erik Reid committed
    # 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
Erik Reid's avatar
Erik Reid committed
    # TODO: load from ipam
    return HostAddresses(
Erik Reid's avatar
Erik Reid committed
        v4=ipaddress.IPv4Address('10.10.10.10'),
        v6=ipaddress.IPv6Address('fc00:798:aa:1::10'))