proctor 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/.rspec +1 -0
  2. data/TODO +28 -0
  3. data/bin/proctor +55 -85
  4. data/bin/showlog +5 -0
  5. data/bin/showtime +5 -0
  6. data/lib/proctor/command/asset_list_cmd.rb +56 -0
  7. data/lib/proctor/{presenter/show.rb → command/asset_show_cmd.rb} +7 -2
  8. data/lib/proctor/command/file_cleanup_cmd.rb +81 -0
  9. data/lib/proctor/command/file_export_cmd.rb +79 -0
  10. data/lib/proctor/command/helpers/command.rb +27 -0
  11. data/lib/proctor/command/render_group_cmd.rb +39 -0
  12. data/lib/proctor/command/render_service_cmd.rb +34 -0
  13. data/lib/proctor/command/start_cmd.rb +70 -0
  14. data/lib/proctor/config/app_file.rb +54 -0
  15. data/lib/proctor/config/app_files.rb +50 -0
  16. data/lib/proctor/config/env.rb +35 -0
  17. data/lib/proctor/config/template_file.rb +41 -0
  18. data/lib/proctor/config/template_files.rb +39 -0
  19. data/lib/proctor/manager.rb +36 -3
  20. data/lib/proctor/managers.rb +38 -0
  21. data/lib/proctor/node.rb +26 -0
  22. data/lib/proctor/nodes.rb +38 -0
  23. data/lib/proctor/resource/erb.rb +95 -0
  24. data/lib/proctor/resource/lookup.rb +82 -0
  25. data/lib/proctor/service.rb +28 -3
  26. data/lib/proctor/services.rb +38 -0
  27. data/lib/proctor/util/helpers.rb +13 -0
  28. data/lib/proctor/util/version.rb +3 -0
  29. data/proctor.gemspec +2 -1
  30. data/proctor/Proctorfile +35 -34
  31. data/proctor/templates/foreman_default_g.erb +3 -0
  32. data/proctor/templates/monit_default_s.erb +3 -6
  33. data/proctor/templates/monit_faye_s.erb +3 -3
  34. data/proctor/templates/upstart_default_g.erb +1 -0
  35. data/proctor/templates/upstart_default_s.erb +1 -3
  36. data/proctor/templates/upstart_passenger_s.erb +3 -0
  37. data/spec/acceptance/asset_list_spec.rb +16 -0
  38. data/spec/acceptance/asset_show_spec.rb +16 -0
  39. data/spec/acceptance/file_cleanup_spec.rb +16 -0
  40. data/spec/acceptance/file_export_spec.rb +16 -0
  41. data/spec/acceptance/render_group_spec.rb +15 -0
  42. data/spec/acceptance/render_service_spec.rb +16 -0
  43. data/spec/acceptance/start_spec.rb +16 -0
  44. data/spec/spec_helper.rb +22 -0
  45. data/spec/unit/command/file_export_cmd_spec.rb +46 -0
  46. data/spec/unit/command/file_list_cmd_spec.rb +30 -0
  47. data/spec/unit/command/render_group_cmd_spec.rb +44 -0
  48. data/spec/unit/command/render_service_cmd_spec.rb +42 -0
  49. data/spec/unit/{app_file_spec.rb → config/app_file_spec.rb} +27 -7
  50. data/spec/unit/config/app_files_spec.rb +55 -0
  51. data/spec/unit/config/env_spec.rb +37 -0
  52. data/spec/unit/config/template_file_spec.rb +55 -0
  53. data/spec/unit/config/template_files_spec.rb +32 -0
  54. data/spec/unit/manager_spec.rb +30 -10
  55. data/spec/unit/managers_spec.rb +40 -0
  56. data/spec/unit/node_spec.rb +34 -0
  57. data/spec/unit/nodes_spec.rb +36 -0
  58. data/spec/unit/service_spec.rb +31 -10
  59. data/spec/unit/services_spec.rb +34 -0
  60. metadata +86 -31
  61. data/Proctorfile +0 -4
  62. data/lib/proctor/app_config.rb +0 -23
  63. data/lib/proctor/app_file.rb +0 -44
  64. data/lib/proctor/cmd_state.rb +0 -39
  65. data/lib/proctor/presenter/list.rb +0 -67
  66. data/lib/proctor/presenter/render.rb +0 -39
  67. data/lib/proctor/template.rb +0 -5
  68. data/lib/proctor/template_config.rb +0 -22
  69. data/lib/proctor/template_file.rb +0 -44
  70. data/lib/proctor/util.rb +0 -12
  71. data/lib/proctor/version.rb +0 -3
  72. data/proctor/templates/foreman_default_n.erb +0 -9
  73. data/proctor/templates/monit_web_s.erb +0 -0
  74. data/proctor/templates/upstart_default_n.erb +0 -0
  75. data/spec/acceptance/help_spec.rb +0 -36
  76. data/spec/acceptance/list_spec.rb +0 -17
  77. data/spec/unit/app_config_spec.rb +0 -30
  78. data/spec/unit/template_config_spec.rb +0 -12
  79. data/spec/unit/template_file_spec.rb +0 -16
  80. data/spec/unit/template_spec.rb +0 -8
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+ require_relative "../../../lib/proctor/config/env"
3
+
4
+ include Proctor::Config
5
+
6
+ describe Env do
7
+
8
+ context "basic tests" do
9
+
10
+ before(:all) { @obj = Env.new([{}, {}, []]) }
11
+
12
+ describe "#new" do
13
+ specify { @obj.should_not be_nil }
14
+ specify { @obj.should be_an(Env) }
15
+ end
16
+
17
+ describe "#template_files" do
18
+ specify { @obj.should respond_to(:template_files) }
19
+ end
20
+
21
+ describe "#managers" do
22
+ specify { @obj.should respond_to(:managers) }
23
+ specify { @obj.managers.should be_a(Managers) }
24
+ specify { @obj.managers.names.should be_an(Array) }
25
+ specify { @obj.managers.names.length.should_not == 0 }
26
+ end
27
+
28
+ describe "#services" do
29
+ specify { @obj.should respond_to(:services) }
30
+ specify { @obj.services.should be_a(Services) }
31
+ specify { @obj.services.names.should be_an(Array) }
32
+ specify { @obj.services.names.length.should_not == 0 }
33
+ end
34
+
35
+ end
36
+
37
+ end
@@ -0,0 +1,55 @@
1
+ require 'spec_helper'
2
+ require_relative "../../../lib/proctor/config/template_file"
3
+
4
+ include Proctor::Config
5
+
6
+ describe TemplateFile do
7
+
8
+ describe "#new" do
9
+ it "reports an error if the template file is missing" do
10
+ lambda { TemplateFile.new("Unknown") }.should raise_error(MissingTemplateFileException)
11
+ end
12
+
13
+ it "works ok if there is a valid file" do
14
+ file = "/tmp/test.#{$$}"
15
+ system "date > #{file}"
16
+ lambda { TemplateFile.new(file) }.should_not raise_error
17
+ system "rm #{file}"
18
+ end
19
+
20
+ end
21
+
22
+ context "basic tests" do
23
+ before(:all) do
24
+ @file_path = "/tmp/test.#{$$}"
25
+ system "date > #{@file_path}"
26
+ @obj = TemplateFile.new(@file_path)
27
+ end
28
+
29
+ after(:all) { system "rm #{@file_path}" }
30
+
31
+ describe "#name" do
32
+ specify { @obj.should respond_to(:name) }
33
+ specify { @obj.name.should be_a(String) }
34
+ end
35
+
36
+ describe "#path" do
37
+ specify { @obj.should respond_to(:path) }
38
+ specify { @obj.path.should be_a(String) }
39
+ specify { @obj.path.should == @file_path }
40
+ end
41
+
42
+ describe "#handle" do
43
+ specify { @obj.should respond_to(:handle) }
44
+ specify { @obj.handle.should be_a(String) }
45
+ specify { @obj.handle.length.should == 3 }
46
+ end
47
+
48
+ describe "#text" do
49
+ specify { @obj.should respond_to(:text) }
50
+ specify { @obj.text.should be_a(String) }
51
+ end
52
+
53
+ end
54
+
55
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+ require_relative "../../../lib/proctor/config/template_files"
3
+
4
+ include Proctor::Config
5
+
6
+ describe TemplateFiles do
7
+
8
+ context "basic tests" do
9
+
10
+ before(:all) { @obj = TemplateFiles.new([{}, {}, []]) }
11
+
12
+ describe "#new" do
13
+ specify { @obj.should_not be_nil }
14
+ specify { @obj.should be_a(TemplateFiles) }
15
+ end
16
+
17
+ describe "#all" do
18
+ specify { @obj.should respond_to(:all) }
19
+ specify { @obj.all.should be_a(Array) }
20
+ end
21
+
22
+ describe "#find_by_name" do
23
+ specify { @obj.should respond_to(:find_by_name) }
24
+ end
25
+
26
+ describe "#find_by_handle" do
27
+ specify { @obj.should respond_to(:find_by_handle) }
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -3,18 +3,38 @@ require_relative "../../lib/proctor/manager"
3
3
 
