blob: 5410c3236e72ee2ac9f4e9f27368cacb0cacedd6 [file] [log] [blame]
"""
Methods related to application interaction
"""
def __init__( self ):
self.ip = '127.0.0.1'
def activate( apps, nodeToActivateFrom=0 ):
"""
Activate specified applications from node specified
Ex) apps = ['metrics', 'fwd']
nodeToActivateFrom = range( 0, nodes )
"""
if isinstance( apps, ( int, basestring ) ):
main.log.error( 'Please pass in a list of strings for args' )
return main.FALSE
if not isinstance( nodeToActivateFrom, ( int ) ) or \
nodeToActivateFrom < 0:
main.log.error( 'Incorrect node specified' )
return main.FALSE
# TODO: Start log capture and listen for exceptions
# and errors. Also investigate possible keywords
# to listen for when activating applications
for app in apps:
# Check if app str in appList is in the main scope
# definition main.appList
if app not in main.appList:
main.log.error( 'Invalid app name given' )
return main.FALSE
try:
# NOTE: assumes node 1 is always activating application
appOutput = main.CLIs[nodeToActivateFrom].activateApp(
main.appList[app] )
except KeyError:
main.log.error( 'There was an error with the key '+
str(app) + '. Check the appList dictionary' )
return main.FALSE
except Exception:
main.log.error( 'Uncaught exception error while ' +
'activating applications: ' + str(app) )
return main.FALSE
return main.TRUE
def deactivate( apps, nodeToDeactivateFrom=0 ):
"""
Deactivate specified applications from node specified
"""
main.log.report( 'deactivate implment me' )
def isAppInstallSuccess():
"""
Check the app list across clusters to determine
that apps have been installed successfully
"""
main.log.report( 'isAppInstallSuccess implement me' )