proctor 0.0.3 → 0.0.4

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 (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