auser-poolparty 0.1.2 → 0.2.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.
Files changed (199) hide show
  1. data/History.txt +22 -0
  2. data/License.txt +20 -0
  3. data/README.txt +52 -0
  4. data/Rakefile +4 -109
  5. data/bin/cloud +31 -0
  6. data/bin/cloud-add-keypair +23 -0
  7. data/bin/cloud-configure +35 -0
  8. data/bin/cloud-contract +27 -0
  9. data/bin/cloud-expand +27 -0
  10. data/bin/cloud-list +32 -0
  11. data/bin/cloud-maintain +36 -0
  12. data/bin/cloud-provision +30 -0
  13. data/bin/cloud-reconfigure +24 -0
  14. data/bin/cloud-ssh +18 -0
  15. data/bin/cloud-start +29 -0
  16. data/bin/pool +23 -75
  17. data/bin/pool-console +12 -0
  18. data/bin/pool-describe +9 -0
  19. data/bin/pool-list +28 -0
  20. data/bin/pool-provision +34 -0
  21. data/bin/pool-spec +17 -0
  22. data/bin/pool-start +32 -0
  23. data/examples/basic.rb +20 -0
  24. data/examples/plugin_without_plugin_directory.rb +13 -0
  25. data/examples/poolparty.rb +12 -0
  26. data/examples/with_apache_plugin.rb +22 -0
  27. data/generators/poolspec/USAGE +5 -0
  28. data/generators/poolspec/poolspec_generator.rb +65 -0
  29. data/generators/poolspec/templates/pool_spec_template.erb +9 -0
  30. data/lib/erlang/eb_server.erl +27 -0
  31. data/lib/poolparty.rb +40 -116
  32. data/lib/poolparty/base_packages/haproxy.rb +41 -0
  33. data/lib/poolparty/base_packages/heartbeat.rb +43 -0
  34. data/lib/poolparty/base_packages/poolparty.rb +18 -0
  35. data/lib/poolparty/base_packages/ruby.rb +27 -0
  36. data/lib/poolparty/core/array.rb +24 -0
  37. data/lib/{core → poolparty/core}/exception.rb +0 -0
  38. data/lib/{core → poolparty/core}/float.rb +0 -0
  39. data/lib/poolparty/core/hash.rb +29 -0
  40. data/lib/poolparty/core/kernel.rb +34 -0
  41. data/lib/{core → poolparty/core}/module.rb +18 -0
  42. data/lib/poolparty/core/my_open_struct.rb +18 -0
  43. data/lib/poolparty/core/object.rb +54 -0
  44. data/lib/poolparty/core/proc.rb +2 -0
  45. data/lib/poolparty/core/string.rb +72 -0
  46. data/lib/poolparty/core/symbol.rb +8 -0
  47. data/lib/{core → poolparty/core}/time.rb +15 -0
  48. data/lib/poolparty/exceptions/RemoteException.rb +12 -0
  49. data/lib/poolparty/exceptions/ResourceException.rb +7 -0
  50. data/lib/poolparty/exceptions/RuntimeException.rb +7 -0
  51. data/lib/poolparty/exceptions/SpecException.rb +7 -0
  52. data/lib/poolparty/exceptions/TemplateNotFound.rb +7 -0
  53. data/lib/poolparty/helpers/binary.rb +30 -0
  54. data/lib/poolparty/helpers/console.rb +30 -0
  55. data/lib/poolparty/helpers/display.rb +25 -0
  56. data/lib/poolparty/helpers/optioner.rb +61 -0
  57. data/lib/poolparty/helpers/provisioner_base.rb +226 -0
  58. data/lib/poolparty/helpers/provisioners/master.rb +120 -0
  59. data/lib/poolparty/helpers/provisioners/slave.rb +52 -0
  60. data/lib/poolparty/modules/cloud_resourcer.rb +72 -0
  61. data/lib/poolparty/modules/configurable.rb +34 -0
  62. data/lib/poolparty/modules/definable_resource.rb +59 -0
  63. data/lib/poolparty/modules/file_writer.rb +55 -0
  64. data/lib/poolparty/modules/method_missing_sugar.rb +17 -0
  65. data/lib/poolparty/modules/output.rb +13 -0
  66. data/lib/poolparty/modules/pretty_printer.rb +38 -0
  67. data/lib/{core/string.rb → poolparty/modules/s3_string.rb} +5 -29
  68. data/lib/{modules → poolparty/modules}/safe_instance.rb +0 -0
  69. data/lib/poolparty/monitors/base_monitor.rb +16 -0
  70. data/lib/poolparty/net/remote.rb +35 -0
  71. data/lib/poolparty/net/remote_bases/ec2.rb +145 -0
  72. data/lib/poolparty/net/remote_instance.rb +68 -0
  73. data/lib/poolparty/net/remoter.rb +209 -0
  74. data/lib/poolparty/net/remoter_base.rb +117 -0
  75. data/lib/poolparty/plugins/gem_package.rb +39 -0
  76. data/lib/poolparty/plugins/line.rb +76 -0
  77. data/lib/poolparty/plugins/svn.rb +48 -0
  78. data/lib/poolparty/pool/base.rb +74 -0
  79. data/lib/poolparty/pool/cloud.rb +132 -0
  80. data/lib/poolparty/pool/custom_resource.rb +61 -0
  81. data/lib/poolparty/pool/loggable.rb +29 -0
  82. data/lib/poolparty/pool/plugin.rb +42 -0
  83. data/lib/poolparty/pool/plugin_model.rb +48 -0
  84. data/lib/poolparty/pool/pool.rb +55 -0
  85. data/lib/poolparty/pool/resource.rb +235 -0
  86. data/lib/poolparty/pool/resources/class_package.rb +60 -0
  87. data/lib/poolparty/pool/resources/cron.rb +14 -0
  88. data/lib/poolparty/pool/resources/directory.rb +23 -0
  89. data/lib/poolparty/pool/resources/exec.rb +26 -0
  90. data/lib/poolparty/pool/resources/file.rb +23 -0
  91. data/lib/poolparty/pool/resources/gem.rb +14 -0
  92. data/lib/poolparty/pool/resources/host.rb +14 -0
  93. data/lib/poolparty/pool/resources/package.rb +14 -0
  94. data/lib/poolparty/pool/resources/remote_file.rb +20 -0
  95. data/lib/poolparty/pool/resources/service.rb +21 -0
  96. data/lib/poolparty/pool/resources/sshkey.rb +19 -0
  97. data/lib/poolparty/pool/resources/variable.rb +27 -0
  98. data/lib/poolparty/pool/script.rb +21 -0
  99. data/{config/heartbeat_authkeys.conf → lib/poolparty/templates/authkeys} +0 -0
  100. data/lib/poolparty/templates/cib.xml +1 -0
  101. data/lib/poolparty/templates/fileserver.conf +4 -0
  102. data/{config/heartbeat.conf → lib/poolparty/templates/ha.cf} +3 -1
  103. data/{config → lib/poolparty/templates}/haproxy.conf +13 -6
  104. data/lib/poolparty/templates/namespaceauth.conf +19 -0
  105. data/lib/poolparty/templates/puppet.conf +13 -0
  106. data/lib/poolparty/version.rb +9 -0
  107. data/lib/poolpartycl.rb +3 -0
  108. data/script/destroy +14 -0
  109. data/script/generate +14 -0
  110. data/script/txt2html +82 -0
  111. data/{lib/poolparty/tasks → tasks}/cloud.rake +1 -1
  112. data/tasks/deployment.rake +34 -0
  113. data/tasks/development.rake +78 -0
  114. data/{lib/poolparty/tasks → tasks}/ec2.rake +1 -1
  115. data/tasks/environment.rake +7 -0
  116. data/{lib/poolparty/tasks → tasks}/instance.rake +0 -0
  117. data/{lib/poolparty/tasks → tasks}/server.rake +0 -0
  118. data/tasks/spec.rake +17 -0
  119. data/tasks/website.rake +17 -0
  120. metadata +154 -249
  121. data/CHANGELOG +0 -23
  122. data/LICENSE +0 -22
  123. data/README +0 -139
  124. data/assets/clouds.png +0 -0
  125. data/bin/instance +0 -68
  126. data/bin/poolnotify +0 -34
  127. data/config/cloud_master_takeover +0 -17
  128. data/config/create_proxy_ami.sh +0 -582
  129. data/config/installers/ubuntu_install.sh +0 -77
  130. data/config/monit.conf +0 -9
  131. data/config/monit/haproxy.monit.conf +0 -8
  132. data/config/monit/nginx.monit.conf +0 -0
  133. data/config/nginx.conf +0 -24
  134. data/config/reconfigure_instances_script.sh +0 -37
  135. data/config/sample-config.yml +0 -23
  136. data/config/scp_instances_script.sh +0 -12
  137. data/lib/core/array.rb +0 -16
  138. data/lib/core/hash.rb +0 -11
  139. data/lib/core/kernel.rb +0 -12
  140. data/lib/core/object.rb +0 -21
  141. data/lib/core/proc.rb +0 -15
  142. data/lib/helpers/plugin_spec_helper.rb +0 -58
  143. data/lib/modules/callback.rb +0 -133
  144. data/lib/modules/ec2_wrapper.rb +0 -108
  145. data/lib/modules/file_writer.rb +0 -38
  146. data/lib/modules/sprinkle_overrides.rb +0 -27
  147. data/lib/modules/vlad_override.rb +0 -83
  148. data/lib/poolparty/application.rb +0 -199
  149. data/lib/poolparty/init.rb +0 -6
  150. data/lib/poolparty/master.rb +0 -492
  151. data/lib/poolparty/monitors.rb +0 -11
  152. data/lib/poolparty/monitors/cpu.rb +0 -23
  153. data/lib/poolparty/monitors/memory.rb +0 -33
  154. data/lib/poolparty/monitors/web.rb +0 -29
  155. data/lib/poolparty/optioner.rb +0 -20
  156. data/lib/poolparty/plugin.rb +0 -78
  157. data/lib/poolparty/provider.rb +0 -104
  158. data/lib/poolparty/provider/essential.rb +0 -6
  159. data/lib/poolparty/provider/git.rb +0 -8
  160. data/lib/poolparty/provider/haproxy.rb +0 -9
  161. data/lib/poolparty/provider/heartbeat.rb +0 -6
  162. data/lib/poolparty/provider/rsync.rb +0 -8
  163. data/lib/poolparty/provider/ruby.rb +0 -65
  164. data/lib/poolparty/provider/s3fuse.rb +0 -22
  165. data/lib/poolparty/remote_instance.rb +0 -250
  166. data/lib/poolparty/remoter.rb +0 -171
  167. data/lib/poolparty/remoting.rb +0 -137
  168. data/lib/poolparty/scheduler.rb +0 -93
  169. data/lib/poolparty/tasks.rb +0 -47
  170. data/lib/poolparty/tasks/development.rake +0 -78
  171. data/lib/poolparty/tasks/plugins.rake +0 -30
  172. data/lib/poolparty/thread_pool.rb +0 -94
  173. data/lib/s3/s3_object_store_folders.rb +0 -44
  174. data/poolparty.gemspec +0 -71
  175. data/spec/files/describe_response +0 -37
  176. data/spec/files/multi_describe_response +0 -69
  177. data/spec/files/remote_desc_response +0 -37
  178. data/spec/helpers/ec2_mock.rb +0 -57
  179. data/spec/lib/core/core_spec.rb +0 -26
  180. data/spec/lib/core/kernel_spec.rb +0 -24
  181. data/spec/lib/core/string_spec.rb +0 -28
  182. data/spec/lib/modules/callback_spec.rb +0 -213
  183. data/spec/lib/modules/file_writer_spec.rb +0 -74
  184. data/spec/lib/poolparty/application_spec.rb +0 -135
  185. data/spec/lib/poolparty/ec2_wrapper_spec.rb +0 -110
  186. data/spec/lib/poolparty/master_spec.rb +0 -479
  187. data/spec/lib/poolparty/optioner_spec.rb +0 -34
  188. data/spec/lib/poolparty/plugin_spec.rb +0 -115
  189. data/spec/lib/poolparty/poolparty_spec.rb +0 -60
  190. data/spec/lib/poolparty/provider_spec.rb +0 -74
  191. data/spec/lib/poolparty/remote_instance_spec.rb +0 -178
  192. data/spec/lib/poolparty/remoter_spec.rb +0 -72
  193. data/spec/lib/poolparty/remoting_spec.rb +0 -148
  194. data/spec/lib/poolparty/scheduler_spec.rb +0 -70
  195. data/spec/monitors/cpu_monitor_spec.rb +0 -39
  196. data/spec/monitors/memory_spec.rb +0 -51
  197. data/spec/monitors/misc_monitor_spec.rb +0 -51
  198. data/spec/monitors/web_spec.rb +0 -40
  199. data/spec/spec_helper.rb +0 -53
