opsicle 0.4.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZDhlY2I5Nzg3ZjU2OTMyOGZlMjgxMzM3ZjMzOGQ1YWE5MmNjNTZhNg==
5
+ data.tar.gz: !binary |-
6
+ ZjEyMTIwODVjOGQyM2E1ZTFlZjg3NzU5OGJkNTlmYThmMjA2NGNhMA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ OWRkNDRiMmUxMzdiMmE4MGUyY2JiNzc0ZDY3YzcyZjdlYmJmM2RlNGZmZDVi
10
+ MzQ4ZjdjMDFkMjQ4MTY4ODRkNWQ3YTE2NDMzMTQ2MDA2NTY5ZmIwZmQ1YTNj
11
+ ZWFjYTQxYmY3YTQ0ZjQ3MTA3NWUxYzcxM2Y5ZTQyZTk5OTIxYzQ=
12
+ data.tar.gz: !binary |-
13
+ MjAzZjJkYzFlNjEwYjQzMjczM2I0MGY3OGQ1ZjgxZGExN2NiMmFlZGE2NmVj
14
+ MGM3OWVlMjZlNmJiOTIyNjVhYTUyOWZlOTBkYTU0YjAxZmE0OTYzYjk2OTk2
15
+ YTIxMTE1ZTQ4ZGY4MGI0MWRkOThiZTY2YzI2MjU0NTFlZDc0MTY=
@@ -0,0 +1,22 @@
1
+ module Opsicle
2
+ class Instances
3
+
4
+ def initialize(client)
5
+ @client = client
6
+ end
7
+
8
+ def data
9
+ instances(reload: true)
10
+ end
11
+
12
+ def instances(options={})
13
+ # Only call the API again if you need to
14
+ @instances = nil if options[:reload]
15
+ @instances ||= @client.api_call('describe_instances',
16
+ :stack_id => @client.config.opsworks_config[:stack_id]
17
+ )[:instances]
18
+ end
19
+ private :instances
20
+
21
+ end
22
+ end
@@ -6,7 +6,9 @@ require "opsicle/monitor/translatable"
6
6
 
7
7
  require "opsicle/monitor/panels/header"
8
8
  require "opsicle/monitor/panels/deployments"
9
+ require "opsicle/monitor/panels/instances"
9
10
  require "opsicle/monitor/panels/help"
10
11
 
11
12
  require "opsicle/monitor/spy/dataspyable"
12
13
  require "opsicle/monitor/spy/deployments"
14
+ require "opsicle/monitor/spy/instances"
@@ -67,7 +67,8 @@ module Opsicle
67
67
  command = { 'q' => :stop,
68
68
  'h' => [:set_screen, :help],
69
69
  'b' => :open_opsworks_browser,
70
- 'd' => [:set_screen, :deployments] }[key]
70
+ 'd' => [:set_screen, :deployments],
71
+ 'i' => [:set_screen, :instances], }[key]
71
72
  command ||= :invalid_input
72
73
 
73
74
  send *command unless command == :invalid_input
