Test: Reorg. cord-tester code in general.
Change test cases to use olt configuration as appropriate when switch isn't running in the test container.
Remove olt multitable config and fold into olt_config.
Rename subscriberMultiTable to cordSubscriber test.
Change the eval script to reflect the new changes/design in cord tester.
Change-Id: I4849b32603ac790a31ba7cfb65b3f87a7c9e2076
diff --git a/src/test/utils/OltConfig.py b/src/test/utils/OltConfig.py
index bb78563..ac5f5db 100644
--- a/src/test/utils/OltConfig.py
+++ b/src/test/utils/OltConfig.py
@@ -38,34 +38,12 @@
def olt_port_map(self):
if self.on_olt() and self.olt_conf.has_key('port_map'):
port_map = {}
- port_map['ports'] = self.olt_conf['port_map']['ports']
- port_map['start_vlan'] = 0
- if self.olt_conf['port_map'].has_key('host'):
- port_map['host'] = self.olt_conf['port_map']['host']
- else:
- port_map['host'] = 'ovsbr0'
- if self.olt_conf['port_map'].has_key('start_vlan'):
- port_map['start_vlan'] = int(self.olt_conf['port_map']['start_vlan'])
-
- ##Build a rx/tx port number to interface map
- port_map[1] = self.olt_conf['port_map']['rx']
- port_map[2] = self.olt_conf['port_map']['tx']
- port_map[port_map[1]] = 1
- port_map[port_map[2]] = 2
- return port_map
- else:
- return None
-
- def olt_port_map_multi(self):
- if self.on_olt() and self.olt_conf.has_key('port_map'):
- port_map = {}
if self.olt_conf['port_map'].has_key('ports'):
port_map['ports'] = self.olt_conf['port_map']['ports']
else:
port_map['ports'] = []
num_ports = int(self.olt_conf['port_map']['num_ports'])
- port_map['port'] = self.olt_conf['port_map']['port']
- for port in xrange(0, num_ports, 2):
+ for port in xrange(0, num_ports*2, 2):
port_map['ports'].append('veth{}'.format(port))
port_num = 1
port_map['uplink'] = int(self.olt_conf['uplink'])
diff --git a/src/test/utils/OnosCtrl.py b/src/test/utils/OnosCtrl.py
index e323112..9c73b4a 100644
--- a/src/test/utils/OnosCtrl.py
+++ b/src/test/utils/OnosCtrl.py
@@ -16,6 +16,20 @@
import json
import requests
import os,sys,time
+from OltConfig import OltConfig
+import fcntl, socket, struct
+
+def get_mac(iface = 'ovsbr0', pad = 4):
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ try:
+ info = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', bytes(iface[:15])))
+ except:
+ info = ['0'] * 24
+ s.close()
+ sep = ''
+ if pad == 0:
+ sep = ':'
+ return '0'*pad + sep.join(['%02x' %ord(char) for char in info[18:24]])
class OnosCtrl:
@@ -61,6 +75,24 @@
return None
@classmethod
+ def get_device_id(cls):
+ '''If running under olt, we get the first switch connected to onos'''
+ olt = OltConfig()
+ if olt.on_olt():
+ devices = cls.get_devices()
+ if devices:
+ dids = map(lambda d: d['id'], devices)
+ if len(dids) == 1:
+ did = dids[0]
+ else:
+ ###If we have more than 1, then check for env before using first one
+ did = os.getenv('OLT_DEVICE_ID', dids[0])
+ else:
+ did = 'of:' + get_mac('ovsbr0')
+
+ return did
+
+ @classmethod
def get_flows(cls, device_id):
url = 'http://%s:8181/onos/v1/flows/' %(cls.controller) + device_id
result = requests.get(url, auth = cls.auth)
diff --git a/src/test/utils/OnosFlowCtrl.py b/src/test/utils/OnosFlowCtrl.py
index f1b72cf..295a7ab 100644
--- a/src/test/utils/OnosFlowCtrl.py
+++ b/src/test/utils/OnosFlowCtrl.py
@@ -19,19 +19,6 @@
from nose.tools import *
from scapy.all import *
from OnosCtrl import OnosCtrl
-import fcntl, socket, struct
-
-def get_mac(iface = 'ovsbr0', pad = 4):
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- try:
- info = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', iface[:15]))
- except:
- info = ['0'] * 24
- s.close()
- sep = ''
- if pad == 0:
- sep = ':'
- return '0'*pad + sep.join(['%02x' %ord(char) for char in info[18:24]])
class OnosFlowCtrl: