auser-poolparty 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/CHANGELOG +1 -0
  2. data/README.txt +5 -7
  3. data/Rakefile +27 -12
  4. data/bin/instance +2 -2
  5. data/bin/pool +8 -6
  6. data/config/reconfigure_instances_script.sh +3 -3
  7. data/config/sample-config.yml +1 -1
  8. data/lib/core/array.rb +5 -2
  9. data/lib/core/hash.rb +1 -1
  10. data/lib/core/string.rb +6 -2
  11. data/lib/helpers/plugin_spec_helper.rb +4 -5
  12. data/lib/modules/sprinkle_overrides.rb +24 -29
  13. data/lib/poolparty/application.rb +37 -27
  14. data/lib/poolparty/master.rb +35 -14
  15. data/lib/poolparty/plugin.rb +11 -6
  16. data/lib/poolparty/plugin_manager.rb +2 -2
  17. data/lib/poolparty/provider/{packages/essential.rb → essential.rb} +0 -0
  18. data/lib/poolparty/provider/{packages/git.rb → git.rb} +0 -0
  19. data/lib/poolparty/provider/{packages/haproxy.rb → haproxy.rb} +1 -1
  20. data/lib/poolparty/provider/{packages/heartbeat.rb → heartbeat.rb} +0 -0
  21. data/lib/poolparty/provider/{packages/rsync.rb → rsync.rb} +0 -0
  22. data/lib/poolparty/provider/{packages/ruby.rb → ruby.rb} +1 -1
  23. data/lib/poolparty/provider/{packages/s3fuse.rb → s3fuse.rb} +0 -0
  24. data/lib/poolparty/provider.rb +86 -2
  25. data/lib/poolparty/remote_instance.rb +35 -21
  26. data/lib/poolparty/remoter.rb +4 -1
  27. data/lib/poolparty/remoting.rb +2 -1
  28. data/lib/poolparty/tasks/cloud.rake +1 -1
  29. data/lib/poolparty/tasks/development.rake +48 -13
  30. data/lib/poolparty/tasks.rb +24 -6
  31. data/lib/poolparty.rb +8 -4
  32. data/poolparty.gemspec +10 -7
  33. data/spec/helpers/ec2_mock.rb +5 -2
  34. data/spec/{application_spec.rb → lib/application_spec.rb} +42 -9
  35. data/spec/{callback_spec.rb → lib/callback_spec.rb} +1 -1
  36. data/spec/{core_spec.rb → lib/core_spec.rb} +6 -4
  37. data/spec/{ec2_wrapper_spec.rb → lib/ec2_wrapper_spec.rb} +3 -3
  38. data/spec/{file_writer_spec.rb → lib/file_writer_spec.rb} +2 -2
  39. data/spec/{kernel_spec.rb → lib/kernel_spec.rb} +1 -1
  40. data/spec/{master_spec.rb → lib/master_spec.rb} +38 -16
  41. data/spec/{optioner_spec.rb → lib/optioner_spec.rb} +1 -1
  42. data/spec/{plugin_manager_spec.rb → lib/plugin_manager_spec.rb} +3 -3
  43. data/spec/{plugin_spec.rb → lib/plugin_spec.rb} +12 -1
  44. data/spec/{pool_binary_spec.rb → lib/pool_binary_spec.rb} +1 -1
  45. data/spec/{poolparty_spec.rb → lib/poolparty_spec.rb} +5 -5
  46. data/spec/lib/provider_spec.rb +72 -0
  47. data/spec/{remote_instance_spec.rb → lib/remote_instance_spec.rb} +51 -9
  48. data/spec/{remoter_spec.rb → lib/remoter_spec.rb} +7 -2
  49. data/spec/{remoting_spec.rb → lib/remoting_spec.rb} +60 -4
  50. data/spec/{scheduler_spec.rb → lib/scheduler_spec.rb} +1 -1
  51. data/spec/{string_spec.rb → lib/string_spec.rb} +1 -1
  52. data/spec/monitors/cpu_monitor_spec.rb +2 -2
  53. data/spec/monitors/memory_spec.rb +3 -3
  54. data/spec/monitors/misc_monitor_spec.rb +1 -1
  55. data/spec/monitors/web_spec.rb +3 -3
  56. metadata +46 -41
  57. data/lib/poolparty/provider/packages/monit.rb +0 -6
  58. data/lib/poolparty/provider/provider.rb +0 -100
  59. data/spec/provider_spec.rb +0 -18
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auser-poolparty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Lerner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
- date: 2008-07-02 00:00:00 -07:00
11
+ date: 2008-07-19 00:00:00 -07:00
12
12
  default_executable:
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
@@ -65,6 +65,15 @@ dependencies:
65
65
  - !ruby/object:Gem::Version
66
66
  version: "0"
67
67
  version:
68
+ - !ruby/object:Gem::Dependency
69
+ name: open4
70
+ version_requirement:
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: "0"
76
+ version:
68
77
  - !ruby/object:Gem::Dependency
69
78
  name: echoe
70
79
  version_requirement:
@@ -125,16 +134,13 @@ extra_rdoc_files:
125
134
  - lib/poolparty/plugin_manager.rb
126
135
  - lib/poolparty/provider
127
136
  - lib/poolparty/provider.rb
128
- - lib/poolparty/provider/packages
129
- - lib/poolparty/provider/packages/essential.rb
130
- - lib/poolparty/provider/packages/git.rb
131
- - lib/poolparty/provider/packages/haproxy.rb
132
- - lib/poolparty/provider/packages/heartbeat.rb
133
- - lib/poolparty/provider/packages/monit.rb
134
- - lib/poolparty/provider/packages/rsync.rb
135
- - lib/poolparty/provider/packages/ruby.rb
136
- - lib/poolparty/provider/packages/s3fuse.rb
137
- - lib/poolparty/provider/provider.rb
137
+ - lib/poolparty/provider/essential.rb
138
+ - lib/poolparty/provider/git.rb
139
+ - lib/poolparty/provider/haproxy.rb
140
+ - lib/poolparty/provider/heartbeat.rb
141
+ - lib/poolparty/provider/rsync.rb
142
+ - lib/poolparty/provider/ruby.rb
143
+ - lib/poolparty/provider/s3fuse.rb
138
144
  - lib/poolparty/remote_instance.rb
139
145
  - lib/poolparty/remoter.rb
140
146
  - lib/poolparty/remoting.rb
@@ -212,16 +218,13 @@ files:
212
218
  - lib/poolparty/plugin_manager.rb
213
219
  - lib/poolparty/provider
214
220
  - lib/poolparty/provider.rb
215
- - lib/poolparty/provider/packages
216
- - lib/poolparty/provider/packages/essential.rb
217
- - lib/poolparty/provider/packages/git.rb
218
- - lib/poolparty/provider/packages/haproxy.rb
219
- - lib/poolparty/provider/packages/heartbeat.rb
220
- - lib/poolparty/provider/packages/monit.rb
221
- - lib/poolparty/provider/packages/rsync.rb
222
- - lib/poolparty/provider/packages/ruby.rb
223
- - lib/poolparty/provider/packages/s3fuse.rb
224
- - lib/poolparty/provider/provider.rb
221
+ - lib/poolparty/provider/essential.rb
222
+ - lib/poolparty/provider/git.rb
223
+ - lib/poolparty/provider/haproxy.rb
224
+ - lib/poolparty/provider/heartbeat.rb
225
+ - lib/poolparty/provider/rsync.rb
226
+ - lib/poolparty/provider/ruby.rb
227
+ - lib/poolparty/provider/s3fuse.rb
225
228
  - lib/poolparty/remote_instance.rb
226
229
  - lib/poolparty/remoter.rb
227
230
  - lib/poolparty/remoting.rb
@@ -237,41 +240,43 @@ files:
237
240
  - lib/poolparty/thread_pool.rb
238
241
  - lib/s3
239
242
  - lib/s3/s3_object_store_folders.rb
243
+ - plugins
240
244
  - spec
241
- - spec/application_spec.rb
242
- - spec/callback_spec.rb
243
- - spec/core_spec.rb
244
- - spec/ec2_wrapper_spec.rb
245
- - spec/file_writer_spec.rb
246
245
  - spec/files
247
246
  - spec/files/describe_response
248
247
  - spec/files/multi_describe_response
249
248
  - spec/files/remote_desc_response
250
249
  - spec/helpers
251
250
  - spec/helpers/ec2_mock.rb
252
- - spec/kernel_spec.rb
253
- - spec/master_spec.rb
251
+ - spec/lib
252
+ - spec/lib/application_spec.rb
253
+ - spec/lib/callback_spec.rb
254
+ - spec/lib/core_spec.rb
255
+ - spec/lib/ec2_wrapper_spec.rb
256
+ - spec/lib/file_writer_spec.rb
257
+ - spec/lib/kernel_spec.rb
258
+ - spec/lib/master_spec.rb
259
+ - spec/lib/optioner_spec.rb
260
+ - spec/lib/plugin_manager_spec.rb
261
+ - spec/lib/plugin_spec.rb
262
+ - spec/lib/pool_binary_spec.rb
263
+ - spec/lib/poolparty_spec.rb
264
+ - spec/lib/provider_spec.rb
265
+ - spec/lib/remote_instance_spec.rb
266
+ - spec/lib/remoter_spec.rb
267
+ - spec/lib/remoting_spec.rb
268
+ - spec/lib/scheduler_spec.rb
269
+ - spec/lib/string_spec.rb
254
270
  - spec/monitors
255
271
  - spec/monitors/cpu_monitor_spec.rb
256
272
  - spec/monitors/memory_spec.rb
257
273
  - spec/monitors/misc_monitor_spec.rb
258
274
  - spec/monitors/web_spec.rb
259
- - spec/optioner_spec.rb
260
- - spec/plugin_manager_spec.rb
261
- - spec/plugin_spec.rb
262
- - spec/pool_binary_spec.rb
263
- - spec/poolparty_spec.rb
264
- - spec/provider_spec.rb
265
- - spec/remote_instance_spec.rb
266
- - spec/remoter_spec.rb
267
- - spec/remoting_spec.rb
268
- - spec/scheduler_spec.rb
269
275
  - spec/spec_helper.rb