@@ -25,7 +25,7 @@ module Opsicle
25
25
  [
26
26
  [2, translate[:program], nil],
27
27
  [2, -> {
28
- [:deployments, :help].map do |e|
28
+ [:deployments, :instances, :help].map do |e|
29
29
  translate[:menu][(e == @panel_main ? :active : :inactive)][e]
30
30
  end.join(" ")
31
31
  }, nil],
@@ -18,6 +18,9 @@ module Opsicle
18
18
  [
19
19
  [1, "'d' : Show deployment list on this OpsWorks stack", nil],
20
20
  ],
21
+ [
22
+ [1, "'i' : Show instance list on this OpsWorks stack", nil],
23
+ ],
21
24
  [
22
25
  [1, "'b' : Open OpsWorks screen for this stack in your browser", nil],
23
26
  ],
@@ -0,0 +1,42 @@
1
+ module Opsicle
2
+ module Monitor
3
+ module Panels
4
+ class Instances < Monitor::Panel
5
+
6
+ def initialize(height, width, top, left)
7
+ super(height, width, top, left, structure(height), :divider_r => " ")
8
+
9
+ @spies[:instances] = Monitor::Spy::Instances.new
10
+ end
11
+
12
+ def structure(height)
13
+ # [
14
+ # [relative_column_width, data_left, data_right]
15
+ # ]
16
+ s = [
17
+ [ # table header slots
18
+ [1, translate[:heading][:ec2_instance_id], nil],
19
+ [1, translate[:heading][:hostname], nil],
20
+ [1, translate[:heading][:status], nil],
21
+ [1, translate[:heading][:zone], nil],
22
+ [1, translate[:heading][:ip], nil]
23
+ ],
24
+ ]
25
+
26
+ (0...(height - 1)).each do |i|
27
+ s << [ # table row slots
28
+ [1, -> { @spies[:instances][i][:ec2_instance_id] }, nil],
29
+ [1, -> { @spies[:instances][i][:hostname] }, nil],
30
+ [1, -> { @spies[:instances][i][:status] }, nil],
31
+ [1, -> { @spies[:instances][i][:zone] }, nil],
32
+ [1, -> { @spies[:instances][i][:ip] }, nil]
33
+ ]
34
+ end
35
+
36
+ s
37
+ end
38
+
39
+ end
40
+ end
41
+ end
42
+ end
@@ -63,6 +63,8 @@ module Opsicle
63
63
  @panels[:main] = case pname
64
64
  when :deployments
65
65
  Monitor::Panels::Deployments.new((@height - 4), @width, 4, 0)
66
+ when :instances
67
+ Monitor::Panels::Instances.new((@height - 4), @width, 4, 0)
66
68
  when :help
67
69
  Monitor::Panels::Help.new((@height - 4), @width, 4, 0)
68
70
  end
@@ -0,0 +1,35 @@
1
+ require 'opsicle/instances'
2
+
3
+ module Opsicle
4
+ module Monitor
5
+ module Spy
6
+ class Instances
7
+
8
+ include Spy::Dataspyable
9
+
10
+ def initialize
11
+ @instances = Opsicle::Instances.new(Opsicle::Monitor::App.client)
12
+ refresh
13
+ end
14
+
15
+ def refresh
16
+ h = []
17
+
18
+ @instances.data.each do |instance|
19
+ # Massage the API data for our uses
20
+ h << {
21
+ :ec2_instance_id => instance[:ec2_instance_id],
22
+ :hostname => instance[:hostname],
23
+ :status => instance[:status],
24
+ :zone => instance[:availability_zone],
25
+ :ip => instance[:elastic_ip] || instance[:public_ip]
26
+ }
27
+ end
28
+
29
+ @data = h
30
+ end
31
+
32
+ end
33
+ end
34
+ end
35
+ end
@@ -24,7 +24,11 @@ module Opsicle
24
24
  created_at: "STARTED",
25
25
  completed_at: "COMPLETED",
26
26
  user: "USER",
27
- command: "COMMAND"
27
+ command: "COMMAND",
28
+ hostname: "HOSTNAME",
29
+ zone: "AZ",
30
+ ip: "IP ADDRESS",
31
+ ec2_instance_id: "EC2 INSTANCE ID"
28
32
  }
29
33
  }
30
34
  end
@@ -1,3 +1,3 @@
1
1
  module Opsicle
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.2"
3
3
  end
data/opsicle.gemspec CHANGED
@@ -19,14 +19,14 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency "aws-sdk", "~> 1.30"
22
- spec.add_dependency "gli"
23
- spec.add_dependency "highline"
24
- spec.add_dependency "terminal-table"
25
- spec.add_dependency "minitar"
22
+ spec.add_dependency "gli", "~> 2.9"
23
+ spec.add_dependency "highline", "~> 1.6"
24
+ spec.add_dependency "terminal-table", "~> 1.4"
25
+ spec.add_dependency "minitar", "~> 0.5"
26
26
 
27
27
  spec.add_development_dependency "bundler", "~> 1.3"
28
- spec.add_development_dependency "rake"
29
- spec.add_development_dependency "rspec", "3.0.0.beta1" # Pinning to beta1 until https://github.com/guard/guard-rspec/pull/250 is closed
30
- spec.add_development_dependency "guard"
31
- spec.add_development_dependency "guard-rspec"
28
+ spec.add_development_dependency "rake", "~> 10.1"
29
+ spec.add_development_dependency "rspec", "~> 3.0.0.beta2"
30
+ spec.add_development_dependency "guard", "~> 2.5"
31
+ spec.add_development_dependency "guard-rspec", "~> 4.2"
32
32
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opsicle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
5
- prerelease:
4
+ version: 0.4.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Andy Fleener
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-03-21 00:00:00.000000000 Z
11
+ date: 2014-03-26 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: aws-sdk
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,71 +27,62 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: gli
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: '0'
33
+ version: '2.9'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: '0'
40
+ version: '2.9'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: highline
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ~>
52
46
  - !ruby/object:Gem::Version
