Exemple #1
0
		}).then(function(SecretAccessKey) {

			ec2 = AWS.createEC2Client(AccessKeyId, SecretAccessKey);

			ec2.version = "2012-07-20";

			function prepare() {
				return findRunningInstance().then(function(hostname) {
					return ensureInstanceTags().then(function() {
						return deploy(hostname);
					});
				});
			}

			if (pm.context.deploymentDescriptor.has(["config", "github.com/sourcemint/sdk-aws/0", "InstanceId"])) {
				// TODO: If `options.bore` is set call `ensureSecurityGroup()` to ensure our public IP has access.
				return prepare();
			} else {
				return ensureSSHKey().then(function() {
					return ensureSecurityGroup().then(function() {
						return createInstance().then(prepare);
					});
				});
			}
		});
Exemple #2
0
//amazon helper

var OperationHelper = require('./lib/apac').OperationHelper;
var opHelper = new OperationHelper({
	awsId: 'AKIAIAWX2JJWY7VX4UNQ',
	awsSecret: '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',
	assocId: '4778-2896-4669'
	});
    
var app = module.exports = express.createServer(),
	mongoose = require( 'mongoose' ); //MongoDB integration

//AWS load
var AWS = require('aws-lib');

var ec2 = AWS.createEC2Client("AKIAI3BFGQFNAIKYF3OQ", 'HABhz96nwwaweJYIYpAjkzmDoAaJO+8XkP55Q1CY');


var stripeApiKey = "";
var stripeApiKeyTesting = "..."
var stripe = require('stripe')(stripeApiKey);

// Configuration
app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser());
  app.use(express.session({secret: '1234567890QWERTY',maxAge: 3600000}));
  // Initialize Passport!  Also use passport.session() middleware, to support
Exemple #3
0
var _ = require('underscore');

var lconfig = require('lconfig');
var logger = require('logger').logger('dawg-aws');

if (!lconfig.ec2) {
  logger.error('You must set ec2.accessKeyId and ec2.secretKey in ' +
    'config.json.');

  process.exit(1);
}

var cloudwatch = aws.createCWClient(lconfig.ec2.accessKeyId,
  lconfig.ec2.secretKey, { version: '2010-08-01' });

var ec2 = aws.createEC2Client(lconfig.ec2.accessKeyId,
  lconfig.ec2.secretKey, { version: '2012-07-20' });

