cleaning up system variables
[integration/test.git] / csit / variables / Variables.py
1 """
2 Definitions of common variables for the system test robot suites of the
3 OpenDaylight project.
4
5 Authors: Baohua Yang@IBM, Denghui Huang@IBM
6 Edited: Many times by many people
7 """
8
9 # VM Environment defaults
10 DEFAULT_LINUX_PROMPT = '>'
11 DEFAULT_USER = 'jenkins'
12 DEFAULT_TIMEOUT = '30s'
13
14 # ODL system variables
15 ODL_SYSTEM_IP = '127.0.0.1'  # Override if ODL is not running locally to pybot
16 ODL_SYSTEM_IP_LIST = ['ODL_SYSTEM_1_IP', 'ODL_SYSTEM_2_IP', 'ODL_SYSTEM_3_IP']
17 ODL_SYSTEM_USER = DEFAULT_USER
18 ODL_SYSTEM_PASSWORD = ''  # empty means use public key authentication
19 ODL_SYSTEM_PROMPT = DEFAULT_LINUX_PROMPT
20
21 # "Tools" system variables (mininet etc).
22 TOOLS_SYSTEM_IP = '127.0.0.1'  # Override if tools are not run locally to pybot
23 TOOLS_SYSTEM_USER = DEFAULT_USER
24 TOOLS_SYSTEM_PASSWORD = ''  # empty means use public key authentication
25 TOOLS_SYSTEM_PROMPT = DEFAULT_LINUX_PROMPT
26
27 # KARAF Variables
28 KARAF_SHELL_PORT = '8101'
29 ESCAPE_CHARACTER = '\x1B'
30 KARAF_DETAILED_PROMPT = '@' + ESCAPE_CHARACTER + '[0m' + ESCAPE_CHARACTER + '[34mroot' + ESCAPE_CHARACTER + '[0m>'
31 KARAF_USER = 'karaf'
32 KARAF_PASSWORD = 'karaf'
33 KARAF_PROMPT = 'opendaylight-user'
34
35 # Logging levels
36 DEFAULT_ODL_LOG_LEVEL = 'INFO'
37 DEFAULT_BGPCEP_LOG_LEVEL = DEFAULT_ODL_LOG_LEVEL
38 DEFAULT_PROTOCOL_LOG_LEVEL = DEFAULT_BGPCEP_LOG_LEVEL
39 BGPCEP_LOG_LEVEL = DEFAULT_BGPCEP_LOG_LEVEL
40 PROTOCOL_LOG_LEVEL = BGPCEP_LOG_LEVEL
41
42 # BGP variables
43 ODL_BGP_PORT = '1790'
44 BGP_TOOL_PORT = '17900'
45
46 # Restconf variables
47 ODL_RESTCONF_USER = 'admin'
48 ODL_RESTCONF_PASSWORD = 'admin'
49
50 # Netconf variables
51 ODL_NETCONF_CONFIG_PORT = '1830'
52 ODL_NETCONF_MDSAL_PORT = '2830'
53 ODL_NETCONF_USER = 'admin'
54 ODL_NETCONF_PASSWORD = 'admin'
55 ODL_NETCONF_PROMPT = ']]>]]>'
56 ODL_NETCONF_NAMESPACE = 'urn:ietf:params:xml:ns:netconf:base:1.0'
57
58 # OpenFlow variables
59 ODL_OF_PLUGIN = 'lithium'
60
61 # VTN Coordinator Variables
62 VTNC = '127.0.0.1'
63 VTNCPORT = '8083'
64 VTNC_PREFIX = 'http://' + VTNC + ':' + VTNCPORT
65 VTNC_HEADERS = {'Content-Type': 'application/json',
66                 'username': 'admin', 'password': 'adminpass'}
67
68 VTNWEBAPI = '/vtn-webapi'
69 # controllers URL
70 CTRLS_CREATE = 'controllers.json'
71 CTRLS = 'controllers'
72 SW = 'switches'
73
74 # vtn URL
75 VTNS_CREATE = 'vtns.json'
76 VTNS = 'vtns'
77
78 # vbridge URL
79 VBRS_CREATE = 'vbridges.json'
80 VBRS = 'vbridges'
81
82 # interfaces URL
83 VBRIFS_CREATE = 'interfaces.json'
84 VBRIFS = 'interfaces'
85
86 # portmap URL
87 PORTMAP_CREATE = 'portmap.json'
88
89 # vlanmap URL
90 VLANMAP_CREATE = 'vlanmaps.json'
91
92 # ports URL
93 PORTS = 'ports/detail.json'
94
95 # flowlist URL
96 FLOWLISTS_CREATE = 'flowlists.json'
97
98 # flowlistentry_URL
99 FLOWLISTENTRIES_CREATE = 'flowlistentries.json'
100 FLOWLISTS = 'flowlists'
101
102 # flowfilter_URL
103 FLOWFILTERS_CREATE = 'flowfilters.json'
104 FLOWFILTERENTRIES_CREATE = 'flowfilterentries.json'
105 FLOWFILTERS = 'flowfilters/in'
106 FLOWFILTERS_UPDATE = 'flowfilterentries'
107
108
109 # Common APIs
110 CONFIG_NODES_API = '/restconf/config/opendaylight-inventory:nodes'
111 OPERATIONAL_NODES_API = '/restconf/operational/opendaylight-inventory:nodes'
112 OPERATIONAL_NODES_NETVIRT = '/restconf/operational/network-topology:network-topology/topology/netvirt:1'
113 OPERATIONAL_TOPO_API = '/restconf/operational/network-topology:' \
114                        'network-topology'
115 CONFIG_TOPO_API = '/restconf/config/network-topology:network-topology'
116 CONTROLLER_CONFIG_MOUNT = ('/restconf/config/network-topology:'
117                            'network-topology/topology'
118                            '/topology-netconf/node/'
119                            'controller-config/yang-ext:mount')
120 CONFIG_API = '/restconf/config'
121 OPERATIONAL_API = '/restconf/operational'
122 MODULES_API = '/restconf/modules'
123
124 # NEMO Variables
125 PREDEFINE_ROLE_URI = '/restconf/config/nemo-user:user-roles'
126 PREDEFINE_NODE_URI = '/restconf/config/nemo-object:node-definitions'
127 PREDEFINE_CONNECTION_URI = '/restconf/config/nemo-object:connection-definitions'
128 REGISTER_TENANT_URI = '/restconf/operations/nemo-intent:register-user'
129 STRUCTURE_INTENT_URI = '/restconf/operations/nemo-intent:structure-style-nemo-update'
130 GET_INTENTS_URI = '/retconf/config/intent:intents'
131
132 # TOKEN
133 AUTH_TOKEN_API = '/oauth2/token'
134 REVOKE_TOKEN_API = '/oauth2/revoke'
135
136 # Base Mininet Mac address. DPID of mininet switches will be derived from this.
137 BASE_MAC_1 = '00:4b:00:00:00:00'
138 # Base IP of mininet hosts
139 BASE_IP_1 = '75.75.0.0'
140
141 # Vlan Custom Topology Path and File
142 CREATE_VLAN_TOPOLOGY_FILE = "vlan_vtn_test.py"
143 CREATE_VLAN_TOPOLOGY_FILE_PATH = "MininetTopo/" +\
144                                  CREATE_VLAN_TOPOLOGY_FILE
145
146 # Mininet Custom Topology Path and File
147 CREATE_FULLYMESH_TOPOLOGY_FILE = "create_fullymesh.py"
148 CREATE_FULLYMESH_TOPOLOGY_FILE_PATH = "libraries/MininetTopo/" +\
149                                       CREATE_FULLYMESH_TOPOLOGY_FILE
150
151 # Mininet Custom Topology Path and File for Path Policy
152 CREATE_PATHPOLICY_TOPOLOGY_FILE = "topo-3sw-2host_multipath.py"
153 CREATE_PATHPOLICY_TOPOLOGY_FILE_PATH = "MininetTopo/" +\
154                                        CREATE_PATHPOLICY_TOPOLOGY_FILE
155
156 GBP_REGEP_API = "/restconf/operations/endpoint:register-endpoint"
157 GBP_UNREGEP_API = "/restconf/operations/endpoint:unregister-endpoint"
158 GBP_TENANTS_API = "/restconf/config/policy:tenants"
159 GBP_TUNNELS_API = "/restconf/config/opendaylight-inventory:nodes"
160
161 # LISP Flow Mapping variables
162 LFM_RPC_API = "/restconf/operations/odl-mappingservice"
163 LFM_RPC_API_LI = "/restconf/operations/lfm-mapping-database"
164 LFM_SB_RPC_API = "/restconf/operations/odl-lisp-sb"
165
166 # Other global variables
167 # TODO: Move these to more apropriate sections.
168 PORT = '8080'
169 RESTPORT = '8282'
170 RESTCONFPORT = '8181'
171 OVSDBPORT = '6640'
172 CONTAINER = 'default'
173 PREFIX = 'http://' + ODL_SYSTEM_IP + ':' + PORT  # TODO: determine where this is used; create a better named variable
174 USER = 'admin'  # TODO: who is using this?  Can we make it more specific? (e.g.  RESTCONF_USER)
175 PWD = 'admin'
176 PASSWORD = 'EMPTY'
177 AUTH = [u'admin', u'admin']
178 SCOPE = 'sdn'
179 HEADERS = {'Content-Type': 'application/json'}
180 HEADERS_YANG_JSON = {'Content-Type': 'application/yang.data+json'}
181 HEADERS_XML = {'Content-Type': 'application/xml'}
182 ACCEPT_XML = {'Accept': 'application/xml'}
183 ACCEPT_JSON = {'Accept': 'application/json'}
184 ACCEPT_EMPTY = {}  # Json should be default, but no-output RPC cannot have Accept header.
185 ODL_CONTROLLER_SESSION = None
186 TOPO_TREE_LEVEL = 2
187 TOPO_TREE_DEPTH = 3
188 TOPO_TREE_FANOUT = 2
189 KEYFILE_PASS = 'any'
190 SSH_KEY = 'id_rsa'
191 CONTROLLER_STOP_TIMEOUT = 120  # Max number of seconds test will wait for a controller to stop
192 TOPOLOGY_URL = 'network-topology:network-topology/topology'
193 SEND_ACCEPT_XML_HEADERS = {'Content-Type': 'application/xml', 'Accept': 'application/xml'}
194
195 # Test deadlines global control
196 ENABLE_GLOBAL_TEST_DEADLINES = True
197
198 # Deprecated old variables, to be removed once all tests that need them are
199 # updated to use the new names.
200 CONTROLLER = ODL_SYSTEM_IP
201 CONTROLLERS = ['ODL_SYSTEM_1_IP', 'ODL_SYSTEM_2_IP', 'ODL_SYSTEM_3_IP']
202 CONTROLLER_PASSWORD = ODL_SYSTEM_PASSWORD
203 CONTROLLER_PROMPT = ODL_SYSTEM_PROMPT