opsicle 0.4.0 → 0.4.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.
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