Test: Install vtn cord app during cord-tester setup to make it consistent with ONOS cord apps being loaded.
Don't install cord if already installed which is true when specifying external controller for setup.
When running the tester in cord mode, make sure to install cord apps after restarting ONOS on cord to bring it back to the same state as before restart.
Change-Id: If4961867f5b08c4079660961f6a30be9011b3a57
(cherry picked from commit bd9b8a39b5a0550fd8c0cbb47c85538db03bda8f)
diff --git a/src/test/utils/CordContainer.py b/src/test/utils/CordContainer.py
index da99655..4f06b2f 100644
--- a/src/test/utils/CordContainer.py
+++ b/src/test/utils/CordContainer.py
@@ -202,8 +202,10 @@
onos_config_dir = os.path.join(onos_cord_dir, 'config')
docker_yaml = os.path.join(onos_cord_dir, 'docker-compose.yml')
- def __init__(self, conf):
+ def __init__(self, onos_ip, conf, boot_delay = 60):
+ self.onos_ip = onos_ip
self.cord_conf_dir = conf
+ self.boot_delay = boot_delay
if os.access(self.cord_conf_dir, os.F_OK) and not os.access(self.onos_cord_dir, os.F_OK):
os.mkdir(self.onos_cord_dir)
os.mkdir(self.onos_config_dir)
@@ -252,6 +254,9 @@
#start the container using docker-compose
cmd = 'cd {} && docker-compose up -d'.format(self.onos_cord_dir)
os.system(cmd)
+ #Delay to make sure ONOS fully boots
+ time.sleep(self.boot_delay)
+ Onos.install_cord_apps(onos_ip = self.onos_ip)
def build_image(self):
build_cmd = 'cd {} && docker-compose build'.format(self.onos_cord_dir)
@@ -266,6 +271,7 @@
onos_cord_apps = ( ('cord-config', '1.0-SNAPSHOT'),
('aaa', '1.0-SNAPSHOT'),
('igmp', '1.0-SNAPSHOT'),
+ ('vtn', '1.0-SNAPSHOT'),
)
ports = [ 8181, 8101, 9876, 6653, 6633, 2000, 2620 ]
host_config_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', 'setup/onos-config')
diff --git a/src/test/utils/CordTestServer.py b/src/test/utils/CordTestServer.py
index a77b977..d946acb 100644
--- a/src/test/utils/CordTestServer.py
+++ b/src/test/utils/CordTestServer.py
@@ -28,7 +28,6 @@
CORD_TEST_HOST = '172.17.0.1'
CORD_TEST_PORT = 25000
-g_onos_cord = None
class QuaggaStopWrapper(Container):
def __init__(self, name = Quagga.NAME, image = Quagga.IMAGE, tag = 'latest'):
@@ -38,8 +37,10 @@
class CordTestServer(object):
+ onos_cord = None
+
def __restart_onos(self, config = None):
- if g_onos_cord:
+ if self.onos_cord:
onos_config = '{}/network-cfg.json'.format(OnosCord.onos_config_dir)
else:
onos_config = '{}/network-cfg.json'.format(Onos.host_config_dir)
@@ -49,8 +50,8 @@
except:
pass
print('Restarting ONOS')
- if g_onos_cord:
- g_onos_cord.start(restart = True, network_cfg = config)
+ if self.onos_cord:
+ self.onos_cord.start(restart = True, network_cfg = config)
else:
Onos(restart = True, network_cfg = config)
return 'DONE'
@@ -99,10 +100,9 @@
@nottest
def cord_test_server_start(daemonize = True, cord_test_host = CORD_TEST_HOST,
cord_test_port = CORD_TEST_PORT, onos_cord = None):
- global g_onos_cord
server = SimpleXMLRPCServer( (cord_test_host, cord_test_port) )
server.register_instance(CordTestServer())
- g_onos_cord = onos_cord
+ CordTestServer.onos_cord = onos_cord
if daemonize is True:
d = daemon.DaemonContext(files_preserve = [server],
detach_process = True)