From 074a2263ce1980799c2f3acc10c9d0dc0fa7b9ce Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Fri, 25 Feb 2022 15:06:14 -0800 Subject: [PATCH] daemon: updates to network base to set default behavior for abstract function --- daemon/core/nodes/base.py | 8 ++++++++ daemon/core/nodes/network.py | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/daemon/core/nodes/base.py b/daemon/core/nodes/base.py index fa3c063c..fbee291a 100644 --- a/daemon/core/nodes/base.py +++ b/daemon/core/nodes/base.py @@ -969,7 +969,15 @@ class CoreNetworkBase(NodeBase): """ raise NotImplementedError + @abc.abstractmethod def custom_iface(self, node: CoreNode, iface_data: InterfaceData) -> CoreInterface: + """ + Defines custom logic for creating an interface, if required. + + :param node: node to create interface for + :param iface_data: data for creating interface + :return: created interface + """ raise NotImplementedError def get_linked_iface(self, net: "CoreNetworkBase") -> Optional[CoreInterface]: diff --git a/daemon/core/nodes/network.py b/daemon/core/nodes/network.py index 4337daa8..262d422c 100644 --- a/daemon/core/nodes/network.py +++ b/daemon/core/nodes/network.py @@ -22,7 +22,7 @@ from core.emulator.enumerations import ( ) from core.errors import CoreCommandError, CoreError from core.executables import NFTABLES -from core.nodes.base import CoreNetworkBase +from core.nodes.base import CoreNetworkBase, CoreNode from core.nodes.interface import CoreInterface, GreTap, Veth from core.nodes.netclient import get_net_client @@ -436,6 +436,9 @@ class CoreNetwork(CoreNetworkBase): for ip in ips: self.net_client.create_address(self.brname, ip) + def custom_iface(self, node: CoreNode, iface_data: InterfaceData) -> CoreInterface: + raise CoreError(f"{type(self).__name__} does not support, custom interfaces") + class GreTapBridge(CoreNetwork): """