awsquery 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/bin/awsquery +31 -2
  2. metadata +24 -9
data/bin/awsquery CHANGED
@@ -10,8 +10,30 @@ options = {
10
10
  :state => 'running',
11
11
  :verbose => false,
12
12
  :json => false,
13
+ :limit => false,
13
14
  }
14
15
 
16
+ module AwsOptions extend self
17
+ def access_key_id
18
+ ENV['ACCESS_KEY_ID'] || credentials['AWSAccessKeyId']
19
+ end
20
+
21
+ def secret_access_key
22
+ ENV['SECRET_ACCESS_KEY'] || credentials['AWSSecretKey']
23
+ end
24
+
25
+ def credentials
26
+ @credentials ||= load_credentials ENV['AWS_CREDENTIAL_FILE']
27
+ end
28
+
29
+ def load_credentials(filename)
30
+ File.read(filename).lines.inject({}) do |m, line|
31
+ k, v = line.chomp.split("=", 2)
32
+ m.tap { |m| m[k] = v }
33
+ end
34
+ end
35
+ end
36
+
15
37
  OptionParser.new do |opts|
16
38
  opts.banner = "Usage: awsquery.rb [options]"
17
39
  opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
@@ -23,12 +45,15 @@ OptionParser.new do |opts|
23
45
  opts.on("-j", "Output in JSON") do |j|
24
46
  options[:json] = j
25
47
  end
48
+ opts.on("-1", "Only return one result") do |l|
49
+ options[:limit] = l
50
+ end
26
51
  end.parse!
27
52
 
28
53
  compute = Fog::Compute.new(
29
54
  :provider => 'AWS',
30
- :aws_access_key_id => ENV['ACCESS_KEY_ID'],
31
- :aws_secret_access_key => ENV['SECRET_ACCESS_KEY']
55
+ :aws_access_key_id => AwsOptions.access_key_id,
56
+ :aws_secret_access_key => AwsOptions.secret_access_key
32
57
  )
33
58
 
34
59
  # apply basic filters
@@ -43,6 +68,10 @@ ARGV.each do |arg|
43
68
  servers.reject! { |s| !s.tags.key? key or s.tags[key] != value }
44
69
  end
45
70
 
71
+ if options[:limit]
72
+ servers = [servers.first]
73
+ end
74
+
46
75
  # output either json or lines
47
76
  if options[:json]
48
77
  jj servers
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awsquery
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-12 00:00:00.000000000 Z
12
+ date: 2012-07-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fog
16
- requirement: &70272187403920 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70272187403920
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: json
27
- requirement: &70272187402960 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70272187402960
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rubydns
38
- requirement: &70272187401980 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,7 +53,12 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70272187401980
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  description: A collection of tools for querying AWS hosts based on metadata and manipulating
48
63
  them
49
64
  email:
@@ -79,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
94
  version: '0'
80
95
  requirements: []
81
96
  rubyforge_project:
82
- rubygems_version: 1.8.17
97
+ rubygems_version: 1.8.23
83
98
  signing_key:
84
99
  specification_version: 3
85
100
  summary: Query AWS hosts based on metadata