UNPKG

2.08 kBtext/coffeescriptView Raw
1Configuration = require './configuration'
2_ = require('underscore')._
3
4Async = require 'async'
5
6prepareFilters = (name, value, sensitive) ->
7 if (_.isString(value) or _.isArray(value))
8 if (sensitive)
9 value = [
10 "\*" + value.toUpperCase() + "\*",
11 "\*" + value.toLowerCase() + "\*"
12 ]
13 else if (_.isString(value))
14 value = ["\*" + value + "\*"]
15
16 {"Filters": [{
17 "Name": name,
18 "Values": value
19 }]}
20
21#TODO: More than 100 instances
22getInstancesByParams = (Ec2, params, callback) ->
23 Ec2.describeInstances params, (err, data) ->
24 if (not data?)
25 callback(err)
26 else
27 callback null, _.reduceRight data.Reservations, (memo, reservation) ->
28 memo.concat(reservation.Instances)
29 , []
30
31getAllRecordSets = (Route53, callback) ->
32 Route53.listHostedZones {}, (err, hostedZones) ->
33 if (not hostedZones?)
34 callback(err)
35 else
36 Async.concat hostedZones.HostedZones, (hz, cb) ->
37 getAllRecordSetsAcc Route53, hz, [], null, null, cb
38 , callback
39
40getAllRecordSetsAcc = (Route53, hz, acc, recordName, recordType, callback) ->
41 if (recordName? and recordType?)
42 params = {"HostedZoneId": hz.Id, "StartRecordName": recordName, "StartRecordType": recordType}
43 else
44 params = {"HostedZoneId": hz.Id}
45
46 Route53.listResourceRecordSets params, (err, records) ->
47 if (not records?)
48 callback(err, [])
49 else
50 all = acc.concat records.ResourceRecordSets
51
52 if (records.IsTruncated)
53 getAllRecordSetsAcc(Route53, hz, all, records.NextRecordName, records.NextRecordType, callback)
54 else
55 callback(null, all)
56
57getLoadBalancersByNames = (Elb, names, callback) ->
58 params = {"LoadBalancerNames": names}
59
60 Elb.describeLoadBalancers params, (err, loadBalancers) ->
61 if (not loadBalancers?)
62 callback err
63 else
64 callback null, loadBalancers
65
66module.exports = {
67 prepareFilters: prepareFilters,
68 getInstancesByParams: getInstancesByParams,
69 getAllRecordSets: getAllRecordSets,
70 getLoadBalancersByNames: getLoadBalancersByNames
71}