exports.estimatedCharges = function (cb) {
  cloudwatch.call('GetMetricStatistics', {
    'Dimensions.member.1.Name': 'Currency',
    'Dimensions.member.1.Value': 'USD',
    'Namespace': 'AWS/Billing',
    'MetricName': 'EstimatedCharges',
    'Period': 60 * 60 * 6,
    'StartTime': new Date(Date.now() - 60 * 60 * 24 * 1000).toISOString(),
    'EndTime': new Date().toISOString(),
    'Statistics.member.1': 'Maximum',
    'Unit': 'None'
  }, function (err, res) {
    if (err || !res ||
      !res.GetMetricStatisticsResult ||
Exemple #4
0
var aws = require("aws-lib");

ec2 = aws.createEC2Client(yourAccessKeyId, yourSecretAccessKey);

ec2.call("DescribeInstances", {}, function(result) {
  console.log(JSON.stringify(result));
})
Exemple #5
0
function allocateClient(endpoint) {
  return aws.createEC2Client(process.env['AWS_ID'], process.env['AWS_SECRET'], {
    version: '2011-12-15',
    host: endpoint
  });
}
Exemple #6
0
module.exports = function (awsKey, awsSecretKey) {
    var ec2 = aws.createEC2Client(awsKey, awsSecretKey);
    //the api version that this library defaults to is ancient and doesn't support things like tagging
    //so let's specify a more recent version
    ec2.version = '2011-12-15';


    function launchOnDemandInstances(params, callback) {
        var options = {
            'ImageId':params.ami,
            'MinCount':1,
            'MaxCount':params.numToLaunch,
            'Placement.AvailabilityZone':params.awsZone,
            'InstanceType':params.instanceType
        };
        //specify the security groups to launch in
        for (var i = 0; i < params.securityGroups.length; i++) {
            options['SecurityGroup.' + (i + 1)] = params.securityGroups[i];
        }
        ec2.call('RunInstances', options, function (err, response) {
            //make sure we have an instance set in the response and return that

            if (!response.instancesSet) {
                err = 'Failure launching instance(s): ' + err;
            }
            else {
                response = response.instancesSet;
            }

            callback(err, response);
        });

    }

    function launchSpotInstances(params, callback) {
        var options = {
            'SpotPrice':params.spotPrice,
            'InstanceCount':params.numToLaunch,
            'LaunchSpecification.ImageId':params.ami,
            'LaunchSpecification.InstanceType':params.instanceType,
            'LaunchSpecification.Placement.AvailabilityZone':params.awsZone
        };
        //specify the security groups to launch in
        for (var i = 0; i < params.securityGroups.length; i++) {
            options['LaunchSpecification.SecurityGroup.' + (i + 1)] = params.securityGroups[i];
        }

        ec2.call('RequestSpotInstances', options, function (err, response) {
            //make sure we have a valid state and return the response
            if (!response.spotInstanceRequestSet) {
                err = 'Failed to issue spot instance request \n ' + err;
            }
            else {
                response = response.spotInstanceRequestSet.item;
                if (response.state === 'cancelled' || response.state === 'failed') {
                    err = ' error issue spot instance request fault code is: ' + response.fault;
                }
            }
            callback(err, response);
        });

    }

    function getInstances(filters, callback) {
        ec2.call('DescribeInstances', filters, function (err, response) {
            var instances = [],
                reservationSet;
            try {
                reservationSet = response.reservationSet.item;
                for (var i = 0; i < reservationSet.length; i++) {
                    var instancesSet = reservationSet[i].instancesSet.item;
                    if (instancesSet instanceof Array) {
                        instances = instances.concat(instancesSet);
                    }
                    else {
                        instances.push(instancesSet);
                    }

                }
            }
            catch (e) {
                err = 'No instances found:  ' + e + ' - ' + err;
                instances = response;
            }
            callback(err, instances);
        });
    }

    function getInstanceDescriptionFromPrivateIp(privateIp, callback) {
        ec2.call('DescribeInstances', {'Filter.1.Name':'private-ip-address', 'Filter.1.Value':privateIp}, function (err, response) {
            processInstanceDescription(err, response, callback);
        });
    }

    function getInstanceDescriptionFromId(instanceId, callback) {
        ec2.call('DescribeInstances', {'Filter.1.Name':'instance-id', 'Filter.1.Value':instanceId}, function (err, response) {
            processInstanceDescription(err, response, callback);
        });
    }


    function describeSpotInstanceRequest(requestId, callback) {
        ec2.call('DescribeSpotInstanceRequests', {'Filter.1.Name':'spot-instance-request-id', 'Filter.1.Value':requestId}, function (err, response) {

            if (!response.spotInstanceRequestSet) {
                err = ' Failed to find spot instance request: ' + requestId + ' ' + err;
            }
            else {
                response = response.spotInstanceRequestSet.item;
            }
            callback(err, response);
        });
    }

    function terminateEc2Instance(instanceId, callback) {
        ec2.call('TerminateInstances', {'InstanceId.1':instanceId}, function (err, response) {

            var result;
            try {
                result = response.instancesSet.item.currentState.name;
            }
            catch (e) {
                err = 'Failure terminating instance: ' + instanceId + ' ' + err;
            }
            if (!err && result !== 'shutting-down') {
                err = 'Instance is not terminating ';
            }
            callback(err, response);

        });
    }

    function cancelSpotRequest(requestId, callback) {
        ec2.call('CancelSpotInstanceRequests', {'SpotInstanceRequestId.1':requestId}, function (err, response) {
            if (!response.spotInstanceRequestSet) {
                err = 'Failed to cancel spot request: ' + requestId + ' ' + err;
            }
            else {
                response = response.spotInstanceRequestSet.item;
            }
            callback(err, response);
        });
    }

    return {
        launchOnDemandInstances:launchOnDemandInstances,
        launchSpotInstances:launchSpotInstances,
        getInstanceDescriptionFromPrivateIp:getInstanceDescriptionFromPrivateIp,
        getInstanceDescriptionFromId:getInstanceDescriptionFromId,
        getInstances:getInstances,
        describeSpotInstanceRequest:describeSpotInstanceRequest,
        terminateEc2Instance:terminateEc2Instance,
        cancelSpotRequest:cancelSpotRequest
    };
};
Exemple #7
0
password: String, 
first: String, 
last: String,
email: String,
roles: [String],
shared: [{category: String, organisation: String, quantity: String}]
});

var UserModel = mongoose.model("UserModel", UserSchema);


//amazon start
var util = require('util');
var aws = require("aws-lib");

ec2 = aws.createEC2Client("AKIAIPJMAQNDYSJYRVUA", "oItVCSoe5LqKTKQBfysUij/LonsXF+BkRFEIyRGX");
var prodAdv = aws.createProdAdvClient("AKIAIPJMAQNDYSJYRVUA", "oItVCSoe5LqKTKQBfysUij/LonsXF+BkRFEIyRGX", "cs5-20");

var options = {SearchIndex: "Books", Keywords: "Javascript", ResponseGroup: "ItemAttributes,Offers,Images"};

app.get('/books', function (req, res) {
    console.log(req);
prodAdv.call("ItemSearch", options, function(err, result) {
  console.log(result);
 
  res.json(result);
});
});
//amazon end

//ebay start
Exemple #8
0
function createClient(opts) {
  opts = opts || {}
  var key = opts.key || process.env['AWS_KEY']
  var secret = opts.key || process.env['AWS_SECRET']
  var ec2 = aws.createEC2Client(key, secret, {
    host: opts.host || "ec2.us-east-1.amazonaws.com"
  })

  return {
    describeInstances: describeInstances,
    launchInstances: launchInstances,
    terminateInstances: terminateInstances,
    instanceStatus: instanceStatus,
    associateAddress: associateAddress
  }

  function describeInstances(ids, cb) {
    var params = {}
    ids.forEach(function(each, i) {
      params['InstanceId.' + (i+1)] = each
    })
    ec2.call("DescribeInstances", params, function(err, res) {
      if (err) return cb(err)
      cb(null, utils.mapDescribeInstancesResponse(res))
    })
  }

  function instanceStatus(ids, cb) {
    var params = {}
    ids.forEach(function(each, i) {
      params['InstanceId.' + (i+1)] = each
    })
    ec2.call("DescribeInstanceStatus", params, function(err, res) {
      if (err) return cb(err)
      cb(null, utils.mapInstanceStatusResponse(res))
    })
  }

  function launchInstances(opts, cb) {
    var params = {
      'ImageId' : opts.imageId,
      'MinCount': opts.minCount || 1,
      'MaxCount': opts.maxCount || opts.minCount || 1
    }
    if (opts.securityGroup) params['SecurityGroup'] = opts.securityGroup
    if (opts.instanceType) params['InstanceType'] = opts.instanceType
    if (opts.keyName) params['KeyName'] = opts.keyName

    ec2.call("RunInstances", params, function(err, data) {
      if (err) return cb(err)
      cb(null, utils.mapLaunchInstancesResponse(data))
    })
  }

  function terminateInstances(ids, cb) {
    var params = {}
    ids.forEach(function(each, i) {
      params['InstanceId.' + (i+1)] = each
    })
    ec2.call("TerminateInstances", params, function(err, res) {
      if (err) return cb(err)
      cb(null, utils.mapTerminateInstancesResponse(res))
    })
  }

  function associateAddress(opts, cb) {
    var params = {
      'PublicIp' : opts.publicIP,
      'InstanceId' : opts.instanceId,
      // 'AllowReassociation' : true
    }
    ec2.call("AssociateAddress", params, function(err, data){
      if(err) return cb(err)
      cb(null, utils.mapAssociateAddressResponse(data))
    })
  }
}
Exemple #9
0
var aws = require("aws-lib");

ec2 = aws.createEC2Client('AKIAJTKL77XY7O3EJSLQ', 'e0pi8MtHDCs4m+0/QGBemCCYQ/nCoyFfTO+c//5v');

ec2.call("DescribeInstances", {}, function(err, result) {
  console.log(JSON.stringify(result));
})
Exemple #10
0
  return function(cb) {

    if (!config.accessKeyId) throw new Error('config missing accessKeyId')
    if (!config.secretAccessKey) throw new Error('config missing secretAccessKey')
    if (typeof cb != 'function') throw new Error('missing callback')

    var ec2 = aws.createEC2Client(
          config.accessKeyId,
          config.secretAccessKey,
          { version: '2014-05-01' }
        )

    ec2.call('DescribeInstances', {}, function(err, result) {
      if (err) return cb(err, [])

      cb(null, filter(getInstancesFromResult()))

      function getInstancesFromResult() {
        var instances = []
        result.reservationSet.item.forEach(function(instance) {
          if (Array.isArray(instance.instancesSet.item)) {
            instance.instancesSet.item.forEach(function(item) {
              instances.push(item)
            })
          } else {
            instances.push(instance.instancesSet.item)
          }
        })
        return instances
      }

      function filter(instances) {
        return instances.map(function(instance) {
          return {
            id: instance.instanceId,
            type: instance.instanceType,
            ipAddress: instance.ipAddress,
            privateIpAddress: instance.privateIpAddress,
            tags: getTags(instance),
            online: instance.instanceState.name === 'running'
          }
        })
      }

      function getTags(instance) {
        var tags = {}
        var tagSet = getTagSet(instance)
        tagSet.forEach(function(tag) {
          if (typeof tag.value == 'string') {
            tags[tag.key.toLowerCase()] = tag.value.toLowerCase()
          }
          else {
            tags[tag.key.toLowerCase()] = ''
          }
        })
        return tags
      }

      function getTagSet(instance) {
        if (!instance.tagSet || !instance.tagSet.item) return []
        var item = instance.tagSet.item
        return Array.isArray(item) ? item : [ item ]
      }

    })
  }
 _(regions).each(function(region) {
     clients[region] = aws.createEC2Client(options.awskey, options.awssecret, 
       {version: '2012-03-01', host: 'ec2.' + region + '.amazonaws.com'});
 });
Exemple #12
0
server.get('/instance_debug', function(req, res) {
	ec2 = awslib.createEC2Client(key,secretKey);
	ec2.call("DescribeInstances", {}, function(result) {
		res.send(JSON.stringify(result));
	});
});
Exemple #13
0
}

try {
    var config = JSON.parse(fs.readFileSync(argv.config, 'utf8'));
} catch(e) {
    console.warn('Invalid JSON config file: ' + argv.config);
    throw e;
}

if (!config.awsKey || !config.awsSecret) {
    console.error('Missing awsKey and/or awsSecret in config file.')
    process.exit(1);
}

// TODO: Determine how to support multiple AWS regions.
var ec2 = aws.createEC2Client(config.awsKey, config.awsSecret, {version: '2012-03-01'});

var swarm = {};

// List
swarm.list = function() {
    Step(function() {
        loadTags(this);
    }, function(err, tags) {
        if (err) throw err;
        var swarms = _(tags).chain()
            .filter(function(tag) { return tag.key === 'Swarm' })
            .pluck('value')
            .uniq().value();
        console.log(swarms.join('\n'));
    });
Exemple #14
0
 _(regions).each(function(region) {
     clients[region] = aws.createEC2Client(config.awsKey, config.awsSecret, 
       {version: '2012-03-01', host: 'ec2.' + region + '.amazonaws.com'});
 });
Exemple #15
0
exports.connect = function(options, fn){
  // XXX: need better way to pass around global variables.
  this.client = aws.createEC2Client(options.key, options.secret, { version: '2013-02-01' });
  if (fn) fn();
}
Exemple #16
0
    options[k] = argv[k] || options[k];
});

// Allow a single job to be passed in as cli args
if (argv.instanceid) {
    var job = {};
    _(['instanceid', 'pool', 'device', 'description']).each(function(key) {
        if (!_(_(argv).keys()).include(key)) throw new Error('Option ' + key + ' is required when running a single job.');
        job[key] = argv[key];
    });
    options.jobs = [job];
}

// version 2010-08-31 supports the 'Filter' parameter.
ec2 = aws.createEC2Client(options.awskey, options.awssecret,
  {version: '2010-08-31', host: 'ec2.' + options.region + '.amazonaws.com'}
);

Step(function() {
    exec('wget -q -O - http://169.254.169.254/latest/meta-data/instance-id', this);
}, function(err, selfInstanceId) {
    if (err) throw err;
    var group = this.group();
    _.each(options.jobs, function(job) {
        job.instanceid = job.instanceid === 'self' ? selfInstanceId : job.instanceid;
        job.description = job.description + ' ' + job.device + ' ' + job.instanceid;
        var params = {};
        params['Filter.1.Name'] = 'attachment.device';
        params['Filter.1.Value.1'] = job.device;
        params['Filter.2.Name'] = 'attachment.instance-id';
        params['Filter.2.Value.1'] = job.instanceid;