awsquery 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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