Skip to content

Commit

Permalink
Refactor node_network_configuration_policy resource (#1202) (#1238)
Browse files Browse the repository at this point in the history
- Refactor _ports_backup to include both IP families.
 - Add teardown_absent_ifaces parameter (default: True).
 - Add IP family global variables.

Signed-off-by: Anat Wax <[email protected]>
Co-authored-by: Meni Yakove <[email protected]>
  • Loading branch information
Anatw and myakove authored Jun 4, 2023
1 parent d4ed40a commit dd5696b
Showing 1 changed file with 21 additions and 11 deletions.
32 changes: 21 additions & 11 deletions ocp_resources/node_network_configuration_policy.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
from ocp_resources.resource import Resource, ResourceEditor
from ocp_resources.utils import TimeoutExpiredError, TimeoutSampler

IPV4_STR = "ipv4"
IPV6_STR = "ipv6"


class NNCPConfigurationFailed(Exception):
pass
Expand Down Expand Up @@ -214,30 +217,30 @@ def add_interface(
}
if set_ipv4:
if isinstance(set_ipv4, str):
iface["ipv4"] = set_ipv4
iface[IPV4_STR] = set_ipv4

else:
iface["ipv4"] = {
iface[IPV4_STR] = {
"enabled": ipv4_enable,
"dhcp": ipv4_dhcp,
"auto-dns": ipv4_auto_dns,
}
if ipv4_addresses:
iface["ipv4"]["address"] = ipv4_addresses
iface[IPV4_STR]["address"] = ipv4_addresses

if set_ipv6:
if isinstance(set_ipv6, str):
iface["ipv6"] = set_ipv6
iface[IPV6_STR] = set_ipv6

else:
iface["ipv6"] = {
iface[IPV6_STR] = {
"enabled": ipv6_enable,
"dhcp": ipv6_dhcp,
"auto-dns": ipv6_auto_dns,
"autoconf": ipv6_autoconf,
}
if ipv6_addresses:
iface["ipv6"]["address"] = ipv6_addresses
iface[IPV6_STR]["address"] = ipv6_addresses

self.set_interface(interface=iface)
return self.res
Expand All @@ -254,13 +257,20 @@ def _ports_backup(self, ip_family):
for port in self.ports:
_port = self._get_port_from_nns(port_name=port)
if _port:
self.ipv4_ports_backup_dict[port] = _port[ip_family]
if ip_family == IPV4_STR:
self.ipv4_ports_backup_dict[port] = _port[ip_family]
elif ip_family == IPV6_STR:
self.ipv6_ports_backup_dict[port] = _port[ip_family]
else:
raise ValueError(
f"'ip_family' must be either '{IPV4_STR}' or '{IPV6_STR}'"
)

def ipv4_ports_backup(self):
self._ports_backup(ip_family="ipv4")
self._ports_backup(ip_family=IPV4_STR)

def ipv6_ports_backup(self):
self._ports_backup(ip_family="ipv6")
self._ports_backup(ip_family=IPV6_STR)

def add_ports(self):
for port in self.ports:
Expand All @@ -275,10 +285,10 @@ def add_ports(self):
"state": _port["state"],
}
if ipv4_backup:
iface["ipv4"] = ipv4_backup
iface[IPV4_STR] = ipv4_backup

if ipv6_backup:
iface["ipv6"] = ipv6_backup
iface[IPV6_STR] = ipv6_backup

self.set_interface(interface=iface)

Expand Down

0 comments on commit dd5696b

Please sign in to comment.