4
4
  include Proctor
5
5
 
6
+ def valid_manager_data
7
+ name = "name"
8
+ data = { 'export_directory' => '/tmp'}
9
+ [name, data]
10
+ end
11
+
6
12
  describe Manager do
7
- before(:each) do
8
- @obj = Manager.new
9
- end
10
13
 
11
- it "exists" do
12
- @obj.should_not be_nil
13
- end
14
+ context "basic tests" do
15
+
16
+ before(:all) { @obj = Manager.new(*valid_manager_data) }
17
+
18
+ describe "#new" do
19
+ specify { @obj.should_not be_nil }
20
+ specify { @obj.should be_a(Manager) }
21
+ end
22
+
23
+ describe "#handle" do
24
+ specify { @obj.should respond_to(:handle) }
25
+ specify { @obj.handle.should_not be_nil }
26
+ specify { @obj.handle.should be_an(String) }
27
+ specify { @obj.handle.length.should == 3 }
28
+ end
29
+
30
+ describe "#name" do
31
+ specify { @obj.should respond_to(:name) }
32
+ end
33
+
34
+ describe "#data" do
35
+ specify { @obj.should respond_to(:data) }
36
+ end
14
37
 
15
- it "has an input hash" do
16
- @obj.should respond_to(:input_hash)
17
- @obj.input_hash.should be_a(Hash)
18
38
  end