53
- version: '0'
47
+ version: '1.6'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ~>
60
53
  - !ruby/object:Gem::Version
61
- version: '0'
54
+ version: '1.6'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: terminal-table
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ~>
68
60
  - !ruby/object:Gem::Version
69
- version: '0'
61
+ version: '1.4'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ~>
76
67
  - !ruby/object:Gem::Version
77
- version: '0'
68
+ version: '1.4'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: minitar
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ~>
84
74
  - !ruby/object:Gem::Version
85
- version: '0'
75
+ version: '0.5'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ~>
92
81
  - !ruby/object:Gem::Version
93
- version: '0'
82
+ version: '0.5'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: bundler
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
@@ -110,67 +97,59 @@ dependencies:
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rake
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - ~>
116
102
  - !ruby/object:Gem::Version
117
- version: '0'
103
+ version: '10.1'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - ~>
124
109
  - !ruby/object:Gem::Version
125
- version: '0'
110
+ version: '10.1'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: rspec
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - '='
115
+ - - ~>
132
116
  - !ruby/object:Gem::Version
133
- version: 3.0.0.beta1
117
+ version: 3.0.0.beta2
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - '='
122
+ - - ~>
140
123
  - !ruby/object:Gem::Version
141
- version: 3.0.0.beta1
124
+ version: 3.0.0.beta2
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: guard
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ! '>='
129
+ - - ~>
148
130
  - !ruby/object:Gem::Version
149
- version: '0'
131
+ version: '2.5'
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ! '>='
136
+ - - ~>
156
137
  - !ruby/object:Gem::Version
157
- version: '0'
138
+ version: '2.5'
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: guard-rspec
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
- - - ! '>='
143
+ - - ~>
164
144
  - !ruby/object:Gem::Version
165
- version: '0'
145
+ version: '4.2'
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
- - - ! '>='
150
+ - - ~>
172
151
  - !ruby/object:Gem::Version
173
- version: '0'
152
+ version: '4.2'
174
153
  description: CLI for the opsworks platform
175
154
  email:
176
155
  - andrew.fleener@sportngin.com
@@ -201,15 +180,18 @@ files:
201
180
  - lib/opsicle/config.rb
202
181
  - lib/opsicle/deployment.rb
203
182
  - lib/opsicle/deployments.rb
183
+ - lib/opsicle/instances.rb
204
184
  - lib/opsicle/monitor.rb
205
185
  - lib/opsicle/monitor/app.rb
206
186
  - lib/opsicle/monitor/panel.rb
207
187
  - lib/opsicle/monitor/panels/deployments.rb
208
188
  - lib/opsicle/monitor/panels/header.rb
209
189
  - lib/opsicle/monitor/panels/help.rb
190
+ - lib/opsicle/monitor/panels/instances.rb
210
191
  - lib/opsicle/monitor/screen.rb
211
192
  - lib/opsicle/monitor/spy/dataspyable.rb
212
193
  - lib/opsicle/monitor/spy/deployments.rb
194
+ - lib/opsicle/monitor/spy/instances.rb
213
195
  - lib/opsicle/monitor/subpanel.rb
214
196
  - lib/opsicle/monitor/translatable.rb
215
197
  - lib/opsicle/output.rb
@@ -234,33 +216,26 @@ files:
234
216
  homepage: https://github.com/sportngin/opsicle
235
217
  licenses:
236
218
  - MIT
219
+ metadata: {}
237
220
  post_install_message:
238
221
  rdoc_options: []
239
222
  require_paths:
240
223
  - lib
241
224
  required_ruby_version: !ruby/object:Gem::Requirement
242
- none: false
243
225
  requirements:
244
226
  - - ! '>='
245
227
  - !ruby/object:Gem::Version
246
228
  version: '0'
247
- segments:
248
- - 0
249
- hash: -1300190123240828980
250
229
  required_rubygems_version: !ruby/object:Gem::Requirement
251
- none: false
252
230
  requirements:
253
231
  - - ! '>='
254
232
  - !ruby/object:Gem::Version
255
233
  version: '0'
256
- segments:
257
- - 0
258
- hash: -1300190123240828980
259
234
  requirements: []
260
235
  rubyforge_project:
261
- rubygems_version: 1.8.25
236
+ rubygems_version: 2.2.1
262
237
  signing_key:
263
- specification_version: 3
238
+ specification_version: 4
264
239
  summary: An opsworks specific abstraction on top of the aws sdk
265
240
  test_files:
266
241
  - spec/opsicle/client_spec.rb