UNPKG

@lpezet/hpcc-cluster

Version:
45 lines (40 loc) 1.45 kB
const Promises = require('../promises'); ModClass = function( pHpccCluster, pLogger, pUtils, pCloudClient ) { pHpccCluster.mod( 'resume', this, this.handle ); this.mUtils = pUtils; this.mCloudClient = pCloudClient; this.mRoot = pHpccCluster; this.mLogger = pLogger; } ModClass.prototype.handle = function( pConfig, pParameters ) { var that = this; try { var oGetAllEC2InstanceIds = function() { return that.mCloudClient.get_all_ec2_instance_ids_from_cluster( pConfig.Cluster.Name ); }; var oStartInstances = function( pInstanceIds ) { var oEc2InstancesParams = { InstanceIds: pInstanceIds, DryRun: pConfig.DryRun }; that.mLogger.debug('About to start instances: %s', pInstanceIds); console.log('About to start instances: %s', pInstanceIds); return that.mCloudClient.start_instances_to_completion( oEc2InstancesParams ); }; var oRefreshState = function( pData ) { return new Promise( function( resolve, reject ) { var ret = function() { that.mLogger.debug('Instances %s now running.', pData); console.log('Instances running.'); resolve( pData ); } that.mRoot.refresh_state( pConfig ).then( ret, ret ); // refresh state, ignore error when saving state }); } var oSequence = [ oGetAllEC2InstanceIds, oStartInstances, oRefreshState ]; return Promises.seq( oSequence, {} ); } catch( e ) { return Promise.reject( e ); } }; exports = module.exports = ModClass;