ci: Execute pylint checks by VERIFY and MERGE jobs
[vswitchperf.git] / core / vswitch_controller_clean.py
1 # Copyright 2015-2016 Intel Corporation.
2 #
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
6 #
7 #   http://www.apache.org/licenses/LICENSE-2.0
8 #
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
15 """VSwitch controller for basic initialization of vswitch
16 """
17
18 import logging
19
20 from core.vswitch_controller import IVswitchController
21
22 class VswitchControllerClean(IVswitchController):
23     """VSwitch controller for Clean deployment scenario.
24
25     Attributes:
26         _vswitch_class: The vSwitch class to be used.
27         _vswitch: The vSwitch object controlled by this controller
28         _deployment_scenario: A string describing the scenario to set-up in the
29             constructor.
30     """
31     def __init__(self, vswitch_class, traffic):
32         """Initializes up the prerequisites for the Clean deployment scenario.
33
34         :vswitch_class: the vSwitch class to be used.
35         """
36         self._logger = logging.getLogger(__name__)
37         self._vswitch_class = vswitch_class
38         self._vswitch = vswitch_class()
39         self._deployment_scenario = "Clean"
40         self._logger.debug('Creation using ' + str(self._vswitch_class))
41         self._traffic = traffic.copy()
42
43     def setup(self):
44         """Sets up the switch for Clean.
45         """
46         self._logger.debug('Setup using ' + str(self._vswitch_class))
47
48         try:
49             self._vswitch.start()
50         except:
51             self._vswitch.stop()
52             raise
53
54     def stop(self):
55         """Tears down the switch created in setup().
56         """
57         self._logger.debug('Stop using ' + str(self._vswitch_class))
58         self._vswitch.stop()
59
60     def __enter__(self):
61         self.setup()
62
63     def __exit__(self, type_, value, traceback):
64         self.stop()
65
66     def get_vswitch(self):
67         """See IVswitchController for description
68         """
69         return self._vswitch
70
71     def get_ports_info(self):
72         """See IVswitchController for description
73         """
74         pass
75
76     def dump_vswitch_flows(self):
77         """See IVswitchController for description
78         """
79         pass