@@ -1,93 +0,0 @@
1
- module PoolParty
2
- extend self
3
- # Schedule tasks container
4
- class ScheduleTasks
5
- include ThreadSafeInstance
6
- # Initialize tasks array and run
7
- def tasks
8
- @_tasks ||= []
9
- end
10
- # Synchronize the running threaded tasks
11
- def run
12
- unless tasks.empty? && !running?
13
- running = true
14
- pool = ThreadPool.new(10)
15
- tasks.reject! do |task|
16
- pool.process {task.call}
17
- end
18
- pool.join() # When all the tasks are done
19
- running = false
20
- end
21
- end
22
- def running?;@running == true;end
23
- def running;@running ||= false;end
24
- # Add a task in a new thread
25
- def <<(a, *args)
26
- tasks << a
27
- end
28
- alias_method :push, :<<
29
- # In the ThreadSafeInstance
30
- make_safe :<<
31
- end
32
- # Scheduler class
33
- module Scheduler
34
- attr_reader :tasker
35
- # Get the tasks or ScheduleTasks
36
- def _tasker
37
- @_tasker ||= ScheduleTasks.new
38
- end
39
- # Add a task to the new threaded block
40
- def add_task(&blk)
41
- _tasker.push blk
42
- end
43
- # Grab the polling_time
44
- def interval
45
- @interval ||= Application.polling_time
46
- end
47
- # Run the threads
48
- def run_threads
49
- _tasker.run
50
- end
51
- alias_method :run_tasks, :run_threads
52
- # Daemonize the process
53
- def daemonize
54
- PoolParty.message "Daemonizing..."
55
-
56
- pid = fork do
57
- Signal.trap('HUP', 'IGNORE') # Don't die upon logout
58
- File.open("/dev/null", "r+") do |devnull|
59
- $stdout.reopen(devnull)
60
- $stderr.reopen(devnull)
61
- $stdin.reopen(devnull) unless @use_stdin
62
- end
63
- yield if block_given?
64
- end
65
- Process.detach(pid)
66
- pid
67
- end
68
- # Run the loop and wait the amount of time between running the tasks
69
- # You can send it daemonize => true and it will daemonize
70
- def run_thread_loop(opts={}, &blk)
71
- block = lambda {
72
- loop do
73
- begin
74
- yield if block_given?
75
- add_task { Signal.trap("INT") { exit } }
76
- run_thread_list
77
- PoolParty.message "Waiting: #{interval}"
78
- wait interval
79
- rescue Exception => e
80
- Process.kill("INT", Process.pid)
81
- end
82
- end
83
- }
84
- # Run the tasks
85
- opts[:daemonize] ? daemonize(&block) : block.call
86
- end
87
-
88
- def run_thread_list
89
- run_threads
90
- end
91
-
92
- end
93
- end
@@ -1,47 +0,0 @@
1
- module PoolParty
2
- class Tasks
3
- include Callbacks
4
-
5
- # Setup and define all the tasks
6
- def initialize
7
- yield self if block_given?
8
- end
9
- # Define the tasks in the rakefile
10
- # From the rakefile
11
- def define_tasks
12
- # Run the command on the local system
13
- def run(cmd)
14
- Kernel.system(cmd.runnable)
15
- end
16
- # Basic setup action
17
- def setup_application
18
- @options ||= PoolParty.options(ARGV.dup)
19
- end
20
-
21
- # Require the poolparty specific tasks
22
- compiled_rakefile
23
-
24
- desc "Reload the static variables"
25
- task :reload do
26
- reload!
27
- end
28
- true
29
- end
30
-
31
- def reload!
32
- @compiled_rakefile = nil
33
- end
34
-
35
- def compiled_rakefile
36
- rake_str = []
37
-
38
- Dir["#{File.expand_path(File.dirname(__FILE__))}/tasks/*.rake"].each { |t| rake_str << open(t).read }
39
- plugin_rakefiles
40
-
41
- @compiled_rakefile ||= eval(rake_str.join("\n")) # Not ideal
42
- end
43
- def plugin_rakefiles
44
- Dir["#{PoolParty.plugin_dir}/*/Rakefile"].each {|t| load t }
45
- end
46
- end
47
- end
@@ -1,78 +0,0 @@
1
- namespace(:dev) do
2
- task :initialize do
3
- setup_application
4
- run "mkdir $HOME/.ec2 >/dev/null 2>/dev/null" unless File.directory?("$HOME/.ec2")
5
- end
6
- # Setup a basic development environment for the user
7
- desc "Setup development environment specify the config_file"
8
- task :setup => [:initialize, :setup_keypair] do
9
- certloc = "#{Application.ec2_dir}/#{Application.keypair}/cert-*.pem 2>/dev/null"
10
- pkloc = "#{Application.ec2_dir}/#{Application.keypair}/pk-*.pem 2>/dev/null"
11
- unless `ls #{certloc}`.length > 1 && `ls #{pkloc}`.length > 1
12
- puts <<-EOM
13
- Make sure you run rake dev:setup_pemkeys before you run this command
14
-
15
- I cannot continue until your keys are setup.
16
- exiting...
17
- EOM
18
- exit
19
- end
20
- keyfilename = ".#{Application.keypair}_pool_keys"
21
- run <<-EOR
22
- echo 'export AWS_ACCESS_KEY=\"#{Application.access_key}\"' > $HOME/#{keyfilename}
23
- echo 'export AWS_SECRET_ACCESS=\"#{Application.secret_access_key}\"' >> $HOME/#{keyfilename}
24
- echo 'export EC2_HOME=\"#{Application.ec2_dir}\"' >> $HOME/#{keyfilename}
25
- echo 'export KEYPAIR_NAME=\"#{Application.keypair}\"' >> $HOME/#{keyfilename}
26
- echo 'export EC2_PRIVATE_KEY=`ls ~/.ec2/#{Application.keypair}/pk-*.pem`;' >> $HOME/#{keyfilename}
27
- echo 'export EC2_CERT=`ls ~/.ec2/#{Application.keypair}/cert-*.pem`;' >> $HOME/#{keyfilename}
28
- EOR
29
- puts <<-EOM
30
- To work on this cloud, source the file like:
31
-
32
- source $HOME/#{keyfilename}
33
-
34
- EOM
35
- end
36
- desc "Generate a new keypair"
37
- task :setup_keypair => [:initialize] do
38
- Application.keypair ||= "#{File.basename(Dir.pwd)}"
39
- run "ec2-delete-keypair #{Application.keypair}" if File.file?(Application.keypair_path)
40
- puts "-- setting up keypair named #{Application.keypair} in #{Application.keypair_path}"
41
- run <<-EOR
42
- chmod 600 #{Application.keypair_path} 2>/dev/null
43
- mkdir $HOME/.ec2/#{Application.keypair} 2>/dev/null
44
- ec2-add-keypair #{Application.keypair} > #{Application.keypair_path}
45
- EOR
46
- end
47
- desc "Setup pem keys"
48
- task :setup_pemkeys => [:initialize] do
49
- puts "Setting up stubbed pem keys in ~/.ec2/#{Application.keypair}"
50
- run <<-EOR
51
- mkdir -p $HOME/.ec2/#{Application.keypair} 2>/dev/null
52
- echo 'UPDATE ME' > #{Application.ec2_dir}/#{Application.keypair}/cert-UPDATEME.pem
53
- echo 'UPDATE ME' > #{Application.ec2_dir}/#{Application.keypair}/pk-UPDATEME.pem
54
- EOR
55
- puts "Don't forget to replace your ~/.ec2/#{Application.keypair}/*.pem keys with the real amazon keys"
56
- end
57
- desc "initialize setup"
58
- task :init => [:setup_pemkeys]
59
-
60
- desc "Just an argv test"
61
- task :test => :initialize do
62
- puts "---- Testing ----"
63
- puts PoolParty.options(ARGV.dup)
64
- puts "Using keypair at: #{Application.keypair_path}"
65
- end
66
- desc "Installation listing"
67
- task :list_install => :initialize do
68
- puts "-- packages to install --"
69
- Provider.install_poolparty(true)
70
- end
71
- desc "Authorize base ports for application"
72
- task :authorize_ports => :initialize do
73
- run <<-EOR
74
- ec2-authorize -p 22 default
75
- ec2-authorize -p 80 default
76
- EOR
77
- end
78
- end
@@ -1,30 +0,0 @@
1
- namespace(:plugin) do
2
- task :init do
3
- @command = ARGV.shift # Get rid of the command
4
- @name = (ENV['location'] || ENV["l"] || ARGV.shift)
5
- unless @name
6
- puts <<-EOM
7
- Usage:
8
- rake #{@command} location
9
-
10
- Example:
11
- rake #{@command} git://github.com/auser/poolparty-plugins.git
12
-
13
- Check the help does for more information how to install a plugin
14
- http://poolpartyrb.com
15
-
16
- EOM
17
- exit
18
- end
19
- end
20
- desc "Install a plugin from a git repository"
21
- task :install => :init do |command|
22
- PoolParty::PluginManager.install_plugin @name
23
- end
24
- desc "Remove an installed plugin"
25
- task :remove => :init do |command|
26
- PoolParty::PluginManager.remove_plugin @name
27
- end
28
- rule "" do |t|
29
- end
30
- end
@@ -1,94 +0,0 @@
1
- module PoolParty
2
- class ThreadPool
3
- class Worker
4
- def initialize
5
- @mutex = Mutex.new
6
- @thread = Thread.new do
7
- while true
8
- sleep 0.001
9
- block = get_block
10
- if block
11
- block.call
12
- reset_block
13
- end
14
- end
15
- end
16
- end
17
-
18
- def get_block
19
- @mutex.synchronize {@block}
20
- end
21
-
22
- def set_block(block)
23
- @mutex.synchronize do
24
- raise RuntimeError, "Thread already busy." if @block
25
- @block = block
26
- end
27
- end
28
-
29
- def reset_block
30
- @mutex.synchronize {@block = nil}
31
- end
32
-
33
- def busy?
34
- @mutex.synchronize {!@block.nil?}
35
- end
36
- end
37
-
38
- attr_accessor :max_size
39
- attr_reader :workers
40
-
41
- def initialize(max_size = 10)
42
- @max_size = max_size
43
- @workers = []
44
- @mutex = Mutex.new
45
- end
46
-
47
- def size
48
- @mutex.synchronize {@workers.size}
49
- end
50
-
51
- def busy?
52
- @mutex.synchronize {@workers.any? {|w| w.busy?}}
53
- end
54
-
55
- def join
56
- sleep 0.01 while busy?
57
- end
58
-
59
- def process(&block)
60
- while true
61
- @mutex.synchronize do
62
- worker = find_available_worker
63
- if worker
64
- return worker.set_block(block)
65
- end
66
- end
67
- sleep 0.01
68
- end
69
- end
70
-
71
- def find_available_worker
72
- free_worker || create_worker
73
- end
74
-
75
- def wait_for_worker
76
- while true
77
- worker = find_available_worker
78
- return worker if worker
79
- sleep 0.01
80
- end
81
- end
82
-
83
- def free_worker
84
- @workers.each {|w| return w unless w.busy?}; nil
85
- end
86
-
87
- def create_worker
88
- return nil if @workers.size >= @max_size
89
- worker = Worker.new
90
- @workers << worker
91
- worker
92
- end
93
- end
94
- end
@@ -1,44 +0,0 @@
1
- =begin rdoc
2
- S3 overloads
3
- =end
4
- module AWS
5
- module S3
6
- class S3Object
7
- class << self
8
-
9
- alias :original_store :store
10
- def store(key, data, bucket = nil, options = {})
11
- store_folders(key, bucket, options) if options[:use_virtual_directories]
12
- original_store(key, data, bucket, options)
13
- end
14
-
15
- def streamed_store(key, filepath, bucket = nil, options = {})
16
- store_folders(key, bucket, options) if options[:use_virtual_directories]
17
- store(key,File.open(filepath), bucket)
18
- end
19
-
20
- def store_directory(directory, bucket, options = {})
21
- Dir[File.join(directory, "*")].each do |file|
22
- streamed_store("#{File.basename(File.dirname(file))}/#{File.basename(file)}", file, bucket, options.update(:use_virtual_directories => true))
23
- end
24
- end
25
-
26
- def store_folders(key, bucket = nil, options = {})
27
- folders = key.split("/")
28
- folders.slice!(0)
29
- folders.pop
30
- current_folder = "/"
31
- folders.each {|folder|
32
- current_folder += folder
33
- store_folder(current_folder, bucket, options)
34
- current_folder += "/"
35
- }
36
- end
37
-
38
- def store_folder(key, bucket = nil, options = {})
39
- original_store(key + "_$folder$", "", bucket, options) # store the magic entry that emulates a folder
40
- end
41
- end
42
- end
43
- end
44
- end
data/poolparty.gemspec DELETED
@@ -1,71 +0,0 @@
1
- Gem::Specification.new do |s|
2
- s.name = %q{poolparty}
3
- s.version = "0.1.2"
4
-
5
- s.required_rubygems_version = Gem::Requirement.new("= 1.2") if s.respond_to? :required_rubygems_version=
6
- s.authors = ["Ari Lerner"]
7
- s.cert_chain = nil
8
- s.date = %q{2008-07-30}
9
- s.description = %q{Run your entire application off EC2, managed and auto-scaling}
10
- s.email = %q{ari.lerner@citrusbyte.com}
11
- s.executables = ["instance", "pool", "poolnotify"]
12
- s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "bin", "bin/instance", "bin/pool", "bin/poolnotify", "lib", "lib/core", "lib/core/array.rb", "lib/core/exception.rb", "lib/core/float.rb", "lib/core/hash.rb", "lib/core/kernel.rb", "lib/core/module.rb", "lib/core/object.rb", "lib/core/proc.rb", "lib/core/string.rb", "lib/core/time.rb", "lib/helpers", "lib/helpers/plugin_spec_helper.rb", "lib/modules", "lib/modules/callback.rb", "lib/modules/ec2_wrapper.rb", "lib/modules/file_writer.rb", "lib/modules/safe_instance.rb", "lib/modules/sprinkle_overrides.rb", "lib/modules/vlad_override.rb", "lib/poolparty", "lib/poolparty.rb", "lib/poolparty/application.rb", "lib/poolparty/init.rb", "lib/poolparty/master.rb", "lib/poolparty/monitors", "lib/poolparty/monitors.rb", "lib/poolparty/monitors/cpu.rb", "lib/poolparty/monitors/memory.rb", "lib/poolparty/monitors/web.rb", "lib/poolparty/optioner.rb", "lib/poolparty/plugin.rb", "lib/poolparty/provider", "lib/poolparty/provider.rb", "lib/poolparty/provider/essential.rb", "lib/poolparty/provider/git.rb", "lib/poolparty/provider/haproxy.rb", "lib/poolparty/provider/heartbeat.rb", "lib/poolparty/provider/rsync.rb", "lib/poolparty/provider/ruby.rb", "lib/poolparty/provider/s3fuse.rb", "lib/poolparty/remote_instance.rb", "lib/poolparty/remoter.rb", "lib/poolparty/remoting.rb", "lib/poolparty/scheduler.rb", "lib/poolparty/tasks", "lib/poolparty/tasks.rb", "lib/poolparty/tasks/cloud.rake", "lib/poolparty/tasks/development.rake", "lib/poolparty/tasks/ec2.rake", "lib/poolparty/tasks/instance.rake", "lib/poolparty/tasks/plugins.rake", "lib/poolparty/tasks/server.rake", "lib/poolparty/thread_pool.rb", "lib/s3", "lib/s3/s3_object_store_folders.rb"]
13
- s.files = ["CHANGELOG", "LICENSE", "README", "Rakefile", "assets", "assets/clouds.png", "bin", "bin/instance", "bin/pool", "bin/poolnotify", "config", "config/cloud_master_takeover", "config/create_proxy_ami.sh", "config/haproxy.conf", "config/heartbeat.conf", "config/heartbeat_authkeys.conf", "config/installers", "config/installers/ubuntu_install.sh", "config/monit", "config/monit.conf", "config/monit/haproxy.monit.conf", "config/monit/nginx.monit.conf", "config/nginx.conf", "config/reconfigure_instances_script.sh", "config/sample-config.yml", "config/scp_instances_script.sh", "lib", "lib/core", "lib/core/array.rb", "lib/core/exception.rb", "lib/core/float.rb", "lib/core/hash.rb", "lib/core/kernel.rb", "lib/core/module.rb", "lib/core/object.rb", "lib/core/proc.rb", "lib/core/string.rb", "lib/core/time.rb", "lib/helpers", "lib/helpers/plugin_spec_helper.rb", "lib/modules", "lib/modules/callback.rb", "lib/modules/ec2_wrapper.rb", "lib/modules/file_writer.rb", "lib/modules/safe_instance.rb", "lib/modules/sprinkle_overrides.rb", "lib/modules/vlad_override.rb", "lib/poolparty", "lib/poolparty.rb", "lib/poolparty/application.rb", "lib/poolparty/init.rb", "lib/poolparty/master.rb", "lib/poolparty/monitors", "lib/poolparty/monitors.rb", "lib/poolparty/monitors/cpu.rb", "lib/poolparty/monitors/memory.rb", "lib/poolparty/monitors/web.rb", "lib/poolparty/optioner.rb", "lib/poolparty/plugin.rb", "lib/poolparty/provider", "lib/poolparty/provider.rb", "lib/poolparty/provider/essential.rb", "lib/poolparty/provider/git.rb", "lib/poolparty/provider/haproxy.rb", "lib/poolparty/provider/heartbeat.rb", "lib/poolparty/provider/rsync.rb", "lib/poolparty/provider/ruby.rb", "lib/poolparty/provider/s3fuse.rb", "lib/poolparty/remote_instance.rb", "lib/poolparty/remoter.rb", "lib/poolparty/remoting.rb", "lib/poolparty/scheduler.rb", "lib/poolparty/tasks", "lib/poolparty/tasks.rb", "lib/poolparty/tasks/cloud.rake", "lib/poolparty/tasks/development.rake", "lib/poolparty/tasks/ec2.rake", "lib/poolparty/tasks/instance.rake", "lib/poolparty/tasks/plugins.rake", "lib/poolparty/tasks/server.rake", "lib/poolparty/thread_pool.rb", "lib/s3", "lib/s3/s3_object_store_folders.rb", "plugins", "poolparty-0.1.2.gem", "spec", "spec/files", "spec/files/describe_response", "spec/files/multi_describe_response", "spec/files/remote_desc_response", "spec/helpers", "spec/helpers/ec2_mock.rb", "spec/lib", "spec/lib/core", "spec/lib/core/core_spec.rb", "spec/lib/core/kernel_spec.rb", "spec/lib/core/string_spec.rb", "spec/lib/modules", "spec/lib/modules/callback_spec.rb", "spec/lib/modules/file_writer_spec.rb", "spec/lib/poolparty", "spec/lib/poolparty/application_spec.rb", "spec/lib/poolparty/ec2_wrapper_spec.rb", "spec/lib/poolparty/master_spec.rb", "spec/lib/poolparty/optioner_spec.rb", "spec/lib/poolparty/plugin_spec.rb", "spec/lib/poolparty/poolparty_spec.rb", "spec/lib/poolparty/provider_spec.rb", "spec/lib/poolparty/remote_instance_spec.rb", "spec/lib/poolparty/remoter_spec.rb", "spec/lib/poolparty/remoting_spec.rb", "spec/lib/poolparty/scheduler_spec.rb", "spec/lib/s3", "spec/monitors", "spec/monitors/cpu_monitor_spec.rb", "spec/monitors/memory_spec.rb", "spec/monitors/misc_monitor_spec.rb", "spec/monitors/web_spec.rb", "spec/spec_helper.rb", "poolparty.gemspec"]
14
- s.has_rdoc = true
15
- s.homepage = %q{http://poolpartyrb.com}
16
- s.post_install_message = %q{
17
-
18
- Get ready to jump in the pool, you just installed PoolParty! (Updated at 12:37PM, 07/30/08)
19
-
20
- Please check out the documentation for any questions or check out the google groups at
21
- http://groups.google.com/group/poolpartyrb
22
-
23
- Don't forget to check out the plugin tutorial @ http://poolpartyrb.com for extending PoolParty!
24
-
25
- For more information, check http://poolpartyrb.com
26
- On IRC:
27
- irc.freenode.net
28
- #poolpartyrb
29
-
30
- *** Ari Lerner @ <ari.lerner@citrusbyte.com> ***
31
- }
32
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Poolparty", "--main", "README"]
33
- s.require_paths = ["lib"]
34
- s.rubyforge_project = %q{poolparty}
35
- s.rubygems_version = %q{1.2.0}
36
- s.summary = %q{Run your entire application off EC2, managed and auto-scaling}
37
-
38
- if s.respond_to? :specification_version then
39
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
40
- s.specification_version = 2
41
-
42
- if current_version >= 3 then
43
- s.add_runtime_dependency(%q<aws-s3>, [">= 0"])
44
- s.add_runtime_dependency(%q<amazon-ec2>, [">= 0"])
45
- s.add_runtime_dependency(%q<auser-aska>, [">= 0"])
46
- s.add_runtime_dependency(%q<git>, [">= 0"])
47
- s.add_runtime_dependency(%q<sprinkle>, [">= 0"])
48
- s.add_runtime_dependency(%q<SystemTimer>, [">= 0"])
49
- s.add_runtime_dependency(%q<open4>, [">= 0"])
50
- s.add_development_dependency(%q<echoe>, [">= 0"])
51
- else
52
- s.add_dependency(%q<aws-s3>, [">= 0"])
53
- s.add_dependency(%q<amazon-ec2>, [">= 0"])
54
- s.add_dependency(%q<auser-aska>, [">= 0"])
55
- s.add_dependency(%q<git>, [">= 0"])
56
- s.add_dependency(%q<sprinkle>, [">= 0"])
57
- s.add_dependency(%q<SystemTimer>, [">= 0"])
58
- s.add_dependency(%q<open4>, [">= 0"])
59
- s.add_dependency(%q<echoe>, [">= 0"])
60
- end
61
- else
62
- s.add_dependency(%q<aws-s3>, [">= 0"])
63
- s.add_dependency(%q<amazon-ec2>, [">= 0"])
64
- s.add_dependency(%q<auser-aska>, [">= 0"])
65
- s.add_dependency(%q<git>, [">= 0"])
66
- s.add_dependency(%q<sprinkle>, [">= 0"])
67
- s.add_dependency(%q<SystemTimer>, [">= 0"])
68
- s.add_dependency(%q<open4>, [">= 0"])
69
- s.add_dependency(%q<echoe>, [">= 0"])
70
- end
71
- end