Option to run cord-tester setup in foreground.
Delete relay configuration instead of restarting onos after tests.
Make sure prerequisites can be run on other ubuntu distros
Change-Id: Ic04a5dab41b013088cda651afe32abae8030c8d8
diff --git a/src/test/utils/CordTestServer.py b/src/test/utils/CordTestServer.py
index c882f58..fe676fe 100644
--- a/src/test/utils/CordTestServer.py
+++ b/src/test/utils/CordTestServer.py
@@ -123,8 +123,11 @@
return 'DONE'
@nottest
-def cord_test_server_start(daemonize = True, cord_test_host = CORD_TEST_HOST,
- cord_test_port = CORD_TEST_PORT, onos_cord = None):
+def cord_test_server_start(daemonize = True,
+ cord_test_host = CORD_TEST_HOST,
+ cord_test_port = CORD_TEST_PORT,
+ onos_cord = None,
+ foreground=False):
server = SimpleXMLRPCServer( (cord_test_host, cord_test_port) )
server.register_instance(CordTestServer())
CordTestServer.onos_cord = onos_cord
@@ -135,10 +138,16 @@
reinitContainerClients()
server.serve_forever()
else:
- task = threading.Thread(target = server.serve_forever)
- ##terminate when main thread exits
- task.daemon = True
- task.start()
+ if foreground:
+ try:
+ server.serve_forever()
+ except KeyboardInterrupt:
+ return server
+ else:
+ task = threading.Thread(target = server.serve_forever)
+ ##terminate when main thread exits
+ task.daemon = True
+ task.start()
return server
@nottest
diff --git a/src/test/utils/OnosCtrl.py b/src/test/utils/OnosCtrl.py
index 5e6dcdf..83cdedc 100644
--- a/src/test/utils/OnosCtrl.py
+++ b/src/test/utils/OnosCtrl.py
@@ -56,7 +56,7 @@
self.auth = ('karaf', 'karaf')
@classmethod
- def config(cls, config,controller=None):
+ def config(cls, config, controller=None):
if config is not None:
json_data = json.dumps(config)
if controller is None:
@@ -69,6 +69,20 @@
return resp.ok, resp.status_code
return False, 400
+ @classmethod
+ def delete(cls, config, controller=None):
+ if config:
+ json_data = json.dumps(config)
+ if controller is None:
+ print('default Onos config url is %s'%cls.cfg_url)
+ resp = requests.delete(cls.cfg_url, auth = cls.auth, data = json_data)
+ else:
+ cfg_url = 'http://%s:8181/onos/v1/network/configuration/' %(controller)
+ print('non-default Onos config url is %s'%cfg_url)
+ resp = requests.delete(cfg_url, auth = cls.auth, data = json_data)
+ return resp.ok, resp.status_code
+ return False, 400
+
def activate(self):
resp = requests.post(self.app_url + '/active', auth = self.auth)
return resp.ok, resp.status_code