19
39
 
20
- end
40
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ require_relative "../../lib/proctor/managers"
3
+
4
+ include Proctor
5
+
6
+ describe Managers do
7
+
8
+ context "basic tests" do
9
+
10
+ before(:all) do
11
+ params = [{}, {}, []]
12
+ @app_files = AppFiles.new(params)
13
+ @obj = Managers.new(@app_files, params)
14
+ end
15
+
16
+ describe "#new" do
17
+ specify { @obj.should_not be_nil }
18
+ specify { @obj.should be_an(Managers) }
19
+ end
20
+
21
+ describe "#all" do
22
+ specify { @obj.should respond_to(:all) }
23
+ specify { @obj.all.should be_an(Array) }
24
+ end
25
+
26
+ describe "names" do
27
+ specify { @obj.should respond_to(:names) }
28
+ end
29
+
30
+ describe "#find_by_name" do
31
+ specify { @obj.should respond_to(:find_by_name) }
32
+ end
33
+
34
+ describe "#find_by_handle" do
35
+ specify { @obj.should respond_to(:find_by_handle) }
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+ require_relative "../../lib/proctor/node"
3
+
4
+ include Proctor
5
+
6
+ describe Node do
7
+
8
+ context "basic tests" do
9
+
10
+ before(:all) { @obj = Node.new(*valid_manager_data) }
11
+
12
+ describe "#new" do
13
+ specify { @obj.should_not be_nil }
14
+ specify { @obj.should be_a(Node) }
15
+ end
16
+
17
+ describe "#handle" do
18
+ specify { @obj.should respond_to(:handle) }
19
+ specify { @obj.handle.should_not be_nil }
20
+ specify { @obj.handle.should be_an(String) }
21
+ specify { @obj.handle.length.should == 3 }
22
+ end
23
+
24
+ describe "#name" do
25
+ specify { @obj.should respond_to(:name) }
26
+ end
27
+
28
+ describe "#data" do
29
+ specify { @obj.should respond_to(:data) }
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+ require_relative "../../lib/proctor/nodes"
3
+
4
+ include Proctor
5
+
6
+ describe Nodes do
7
+
8
+ context "basic tests" do
9
+
10
+ before(:all) do
11
+ params = [{}, {}, []]
12
+ @app_files = AppFiles.new(params)
13
+ @obj = Nodes.new(@app_files, params)
14
+ end
15
+
16
+ describe "#new" do
17
+ specify { @obj.should_not be_nil }
18
+ specify { @obj.should be_an(Nodes) }
19
+ end
20
+
21
+ describe "#all" do
22
+ specify { @obj.should respond_to(:all) }
23
+ specify { @obj.all.should be_an(Array) }
24
+ end
25
+
26
+ describe "#find_by_name" do
27
+ specify { @obj.should respond_to(:find_by_name) }
28
+ end
29
+
30
+ describe "#find_by_handle" do
31
+ specify { @obj.should respond_to(:find_by_handle) }
32
+ end
33
+
34
+ end
35
+
36
+ end
@@ -3,18 +3,39 @@ require_relative "../../lib/proctor/service"
3
3
 
4
4
  include Proctor
5
5
 
6
+ def valid_service_data
7
+ name = "name"
8
+ data = { 'start_command' => 'start'}
9
+ [name, data]
10
+ end
11
+
6
12
  describe Service do
