Merge "Exception handling for FUNCnetCfg + fix some issues in FUNCintent Change-Id: I88fbc705cdbb4be6f63a7c243f4941f7d6b1ff89"
diff --git a/TestON/tests/FUNC/FUNCintent/dependencies/FuncIntentFunction.py b/TestON/tests/FUNC/FUNCintent/dependencies/FuncIntentFunction.py
index dbafffa..a596a01 100644
--- a/TestON/tests/FUNC/FUNCintent/dependencies/FuncIntentFunction.py
+++ b/TestON/tests/FUNC/FUNCintent/dependencies/FuncIntentFunction.py
@@ -1015,7 +1015,7 @@
testResult = main.FALSE
# Check Connectivity
- if utilities.retry( f=scapyCheckConnection, retValue=main.FALSE, args=( main, senderNames, recipientNames ) ):
+ if utilities.retry( f=scapyCheckConnection, retValue=main.FALSE, args=( main, senderNames, recipientNames ), attempts=3, sleep=5 ):
main.assertReturnString += 'Initial Ping Passed\n'
else:
main.assertReturnString += 'Initial Ping Failed\n'
diff --git a/TestON/tests/FUNC/FUNCnetCfg/FUNCnetCfg.py b/TestON/tests/FUNC/FUNCnetCfg/FUNCnetCfg.py
index 34bc72b..2c3622b 100644
--- a/TestON/tests/FUNC/FUNCnetCfg/FUNCnetCfg.py
+++ b/TestON/tests/FUNC/FUNCnetCfg/FUNCnetCfg.py
@@ -194,19 +194,18 @@
onosIsUp = main.TRUE
for i in range( main.numCtrls ):
- onosIsUp = onosIsUp and main.ONOSbench.isup( main.ONOSip[ i ] )
- if onosIsUp == main.TRUE:
- main.log.report( "ONOS instance is up and ready" )
- else:
- main.log.report( "ONOS instance may not be up, stop and " +
- "start ONOS again " )
- for i in range( main.numCtrls ):
+ isUp = main.ONOSbench.isup( main.ONOSip[ i ] )
+ onosIsUp = onosIsUp and isUp
+ if isUp == main.TRUE:
+ main.log.report( "ONOS instance {0} is up and ready".format( i + 1 ) )
+ else:
+ main.log.report( "ONOS instance {0} may not be up, stop and ".format( i + 1 ) +
+ "start ONOS again " )
stopResult = stopResult and \
main.ONOSbench.onosStop( main.ONOSip[ i ] )
- for i in range( main.numCtrls ):
startResult = startResult and \
main.ONOSbench.onosStart( main.ONOSip[ i ] )
- stepResult = onosIsUp and stopResult and startResult
+ stepResult = onosIsUp and stopResult and startResult
utilities.assert_equals( expect=main.TRUE,
actual=stepResult,
onpass="ONOS service is ready",
@@ -488,10 +487,13 @@
allowedDevices = [ "of:{}".format( str( i ).zfill( 16 ) ) for i in [ 1, 2, 4 ] ]
print allowedDevices
onosDevices = []
- for sw in json.loads( devices ):
- onosDevices.append( str( sw['id'] ) )
- onosDevices.sort()
- print onosDevices
+ try:
+ for sw in json.loads( devices ):
+ onosDevices.append( str( sw['id'] ) )
+ onosDevices.sort()
+ print onosDevices
+ except( TypeError, ValueError ):
+ main.log.error( "Problem loading devices" )
utilities.assert_equals( expect=allowedDevices,
actual=onosDevices,
onpass="Only allowed devices are in ONOS",
@@ -500,15 +502,19 @@
main.step( "Check device annotations" )
keys = [ 'name', 'owner', 'rackAddress' ]
- for sw in json.loads( devices ):
- if "of:0000000000000001" in sw['id']:
- s1Correct = True
- for k in keys:
- if str( sw.get( 'annotations', {} ).get( k ) ) != str( main.s1Json[k] ):
- s1Correct = False
- main.log.debug( "{} is wrong on s1".format( k ) )
- if not s1Correct:
- main.log.error( "Annotations for s1 are incorrect: {}".format( sw ) )
+ try:
+ for sw in json.loads( devices ):
+ if "of:0000000000000001" in sw['id']:
+ s1Correct = True
+ for k in keys:
+ if str( sw.get( 'annotations', {} ).get( k ) ) != str( main.s1Json[k] ):
+ s1Correct = False
+ main.log.debug( "{} is wrong on s1".format( k ) )
+ if not s1Correct:
+ main.log.error( "Annotations for s1 are incorrect: {}".format( sw ) )
+ except( TypeError, ValueError ):
+ main.log.error( "Problem loading devices" )
+ s1Correct = False
try:
stepResult = s1Correct
except NameError:
@@ -611,12 +617,15 @@
main.log.debug( main.ONOSrest1.pprint( devices ) )
allowedDevices = [ "of:{}".format( str( i ).zfill( 16 ) ) for i in [ 1, 2 ] ]
onosDevices = []
- for sw in json.loads( devices ):
- onosDevices.append( str( sw.get( 'id' ) ) )
- onosDevices.sort()
- failMsg = "ONOS devices doesn't match the list of allowed devices.\n"
- failMsg += "Expected devices: {}\nActual devices: {}".format( allowedDevices,
- onosDevices )
+ try:
+ for sw in json.loads( devices ):
+ onosDevices.append( str( sw.get( 'id' ) ) )
+ onosDevices.sort()
+ failMsg = "ONOS devices doesn't match the list of allowed devices.\n"
+ failMsg += "Expected devices: {}\nActual devices: {}".format( allowedDevices,
+ onosDevices )
+ except( TypeError, ValueError ):
+ main.log.error( "Problem loading devices" )
utilities.assert_equals( expect=allowedDevices,
actual=onosDevices,
onpass="Only allowed devices are in ONOS",
@@ -624,23 +633,27 @@
main.step( "Check device annotations" )
keys = [ 'name', 'owner', 'rackAddress' ]
- for sw in json.loads( devices ):
- if "of:0000000000000001" in sw.get( 'id' ):
- s1Correct = True
- for k in keys:
- if str( sw.get( 'annotations', {} ).get( k ) ) != str( main.s1Json[k] ):
- s1Correct = False
- main.log.debug( "{} is wrong on s1".format( k ) )
- if not s1Correct:
- main.log.error( "Annotations for s1 are incorrect: {}".format( sw ) )
- elif "of:0000000000000002" in sw['id']:
- s2Correct = True
- for k in keys:
- if str( sw.get( 'annotations', {} ).get( k ) ) != str( main.s2Json[k] ):
- s2Correct = False
- main.log.debug( "{} is wrong on s2".format( k ) )
- if not s2Correct:
- main.log.error( "Annotations for s2 are incorrect: {}".format( sw ) )
+ try:
+ for sw in json.loads( devices ):
+ if "of:0000000000000001" in sw.get( 'id' ):
+ s1Correct = True
+ for k in keys:
+ if str( sw.get( 'annotations', {} ).get( k ) ) != str( main.s1Json[k] ):
+ s1Correct = False
+ main.log.debug( "{} is wrong on s1".format( k ) )
+ if not s1Correct:
+ main.log.error( "Annotations for s1 are incorrect: {}".format( sw ) )
+ elif "of:0000000000000002" in sw['id']:
+ s2Correct = True
+ for k in keys:
+ if str( sw.get( 'annotations', {} ).get( k ) ) != str( main.s2Json[k] ):
+ s2Correct = False
+ main.log.debug( "{} is wrong on s2".format( k ) )
+ if not s2Correct:
+ main.log.error( "Annotations for s2 are incorrect: {}".format( sw ) )
+ except( TypeError, ValueError ):
+ main.log.error( "Problem loading devices" )
+ stepResult = False
try:
stepResult = s1Correct and s2Correct
except NameError: