Change nfvbench git checkout to stable/fraser in Dockerfile
[nfvbench.git] / nfvbench / specs.py
1 # Copyright 2016 Cisco Systems, Inc.  All rights reserved.
2 #
3 #    Licensed under the Apache License, Version 2.0 (the "License"); you may
4 #    not use this file except in compliance with the License. You may obtain
5 #    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, WITHOUT
11 #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 #    License for the specific language governing permissions and limitations
13 #    under the License.
14 #
15
16
17 class Encaps(object):
18     VLAN = "VLAN"
19     VxLAN = "VxLAN"
20     BASIC = "BASIC"
21
22     encaps_mapping = {
23         'VLAN': VLAN,
24         'VXLAN': VxLAN
25     }
26
27     @classmethod
28     def get(cls, network_type):
29         return cls.encaps_mapping.get(network_type.upper(), None)
30
31
32 class ChainType(object):
33     PVP = "PVP"
34     PVVP = "PVVP"
35     EXT = "EXT"
36
37     chain_mapping = {
38         'PVP': PVP,
39         'PVVP': PVVP,
40         'EXT': EXT
41     }
42
43     @classmethod
44     def get_chain_type(cls, chain):
45         return cls.chain_mapping.get(chain.upper(), None)
46
47
48 class OpenStackSpec(object):
49     def __init__(self):
50         self.__vswitch = "BASIC"
51         self.__encaps = Encaps.BASIC
52
53     @property
54     def vswitch(self):
55         return self.__vswitch
56
57     @vswitch.setter
58     def vswitch(self, vsw):
59         if vsw is None:
60             raise Exception('Trying to set vSwitch as None.')
61
62         self.__vswitch = vsw.upper()
63
64     @property
65     def encaps(self):
66         return self.__encaps
67
68     @encaps.setter
69     def encaps(self, enc):
70         if enc is None:
71             raise Exception('Trying to set Encaps as None.')
72
73         self.__encaps = enc
74
75
76 class RunSpec(object):
77     def __init__(self, no_vswitch_access, openstack_spec):
78         self.use_vswitch = (not no_vswitch_access) and openstack_spec \
79             and openstack_spec.vswitch != "BASIC"
80
81
82 class Specs(object):
83     def __init__(self):
84         self.openstack = None
85         self.run_spec = None
86
87     def set_openstack_spec(self, openstack_spec):
88         self.openstack = openstack_spec
89
90     def set_run_spec(self, run_spec):
91         self.run_spec = run_spec