aboutsummaryrefslogtreecommitdiffstats
path: root/vicn/resource/linux/bridge.py
diff options
context:
space:
mode:
Diffstat (limited to 'vicn/resource/linux/bridge.py')
-rw-r--r--vicn/resource/linux/bridge.py28
1 files changed, 7 insertions, 21 deletions
diff --git a/vicn/resource/linux/bridge.py b/vicn/resource/linux/bridge.py
index 7b5ceed7..edc8acdc 100644
--- a/vicn/resource/linux/bridge.py
+++ b/vicn/resource/linux/bridge.py
@@ -22,18 +22,15 @@ from vicn.core.address_mgr import AddressManager
from vicn.core.attribute import Attribute, Multiplicity
from vicn.core.exception import ResourceNotFound
from vicn.core.requirement import Requirement
-from vicn.core.task import inline_task
+from vicn.core.task import inline_task, inherit
from vicn.resource.channel import Channel
+from vicn.resource.interface import Interface
from vicn.resource.linux.bridge_mgr import BridgeManager
-from vicn.resource.linux.net_device import BaseNetDevice
+from vicn.resource.linux.net_device import NetDevice
log = logging.getLogger(__name__)
-# FIXME This should use the AddressManager to get allocated a name that does
-# not exist
-DEFAULT_BRIDGE_NAME = 'br0'
-
-class Bridge(Channel, BaseNetDevice):
+class Bridge(Channel, NetDevice):
"""
Resource: Bridge
"""
@@ -62,21 +59,10 @@ class Bridge(Channel, BaseNetDevice):
# Resource lifecycle
#--------------------------------------------------------------------------
- @inline_task
- def __get__(self):
- # FIXME we currently force the recreation of the bridge, delegating the
- # check to the creation function
- raise ResourceNotFound
-
+ @inherit(Channel, Interface)
def __create__(self):
- # FIXME : reserves .1 IP address for the bridge, provided no other
- # class uses this trick
- AddressManager().get_ip(self)
return self.node.bridge_manager.add_bridge(self.device_name)
- # Everything should be handled by BaseNetDevice
- __delete__ = None
-
#--------------------------------------------------------------------------
# Resource lifecycle
#--------------------------------------------------------------------------
@@ -86,7 +72,7 @@ class Bridge(Channel, BaseNetDevice):
Returns:
Task
"""
- return self.node.bridge_manager.add_interface(self.device_name,
+ return self.node.bridge_manager.add_interface(self.device_name,
interface.device_name, vlan)
def __method_add_interface__(self, interface, vlan=None):
@@ -99,6 +85,6 @@ class Bridge(Channel, BaseNetDevice):
"""
log.info('Removing interface {} from bridge {}'.format(
interface.device_name, self.name))
- return self.node.bridge_manager.del_interface(self.device_name,
+ return self.node.bridge_manager.del_interface(self.device_name,
interface.device_name)