Changes to support cord-tester to test restarts with existing ONOS cord instance.
This wraps the existing configuration of ONOS cord instances already running, namely:
a) onoscord
b) onosfabric
on Cord and provides cord-tester restart test cases to work through the cord-tester agent running on CORD.
A cleanup should restore back to the ONOS cord instance by restoring back the saved running config.
Change-Id: Ic4d52cb7886a958a69c18b27bf010f99863ffdd5
diff --git a/src/test/setup/cord-test.py b/src/test/setup/cord-test.py
index 37d816f..1f95311 100755
--- a/src/test/setup/cord-test.py
+++ b/src/test/setup/cord-test.py
@@ -398,10 +398,10 @@
def runTest(args):
#Start the cord test tcp server
- test_server_params = args.server.split(':')
+ test_manifest = TestManifest(args = args)
+ test_server_params = test_manifest.server.split(':')
test_host = test_server_params[0]
test_port = CORD_TEST_PORT
- test_manifest = TestManifest(args = args)
if len(test_server_params) > 1:
test_port = int(test_server_params[1])
try:
@@ -668,7 +668,7 @@
for c in update_map.keys():
update_map[c] = True
- onos_cord_loc = args.onos_cord
+ onos_cord_loc = test_manifest.onos_cord
if onos_cord_loc:
if onos_cord_loc.find(os.path.sep) < 0:
onos_cord_loc = os.path.join(os.getenv('HOME'), onos_cord_loc)
@@ -695,18 +695,9 @@
head_node = test_manifest.head_node
iterations = test_manifest.iterations
- ##If onos/radius was already started
- if args.test_controller:
- ips = args.test_controller.split('/')
- onos_ip = ips[0]
- if len(ips) > 1:
- radius_ip = ips[1]
- else:
- radius_ip = None
-
onos_cord = None
if onos_cord_loc:
- if not args.test_controller:
+ if not test_manifest.onos_ip:
##Unexpected case. Specify the external controller ip when running on cord node
print('Specify ONOS ip using \"-e\" option when running the cord-tester on cord node')
sys.exit(1)
@@ -801,7 +792,7 @@
network = test_manifest.docker_network)
print('Quagga started')
- params = args.server.split(':')
+ params = test_manifest.server.split(':')
ip = params[0]
port = CORD_TEST_PORT
if len(params) > 1:
@@ -868,6 +859,17 @@
args.olt = manifest.olt
args.onos = manifest.onos_image
args.server = manifest.server
+ args.onos_ip = manifest.onos_ip
+ args.radius_ip = manifest.radius_ip
+ args.onos_cord = manifest.onos_cord
+ else:
+ args.onos_ip = None
+ args.radius_ip = None
+ if args.test_controller:
+ ips = args.test_controller.split('/')
+ args.onos_ip = ips[0]
+ if len(ips) > 1:
+ args.radius_ip = ips[1]
image_name = args.onos
prefix = args.prefix
@@ -890,6 +892,10 @@
Onos.remove_data_map(volume, Onos.guest_data_dir)
Onos.cleanup_runtime()
+ if args.onos_cord:
+ #restore the ONOS cord instance
+ OnosCord.restore_onos_cord(args.onos_cord, args.onos_ip)
+
if args.xos:
##cleanup XOS images
xos_images = ( '{}:{}'.format(XosServer.IMAGE,XosServer.TAG),
@@ -1095,6 +1101,8 @@
help='Specify the log level for the test cases')
parser_run.add_argument('-jvm-heap-size', '--jvm-heap-size', default='', type=str, help='ONOS JVM heap size')
parser_run.add_argument('-network', '--network', default='', type=str, help='Docker network to attach')
+ parser_run.add_argument('-onos-cord', '--onos-cord', default='', type=str,
+ help='Specify config location for ONOS cord when running on podd')
parser_run.set_defaults(func=runTest)
parser_setup = subparser.add_parser('setup', help='Setup cord tester environment')
@@ -1115,8 +1123,8 @@
choices=['DEBUG','TRACE','ERROR','WARN','INFO'],
help='Specify the log level for the test cases')
parser_setup.add_argument('-s', '--start-switch', action='store_true', help='Start OVS when running under OLT config')
- parser_setup.add_argument('-c', '--onos-cord', default='', type=str,
- help='Specify cord location for ONOS cord when running on podd')
+ parser_setup.add_argument('-onos-cord', '--onos-cord', default='', type=str,
+ help='Specify config location for ONOS cord when running on podd')
parser_setup.add_argument('-m', '--manifest', default='', type=str, help='Provide test configuration manifest')
parser_setup.add_argument('-p', '--prefix', default='', type=str, help='Provide container image prefix')
parser_setup.add_argument('-i', '--identity-file', default=identity_file_default,
@@ -1168,6 +1176,11 @@
help='Cleanup XOS containers')
parser_cleanup.add_argument('-r', '--server', default=cord_test_server_address, type=str,
help='ip:port address for cord test server to cleanup')
+ parser_cleanup.add_argument('-e', '--test-controller', default='', type=str,
+ help='External test controller ip for Onos and/or radius server. '
+ 'Eg: 10.0.0.2/10.0.0.3 to specify ONOS and Radius ip')
+ parser_cleanup.add_argument('-onos-cord', '--onos-cord', default='', type=str,
+ help='Specify config location for ONOS cord instance when running on podd to restore')
parser_cleanup.add_argument('-m', '--manifest', default='', type=str, help='Provide test manifest')
parser_cleanup.set_defaults(func=cleanupTests)