270
- - spec/string_spec.rb
271
276
  - poolparty.gemspec
272
277
  has_rdoc: true
273
278
  homepage: http://poolpartyrb.com
274
- post_install_message: "\n \n Get ready to jump in the pool, you just installed PoolParty! (Updated at 02:12PM, 07/02/08)\n\n Please check out the documentation for any questions or check out the google groups at\n http://groups.google.com/group/poolpartyrb\n\n Don't forget to check out the plugin tutorial @ http://poolpartyrb.com for extending PoolParty! \n\n For more information, check http://poolpartyrb.com\n On IRC: \n irc.freenode.net\n #poolpartyrb\n *** Ari Lerner @ <ari.lerner@citrusbyte.com> ***\n "
279
+ post_install_message: "\n \n Get ready to jump in the pool, you just installed PoolParty! (Updated at 05:57PM, 07/19/08)\n\n Please check out the documentation for any questions or check out the google groups at\n http://groups.google.com/group/poolpartyrb\n\n Don't forget to check out the plugin tutorial @ http://poolpartyrb.com for extending PoolParty! \n\n For more information, check http://poolpartyrb.com\n On IRC: \n irc.freenode.net / #poolpartyrb\n \n *** Ari Lerner @ <ari.lerner@citrusbyte.com> ***\n "
275
280
  rdoc_options:
276
281
  - --line-numbers
277
282
  - --inline-source
@@ -1,6 +0,0 @@
1
- package :monit do
2
- description "Monit monitoring service"
3
- apt %w( monit )
4
-
5
- post :apt, "sudo mkdir /etc/monit", "sed -i 's/startup=0/startup=1/g' /etc/default/monit"
6
- end
@@ -1,100 +0,0 @@
1
- module PoolParty
2
- class Provider
3
- class << self
4
- attr_accessor :user_packages
5
- end
6
-
7
- def self.install_poolparty(ips)
8
- @ips = ips
9
-
10
- load_str = load_packages
11
-
12
- script=<<-EOS
13
- #{load_str.join("\n")}
14
-
15
- policy :poolparty, :roles => :app do
16
- requires :git
17
- requires :ruby
18
- requires :failover
19
- requires :proxy
20
- requires :monit
21
- requires :s3fs
22
- requires :rsync
23
- requires :required_gems
24
- end
25
-
26
- #{install_from_sprinkle_string}
27
- EOS
28
-
29
- PoolParty.message "Installing required poolparty paraphernalia"
30
- Sprinkle::Script.sprinkle script
31
- end
32
-
33
- def self.install_userpackages(ips)
34
- @ips = ips
35
-
36
- script=<<-EOS
37
- #{load_strings.join("\n")}
38
-
39
- policy :userpackages, :roles => :app do
40
- #{user_packages.join("\n")}
41
- end
42
-
43
- #{install_from_sprinkle_string}
44
- EOS
45
-
46
- PoolParty.message "Installing user defined packages"
47
- Sprinkle::Script.sprinkle script# unless load_strings.empty?
48
- end
49
-
50
- def self.define_user_package string
51
- user_packages << string
52
- end
53
-
54
- def self.define_user_install string
55
- load_strings << string
56
- end
57
-
58
- def self.user_packages
59
- @@user_packages ||= []
60
- end
61
-
62
- def self.load_strings
63
- @@load_strings ||= []
64
- end
65
-
66
- def self.load_packages
67
- load_str = []
68
- returning load_str do
69
- Dir["#{File.expand_path(File.dirname(__FILE__))}/packages/*"].each {|f| load_str << open(f).read}
70
- end
71
- end
72
-
73
- def self.install_from_sprinkle_string
74
- <<-EOS
75
- deployment do
76
- delivery :vlad do
77
-
78
- set :ssh_flags, "#{RemoteInstance.ssh_string.gsub(/ssh/, '')}"
79
-
80
- #{string_roles_from_ips(@ips)}
81
- end
82
-
83
- source do
84
- prefix '/usr/local'
85
- archives '/root/sources'
86
- builds '/root/builds'
87
- end
88
-
89
- end
90
- EOS
91
- end
92
-
93
- def self.string_roles_from_ips(ips)
94
- ips.collect do |ip|
95
- "role :app, '#{ip}'"
96
- end.join("\n")
97
- end
98
-
99
- end
100
- end
@@ -1,18 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
2
-
3
- describe "Provider" do
4
- before(:each) do
5
- stub_option_load
6
- @ips = ["127.0.0.1"]
7
- end
8
- it "should be able to make a roles from the ips" do
9
- Provider.string_roles_from_ips(@ips).should == "role :app, '127.0.0.1'"
10
- end
11
- describe "running" do
12
- it "should be able to run with the provided packages" do
13
- Sprinkle::Script.should_receive(:sprinkle).once.and_return true
14
- Provider.should_receive(:string_roles_from_ips).with(@ips).and_return ""
15
- Provider.install_poolparty(@ips)
16
- end
17
- end
18
- end