SIMS = simulators.SIMS
HONEYNODE_OK_START_MSG = 'Netconf SSH endpoint started successfully at 0.0.0.0'
-KARAF_OK_START_MSG = "Blueprint container for bundle org.opendaylight.netconf.restconf.* was successfully created"
+LIGHTYNODE_OK_START_MSG = 'Data tree change listeners registered'
+KARAF_OK_START_MSG = "Transportpce controller started"
LIGHTY_OK_START_MSG = re.escape("lighty.io and RESTCONF-NETCONF started")
ODL_LOGIN = 'admin'
RESTCONF_PATH_PREFIX = {'rfc8040': '/rests',
'draft-bierman02': '/restconf'}
-if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True':
- RESTCONF_PATH_PREFIX['rfc8040'] = '/restconf'
if 'USE_ODL_RESTCONF_VERSION' in os.environ:
RESTCONF_VERSION = os.environ['USE_ODL_RESTCONF_VERSION']
#
+def start_honeynode(log_file: str, sim):
+ executable = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ '..', '..', 'honeynode', sim[1], 'honeynode-simulator', 'honeycomb-tpce')
+ sample_directory = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ '..', '..', 'sample_configs', 'openroadm', sim[1])
+ if os.path.isfile(executable):
+ with open(log_file, 'w', encoding='utf-8') as outfile:
+ return subprocess.Popen(
+ [executable, SIMS[sim]['port'], os.path.join(sample_directory, SIMS[sim]['configfile'])],
+ stdout=outfile, stderr=outfile)
+ return None
+
+
+def start_lightynode(log_file: str, sim):
+ executable = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ '..', '..', 'lightynode', 'lightynode-openroadm-device', 'start-device.sh')
+ sample_directory = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ '..', '..', 'sample_configs', 'openroadm', sim[1])
+ if os.path.isfile(executable):
+ with open(log_file, 'w', encoding='utf-8') as outfile:
+ return subprocess.Popen(
+ [executable, "-v" + sim[1], "-p" + SIMS[sim]['port'], "-f" + os.path.join(sample_directory,
+ SIMS[sim]['configfile'])],
+ stdout=outfile, stderr=outfile)
+ return None
+
+
def start_sims(sims_list):
+ if 'USE_SIMS' in os.environ:
+ sims_to_use = os.environ['USE_SIMS']
+ print(os.environ['USE_SIMS'] + ' ' + sims_to_use)
+ else:
+ sims_to_use = 'honeynode'
+ if sims_to_use == 'None':
+ return None
+ if sims_to_use == 'lightynode':
+ start_msg = LIGHTYNODE_OK_START_MSG
+ start_method = start_lightynode
+ print("lightynode used")
+ else:
+ start_msg = HONEYNODE_OK_START_MSG
+ start_method = start_honeynode
for sim in sims_list:
print('starting simulator ' + sim[0] + ' in OpenROADM device version ' + sim[1] + '...')
log_file = os.path.join(SIM_LOG_DIRECTORY, SIMS[sim]['logfile'])
- process = start_honeynode(log_file, sim)
- if wait_until_log_contains(log_file, HONEYNODE_OK_START_MSG, 100):
+ process = start_method(log_file, sim)
+ if wait_until_log_contains(log_file, start_msg, 100):
print('simulator for ' + sim[0] + ' started')
else:
print('simulator for ' + sim[0] + ' failed to start')
def start_tpce():
+ if 'NO_ODL_STARTUP' in os.environ:
+ print('No OpenDaylight instance to start!')
+ return []
print('starting OpenDaylight...')
if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True':
process = start_lighty()
else:
process = start_karaf()
start_msg = KARAF_OK_START_MSG
- if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=300):
+ if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100):
print('OpenDaylight started !')
else:
print('OpenDaylight failed to start !')
executable = os.path.join(
os.path.dirname(os.path.realpath(__file__)),
'..', '..', '..', KARAF_INSTALLDIR, 'target', 'assembly', 'bin', 'client')
- return subprocess.run([executable],
+# FIXME: https://jira.opendaylight.org/browse/TRNSPRTPCE-701
+# -b option needed below because of Karaf client bug reporte in the JIRA ticket mentioned above
+ return subprocess.run([executable, '-b'],
input='feature:install ' + feature_name + '\n feature:list | grep '
+ feature_name + ' \n logout \n',
universal_newlines=True, check=False)
process.send_signal(signal.SIGINT)
-def start_honeynode(log_file: str, sim):
- executable = os.path.join(os.path.dirname(os.path.realpath(__file__)),
- '..', '..', 'honeynode', sim[1], 'honeynode-simulator', 'honeycomb-tpce')
- sample_directory = os.path.join(os.path.dirname(os.path.realpath(__file__)),
- '..', '..', 'sample_configs', 'openroadm', sim[1])
- if os.path.isfile(executable):
- with open(log_file, 'w', encoding='utf-8') as outfile:
- return subprocess.Popen(
- [executable, SIMS[sim]['port'], os.path.join(sample_directory, SIMS[sim]['configfile'])],
- stdout=outfile, stderr=outfile)
- return None
-
-
def wait_until_log_contains(log_file, regexp, time_to_wait=60):
# pylint: disable=lost-exception
# pylint: disable=consider-using-with