Skip to content
Snippets Groups Projects
Verified Commit 38b73455 authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

add Infoblox service

parent ba464de9
No related branches found
No related tags found
1 merge request!65Feature/add infoblox service
import ipaddress
from infoblox_client import connector, objects
from gso.settings import load_oss_params
def _setup_connection() -> connector.Connector:
oss = load_oss_params()
options = {
"host": oss.IPAM.INFOBLOX.host,
"username": oss.IPAM.INFOBLOX.username,
"password": oss.IPAM.INFOBLOX.password,
"wapi_version": oss.IPAM.INFOBLOX.wapi_version[1:], # remove the 'v' in front of the version number
"ssl_verify": True if oss.IPAM.INFOBLOX.scheme == "https" else False,
}
return connector.Connector(options)
def allocate_network(ip_network: ipaddress.IPv4Network | ipaddress.IPv6Network) -> objects.Network:
conn = _setup_connection()
return objects.Network.create(conn, str(ip_network))
def delete_network(ip_network: ipaddress.IPv4Network | ipaddress.IPv6Network) -> None:
conn = _setup_connection()
network = objects.Network.search(conn, cidr=str(ip_network))
network.delete()
def allocate_host(hostname: str, net_cidr: ipaddress.IPv4Network | ipaddress.IPv6Network) -> objects.HostRecord:
conn = _setup_connection()
address = objects.IPAllocation.next_available_ip_from_cidr("default", net_cidr)
ip_object = objects.IP.create(address, "00:00:00:00:00:00", configure_for_dhcp=False)
return objects.HostRecord.create(conn, name=hostname, ip=ip_object)
def delete_host_by_ip(ip_addr: ipaddress.IPv4Address | ipaddress.IPv6Address) -> None:
conn = _setup_connection()
host = objects.HostRecord.search(conn, ipv4addr=ip_addr)
host.delete()
def delete_host_by_fqdn(fqdn: str) -> None:
conn = _setup_connection()
host = objects.HostRecord.search(conn, name=fqdn)
host.delete()
......@@ -10,8 +10,8 @@ setup(
packages=find_packages(),
install_requires=[
"orchestrator-core==1.2.2",
"pydantic",
"requests",
"requests~=2.31.0",
"infoblox-client~=0.6.0",
"pycountry",
],
)
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