mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-12-24 04:19:03 +00:00
Network: abstract dbus and supervisor - ipv6/wifi/vlan (#2217)
* Abstract code between dbus - supervisor * cleanup v2 * fix address vs interface * fix API calls * Fix methodnames * add vlan type * add vlan support * Fix tests * Add wifi support * more OOO * fix typing import * typing part 2 * Fix profile * fix test payload * ignore powersafe * support privancy * fix property * Fix tests * full support all API * Fix all * more robust * Update supervisor/dbus/network/connection.py Co-authored-by: Joakim Sørensen <joasoe@gmail.com> * Fix gateway * fix empty gateway * Allow no ipv6 or ipv4 kernel support * Exclude device drivers * Add wifi * Use loop on api * refactory p1 Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * refactory p2 Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * refactory p3 Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * refactory p4 Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * refactory p5 Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * refactory p6 Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * refactory p7 Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * refactory p8 Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * Fix lint * update sup p1 Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * update sup p2 Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * fix tests Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * fix logging Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * improve mock handling Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * add fixtures Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch> * fix tests * better testing * Add more tests * Fix API test * Add test for vlan payload * Support variation * Fix doc string * support remove & wifi scan * make sure we ignore local-link on ipv6 * remove privancy - add vlan * Fix tests * fix isort * Fixture dbus by commands * Add dnsmanager fixture * expose commands called by dbus * Add wifi tests * Update supervisor/plugins/dns.py Co-authored-by: Joakim Sørensen <joasoe@gmail.com> * Address comments & fix tests * change url to be closer on others Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
This commit is contained in:
@@ -3,9 +3,12 @@ from enum import Enum
|
||||
|
||||
DBUS_NAME_CONNECTION_ACTIVE = "org.freedesktop.NetworkManager.Connection.Active"
|
||||
DBUS_NAME_DEVICE = "org.freedesktop.NetworkManager.Device"
|
||||
DBUS_NAME_DEVICE_WIRELESS = "org.freedesktop.NetworkManager.Device.Wireless"
|
||||
DBUS_NAME_DNS = "org.freedesktop.NetworkManager.DnsManager"
|
||||
DBUS_NAME_ACCESSPOINT = "org.freedesktop.NetworkManager.AccessPoint"
|
||||
DBUS_NAME_HOSTNAME = "org.freedesktop.hostname1"
|
||||
DBUS_NAME_IP4CONFIG = "org.freedesktop.NetworkManager.IP4Config"
|
||||
DBUS_NAME_IP6CONFIG = "org.freedesktop.NetworkManager.IP6Config"
|
||||
DBUS_NAME_NM = "org.freedesktop.NetworkManager"
|
||||
DBUS_NAME_RAUC = "de.pengutronix.rauc"
|
||||
DBUS_NAME_RAUC_INSTALLER = "de.pengutronix.rauc.Installer"
|
||||
@@ -15,13 +18,14 @@ DBUS_NAME_SYSTEMD = "org.freedesktop.systemd1"
|
||||
|
||||
DBUS_OBJECT_BASE = "/"
|
||||
DBUS_OBJECT_DNS = "/org/freedesktop/NetworkManager/DnsManager"
|
||||
DBUS_OBJECT_SETTINGS = "/org/freedesktop/NetworkManager/Settings"
|
||||
DBUS_OBJECT_HOSTNAME = "/org/freedesktop/hostname1"
|
||||
DBUS_OBJECT_NM = "/org/freedesktop/NetworkManager"
|
||||
DBUS_OBJECT_SYSTEMD = "/org/freedesktop/systemd1"
|
||||
|
||||
DBUS_ATTR_802_WIRELESS = "802-11-wireless"
|
||||
DBUS_ATTR_802_WIRELESS_SECURITY = "802-11-wireless-security"
|
||||
DBUS_ATTR_ACTIVE_CONNECTIONS = "ActiveConnections"
|
||||
DBUS_ATTR_ACTIVE_CONNECTION = "ActiveConnection"
|
||||
DBUS_ATTR_ACTIVE_ACCESSPOINT = "ActiveAccessPoint"
|
||||
DBUS_ATTR_ADDRESS_DATA = "AddressData"
|
||||
DBUS_ATTR_BOOT_SLOT = "BootSlot"
|
||||
DBUS_ATTR_CHASSIS = "Chassis"
|
||||
@@ -33,25 +37,32 @@ DBUS_ATTR_DEPLOYMENT = "Deployment"
|
||||
DBUS_ATTR_DEVICE_INTERFACE = "Interface"
|
||||
DBUS_ATTR_DEVICE_TYPE = "DeviceType"
|
||||
DBUS_ATTR_DEVICES = "Devices"
|
||||
DBUS_ATTR_DRIVER = "Driver"
|
||||
DBUS_ATTR_GATEWAY = "Gateway"
|
||||
DBUS_ATTR_ID = "Id"
|
||||
DBUS_ATTR_IP4ADDRESS = "Ip4Address"
|
||||
DBUS_ATTR_SSID = "Ssid"
|
||||
DBUS_ATTR_FREQUENCY = "Frequency"
|
||||
DBUS_ATTR_HWADDRESS = "HwAddress"
|
||||
DBUS_ATTR_MODE = "Mode"
|
||||
DBUS_ATTR_STRENGTH = "Strength"
|
||||
DBUS_ATTR_IP4CONFIG = "Ip4Config"
|
||||
DBUS_ATTR_IP6CONFIG = "Ip6Config"
|
||||
DBUS_ATTR_KERNEL_RELEASE = "KernelRelease"
|
||||
DBUS_ATTR_LAST_ERROR = "LastError"
|
||||
DBUS_ATTR_MODE = "Mode"
|
||||
DBUS_ATTR_NAMESERVERS = "Nameservers"
|
||||
DBUS_ATTR_NAMESERVER_DATA = "NameserverData"
|
||||
DBUS_ATTR_OPERATING_SYSTEM_PRETTY_NAME = "OperatingSystemPrettyName"
|
||||
DBUS_ATTR_OPERATION = "Operation"
|
||||
DBUS_ATTR_PRIMARY_CONNECTION = "PrimaryConnection"
|
||||
DBUS_ATTR_RCMANAGER = "RcManager"
|
||||
DBUS_ATTR_REAL = "Real"
|
||||
DBUS_ATTR_STATE = "State"
|
||||
DBUS_ATTR_STATIC_HOSTNAME = "StaticHostname"
|
||||
DBUS_ATTR_STATIC_OPERATING_SYSTEM_CPE_NAME = "OperatingSystemCPEName"
|
||||
DBUS_ATTR_TYPE = "Type"
|
||||
DBUS_ATTR_UUID = "Uuid"
|
||||
DBUS_ATTR_VARIANT = "Variant"
|
||||
DBUS_ATTR_MANAGED = "Managed"
|
||||
|
||||
|
||||
class RaucState(str, Enum):
|
||||
@@ -67,13 +78,7 @@ class InterfaceMethod(str, Enum):
|
||||
|
||||
AUTO = "auto"
|
||||
MANUAL = "manual"
|
||||
|
||||
|
||||
class InterfaceMethodSimple(str, Enum):
|
||||
"""Interface method."""
|
||||
|
||||
DHCP = "dhcp"
|
||||
STATIC = "static"
|
||||
DISABLED = "disabled"
|
||||
|
||||
|
||||
class ConnectionType(str, Enum):
|
||||
@@ -81,3 +86,41 @@ class ConnectionType(str, Enum):
|
||||
|
||||
ETHERNET = "802-3-ethernet"
|
||||
WIRELESS = "802-11-wireless"
|
||||
|
||||
|
||||
class ConnectionStateType(int, Enum):
|
||||
"""Connection states.
|
||||
|
||||
https://developer.gnome.org/NetworkManager/stable/nm-dbus-types.html#NMActiveConnectionState
|
||||
"""
|
||||
|
||||
UNKNOWN = 0
|
||||
ACTIVATING = 1
|
||||
ACTIVATED = 2
|
||||
DEACTIVATING = 3
|
||||
DEACTIVATED = 4
|
||||
|
||||
|
||||
class DeviceType(int, Enum):
|
||||
"""Device types.
|
||||
|
||||
https://developer.gnome.org/NetworkManager/stable/nm-dbus-types.html#NMDeviceType
|
||||
"""
|
||||
|
||||
UNKNOWN = 0
|
||||
ETHERNET = 1
|
||||
WIRELESS = 2
|
||||
BLUETOOTH = 5
|
||||
VLAN = 11
|
||||
TUN = 16
|
||||
VETH = 20
|
||||
|
||||
|
||||
class WirelessMethodType(int, Enum):
|
||||
"""Device Type."""
|
||||
|
||||
UNKNOWN = 0
|
||||
ADHOC = 1
|
||||
INFRASTRUCTURE = 2
|
||||
ACCESSPOINT = 3
|
||||
MESH = 4
|
||||
|
||||
Reference in New Issue
Block a user