1 # Copyright 2015 Intel Corporation.
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 """Interface for deployment specific vSwitch controllers
17 class IVswitchController(object):
18 """Abstract class which defines a vSwitch controller object
20 This interface is used to setup and control a vSwitch provider for a
21 particular deployment scenario.
24 """Sets up the switch for the particular deployment scenario
26 raise NotImplementedError(
27 "The VswitchController does not implement the \"setup\" function.")
29 """Tears down the switch created in setup()
31 raise NotImplementedError(
32 "The VswitchController does not implement the \"stop\" function.")
34 def get_vswitch(self):
35 """Get the controlled vSwitch
37 :return: The controlled IVswitch
39 raise NotImplementedError(
40 "The VswitchController does not implement the \"get_vswitch\" "
43 def get_ports_info(self):
44 """Returns a dictionary describing all ports on the vSwitch.
46 See IVswitch for dictionary structure details
48 raise NotImplementedError(
49 "The VswitchController does not implement the \"get_ports_info\" "