7
- before(:each) do
8
- @obj = Service.new
9
- end
10
13
 
11
- it "should exist" do
12
- @obj.should_not be_nil
13
- end
14
+ context "basic tests" do
14
15
 
15
- it "should have an input hash" do
16
- @obj.should respond_to(:input_hash)
17
- @obj.input_hash.should be_a(Hash)
18
- end
16
+ before(:all) { @obj = Service.new(*valid_service_data) }
19
17
 
18
+ describe "#new" do
19
+ specify { @obj.should_not be_nil }
20
+ specify { @obj.should be_a(Service) }
21
+ end
22
+
23
+ describe "#handle" do
24
+ specify { @obj.should respond_to(:handle) }
25
+ specify { @obj.handle.should_not be_nil }
26
+ specify { @obj.handle.should be_an(String) }
27
+ specify { @obj.handle.length.should == 3 }
28
+ end
29
+
30
+ describe "#name" do
31
+ specify { @obj.should respond_to(:name) }
32
+ specify { @obj.name.should be_a(String) }
33
+ end
34
+
35
+ describe "#data" do
36
+ specify { @obj.should respond_to(:data) }
37
+ specify { @obj.data.should be_a(Hash) }
38
+ end
39
+
40
+ end
20
41
  end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+ require_relative "../../lib/proctor/managers"
3
+
4
+ include Proctor
5
+
6
+ describe Services do
7
+
8
+ context "basic tests" do
9
+ before(:all) do
10
+ params = [{}, {}, []]
11
+ @app_files = AppFiles.new(params)
12
+ @obj = Services.new(@app_files, params)
13
+ end
14
+
15
+ describe "#new" do
16
+ specify { @obj.should_not be_nil }
17
+ specify { @obj.should be_an(Services) }
18
+ end
19
+
20
+ describe "#all" do
21
+ specify { @obj.should respond_to(:all) }
22
+ specify { @obj.all.should be_an(Array) }
23
+ end
24
+
25
+ describe "#find_by_name" do
26
+ specify { @obj.should respond_to(:find_by_name) }
27
+ end
28
+
29
+ describe "#find_by_handle" do
30
+ specify { @obj.should respond_to(:find_by_handle) }
31
+ end
32
+
33
+ end
34
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proctor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-03 00:00:00.000000000 Z
12
+ date: 2012-05-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gli
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: thor
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: foreman
32
48
  requirement: !ruby/object:Gem::Requirement
@@ -144,6 +160,8 @@ email:
144
160
  - andy@r210.com
145
161
  executables:
146
162
  - proctor
163
+ - showlog
164
+ - showtime
147
165
  extensions: []
148
166
  extra_rdoc_files: []
149
167
  files:
@@ -151,45 +169,69 @@ files:
151
169
  - .rspec
152
170
  - Gemfile
153
171
  - LICENSE
154
- - Proctorfile
155
172
  - README.md
156
173
  - Rakefile
174
+ - TODO
157
175
  - bin/proctor
176
+ - bin/showlog
177
+ - bin/showtime
158
178
  - lib/proctor.rb
159
- - lib/proctor/app_config.rb
160
- - lib/proctor/app_file.rb
161
- - lib/proctor/cmd_state.rb
179
+ - lib/proctor/command/asset_list_cmd.rb
180
+ - lib/proctor/command/asset_show_cmd.rb
181
+ - lib/proctor/command/file_cleanup_cmd.rb
182
+ - lib/proctor/command/file_export_cmd.rb
183
+ - lib/proctor/command/helpers/command.rb
184
+ - lib/proctor/command/render_group_cmd.rb
185
+ - lib/proctor/command/render_service_cmd.rb
186
+ - lib/proctor/command/start_cmd.rb
187
+ - lib/proctor/config/app_file.rb
188
+ - lib/proctor/config/app_files.rb
189
+ - lib/proctor/config/env.rb
190
+ - lib/proctor/config/template_file.rb
191
+ - lib/proctor/config/template_files.rb
162
192
  - lib/proctor/manager.rb
163
- - lib/proctor/presenter/list.rb
164
- - lib/proctor/presenter/render.rb
165
- - lib/proctor/presenter/show.rb
193
+ - lib/proctor/managers.rb
194
+ - lib/proctor/node.rb
195
+ - lib/proctor/nodes.rb
196
+ - lib/proctor/resource/erb.rb
197
+ - lib/proctor/resource/lookup.rb
166
198
  - lib/proctor/service.rb
