Skip to content
Snippets Groups Projects

Feature/update lan interconnect

Merged Karel van Klink requested to merge feature/update-lan-interconnect into develop
15 files
+ 153
36
Compare changes
  • Side-by-side
  • Inline
Files
15
+ 33
2
@@ -10,7 +10,14 @@ from infoblox_client.exceptions import (
)
from gso.settings import IPAMParams, load_oss_params
from gso.utils.types.ip_address import IPv4AddressType, IPv4Netmask, IPv4NetworkType, IPv6AddressType, IPv6Netmask
from gso.utils.types.ip_address import (
IPv4AddressType,
IPv4Netmask,
IPv4NetworkType,
IPv6AddressType,
IPv6Netmask,
IPv6NetworkType,
)
logger = getLogger(__name__)
NULL_MAC = "00:00:00:00:00:00"
@@ -76,7 +83,11 @@ def _allocate_network( # noqa: PLR0917
def create_v4_network_by_ip(
dns_view: str, network_view: str, network: IPv4NetworkType, comment: str | None = ""
) -> None:
"""Register an IPv4 network at the given location. Raises an :class:`AllocationError` on failure."""
"""Register an IPv4 network at the given location.
Raises:
AllocationError on failure.
"""
conn, _ = _setup_connection()
created_net = objects.NetworkV4.create(
conn, network=network, view=dns_view, network_view=network_view, comment=comment
@@ -88,6 +99,25 @@ def create_v4_network_by_ip(
logger.debug(msg)
def create_v6_network_by_ip(
dns_view: str, network_view: str, network: IPv6NetworkType, comment: str | None = ""
) -> None:
"""Register an IPv6 network at the given location.
Raises:
AllocationError on failure.
"""
conn, _ = _setup_connection()
created_net = objects.NetworkV6.create(
conn, network=network, view=dns_view, network_view=network_view, comment=comment
)
if created_net.response != "Infoblox Object created":
msg = f"Failed to allocate network at {network}. Response from Netbox: {created_net.response}"
raise AllocationError(msg)
msg = f"Successfully registered new network at {network}"
logger.debug(msg)
def hostname_available(hostname: str) -> bool:
"""Check whether a hostname is still available **in Infoblox**.
@@ -246,6 +276,7 @@ def create_host_by_ip(
hostname: str,
service_type: str,
comment: str,
*,
ipv4_address: IPv4AddressType | None = None,
ipv6_address: IPv6AddressType | None = None,
) -> None:
Loading