| """ |
| 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' ) |
| |