167
- - lib/proctor/template.rb
168
- - lib/proctor/template_config.rb
169
- - lib/proctor/template_file.rb
170
- - lib/proctor/util.rb
171
- - lib/proctor/version.rb
199
+ - lib/proctor/services.rb
200
+ - lib/proctor/util/helpers.rb
201
+ - lib/proctor/util/version.rb
172
202
  - proctor.gemspec
173
203
  - proctor/Proctorfile
174
- - proctor/templates/foreman_default_n.erb
204
+ - proctor/templates/foreman_default_g.erb
175
205
  - proctor/templates/monit_default_s.erb
176
206
  - proctor/templates/monit_faye_s.erb
177
- - proctor/templates/monit_web_s.erb
178
- - proctor/templates/upstart_default_n.erb
207
+ - proctor/templates/upstart_default_g.erb
179
208
  - proctor/templates/upstart_default_s.erb
180
209
  - proctor/templates/upstart_faye_s.erb
181
210
  - proctor/templates/upstart_passenger_s.erb
182
- - spec/acceptance/help_spec.rb
183
- - spec/acceptance/list_spec.rb
211
+ - spec/acceptance/asset_list_spec.rb
212
+ - spec/acceptance/asset_show_spec.rb
213
+ - spec/acceptance/file_cleanup_spec.rb
214
+ - spec/acceptance/file_export_spec.rb
215
+ - spec/acceptance/render_group_spec.rb
216
+ - spec/acceptance/render_service_spec.rb
217
+ - spec/acceptance/start_spec.rb
184
218
  - spec/spec_helper.rb
185
219
  - spec/support/aruba.rb
186
- - spec/unit/app_config_spec.rb
187
- - spec/unit/app_file_spec.rb
220
+ - spec/unit/command/file_export_cmd_spec.rb
221
+ - spec/unit/command/file_list_cmd_spec.rb
222
+ - spec/unit/command/render_group_cmd_spec.rb
223
+ - spec/unit/command/render_service_cmd_spec.rb
224
+ - spec/unit/config/app_file_spec.rb
225
+ - spec/unit/config/app_files_spec.rb
226
+ - spec/unit/config/env_spec.rb
227
+ - spec/unit/config/template_file_spec.rb
228
+ - spec/unit/config/template_files_spec.rb
188
229
  - spec/unit/manager_spec.rb
230
+ - spec/unit/managers_spec.rb
231
+ - spec/unit/node_spec.rb
232
+ - spec/unit/nodes_spec.rb
189
233
  - spec/unit/service_spec.rb
190
- - spec/unit/template_config_spec.rb
191
- - spec/unit/template_file_spec.rb
192
- - spec/unit/template_spec.rb
234
+ - spec/unit/services_spec.rb
193
235
  homepage: http://github.com/andyl/proctor
194
236
  licenses: []
195
237
  post_install_message:
@@ -215,14 +257,27 @@ signing_key:
215
257
  specification_version: 3
216
258
  summary: Generates conf files for upstart and monit.
217
259
  test_files:
218
- - spec/acceptance/help_spec.rb
219
- - spec/acceptance/list_spec.rb
260
+ - spec/acceptance/asset_list_spec.rb
261
+ - spec/acceptance/asset_show_spec.rb
262
+ - spec/acceptance/file_cleanup_spec.rb
263
+ - spec/acceptance/file_export_spec.rb
264
+ - spec/acceptance/render_group_spec.rb
265
+ - spec/acceptance/render_service_spec.rb
266
+ - spec/acceptance/start_spec.rb
220
267
  - spec/spec_helper.rb
221
268
  - spec/support/aruba.rb
222
- - spec/unit/app_config_spec.rb
223
- - spec/unit/app_file_spec.rb
269
+ - spec/unit/command/file_export_cmd_spec.rb
270
+ - spec/unit/command/file_list_cmd_spec.rb
271
+ - spec/unit/command/render_group_cmd_spec.rb
272
+ - spec/unit/command/render_service_cmd_spec.rb
273
+ - spec/unit/config/app_file_spec.rb
274
+ - spec/unit/config/app_files_spec.rb
275
+ - spec/unit/config/env_spec.rb
276
+ - spec/unit/config/template_file_spec.rb
277
+ - spec/unit/config/template_files_spec.rb
224
278
  - spec/unit/manager_spec.rb
279
+ - spec/unit/managers_spec.rb
280
+ - spec/unit/node_spec.rb
281
+ - spec/unit/nodes_spec.rb
225
282
  - spec/unit/service_spec.rb
226
- - spec/unit/template_config_spec.rb
227
- - spec/unit/template_file_spec.rb
228
- - spec/unit/template_spec.rb
283
+ - spec/unit/services_spec.rb