diff options
Diffstat (limited to 'core/vswitch_controller.py')
-rw-r--r-- | core/vswitch_controller.py | 44 |
1 files changed, 34 insertions, 10 deletions
diff --git a/core/vswitch_controller.py b/core/vswitch_controller.py index 855de8b2..889f14bc 100644 --- a/core/vswitch_controller.py +++ b/core/vswitch_controller.py @@ -1,4 +1,4 @@ -# Copyright 2015 Intel Corporation. +# Copyright 2015-2018 Intel Corporation., Tieto # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,33 +13,57 @@ # limitations under the License. """Interface for deployment specific vSwitch controllers """ +import logging class IVswitchController(object): - """Abstract class which defines a vSwitch controller object + """Interface class for a vSwitch controller object This interface is used to setup and control a vSwitch provider for a particular deployment scenario. """ - def __enter__(self): + def __init__(self, deployment, vswitch_class, traffic): + """Initializes up the generic prerequisites for deployment scenario. + + :deployment: the deployment scenario to configure + :vswitch_class: the vSwitch class to be used. + :traffic: dictionary with detailed traffic definition + """ + self._logger = logging.getLogger(__name__) + self._vswitch_class = vswitch_class + self._vswitch = vswitch_class() + self._deployment_scenario = deployment + self._logger.debug('Creation using %s', str(self._vswitch_class)) + self._traffic = traffic.copy() + self._bridge = None + + def setup(self): """Sets up the switch for the particular deployment scenario """ raise NotImplementedError( "The VswitchController does not implement the \"setup\" function.") - def __exit__(self, type_, value, traceback): + def stop(self): """Tears down the switch created in setup() """ raise NotImplementedError( "The VswitchController does not implement the \"stop\" function.") + def __enter__(self): + """Sets up the switch for the particular deployment scenario + """ + self.setup() + + def __exit__(self, type_, value, traceback): + """Tears down the switch created in setup() + """ + self.stop() + def get_vswitch(self): """Get the controlled vSwitch :return: The controlled IVswitch """ - raise NotImplementedError( - "The VswitchController does not implement the \"get_vswitch\" " - "function.") + return self._vswitch def get_ports_info(self): """Returns a dictionary describing all ports on the vSwitch. @@ -50,9 +74,9 @@ class IVswitchController(object): "The VswitchController does not implement the \"get_ports_info\" " "function.") - def dump_vswitch_flows(self): - """ Dumps flows from vswitch + def dump_vswitch_connections(self): + """ Dumps connections from vswitch """ raise NotImplementedError( "The VswitchController does not implement the " - "\"dump_vswitch_flows\" function.") + "\"dump_vswitch_connections\" function.") |