Skip to content

Commit

Permalink
SHARED **is** the gateway
Browse files Browse the repository at this point in the history
  • Loading branch information
jkt628 committed Feb 1, 2025
1 parent 88659e0 commit e69653e
Showing 1 changed file with 19 additions and 17 deletions.
36 changes: 19 additions & 17 deletions supervisor/dbus/network/setting/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,31 +52,33 @@
from ....host.configuration import Interface


def _get_address_data(ipv4setting) -> Variant:
address_data = []
for address in ipv4setting.address:
address_data.append(
{
"address": Variant("s", str(address.ip)),
"prefix": Variant("u", int(address.with_prefixlen.split("/")[-1])),
}
)

return Variant("aa{sv}", address_data)


def _get_ipv4_connection_settings(ipv4setting) -> dict:
ipv4 = {}
if not ipv4setting or ipv4setting.method == InterfaceMethod.AUTO:
ipv4[CONF_ATTR_IPV4_METHOD] = Variant("s", "auto")
elif ipv4setting.method == InterfaceMethod.DISABLED:
ipv4[CONF_ATTR_IPV4_METHOD] = Variant("s", "disabled")
elif ipv4setting.method in {InterfaceMethod.STATIC, InterfaceMethod.SHARED}:
ipv4[CONF_ATTR_IPV4_METHOD] = (
Variant("s", "manual")
if ipv4setting.method == InterfaceMethod.STATIC
else Variant("s", "shared")
)

address_data = []
for address in ipv4setting.address:
address_data.append(
{
"address": Variant("s", str(address.ip)),
"prefix": Variant("u", int(address.with_prefixlen.split("/")[-1])),
}
)

ipv4[CONF_ATTR_IPV4_ADDRESS_DATA] = Variant("aa{sv}", address_data)
elif ipv4setting.method == InterfaceMethod.STATIC:
ipv4[CONF_ATTR_IPV4_METHOD] = Variant("s", "manual")
ipv4[CONF_ATTR_IPV4_ADDRESS_DATA] = _get_address_data(ipv4setting)
if ipv4setting.gateway:
ipv4[CONF_ATTR_IPV4_GATEWAY] = Variant("s", str(ipv4setting.gateway))
elif ipv4setting.method == InterfaceMethod.SHARED:
ipv4[CONF_ATTR_IPV4_METHOD] = Variant("s", "shared")
ipv4[CONF_ATTR_IPV4_ADDRESS_DATA] = _get_address_data(ipv4setting)
else:
raise RuntimeError("Invalid IPv4 InterfaceMethod")

Expand Down

0 comments on commit e69653e

Please sign in to comment.