poolparty 0.2.6 → 0.2.18

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 (208) hide show
  1. data/Manifest.txt +123 -4
  2. data/PostInstall.txt +2 -1
  3. data/bin/cloud +16 -7
  4. data/bin/cloud-provision +9 -5
  5. data/bin/cloud-run +19 -0
  6. data/bin/cloud-ssh +2 -7
  7. data/bin/cloud-start +2 -1
  8. data/bin/pool +3 -3
  9. data/bin/server-build-messenger +20 -0
  10. data/bin/server-fire-cmd +14 -0
  11. data/bin/server-get-load +29 -0
  12. data/bin/server-list-active +25 -0
  13. data/bin/server-list-responding +24 -0
  14. data/bin/server-rerun +24 -0
  15. data/bin/server-start-master +27 -0
  16. data/bin/server-start-node +33 -0
  17. data/config/requirements.rb +1 -1
  18. data/erl_crash.dump +8409 -0
  19. data/lib/erlang/messenger/Emakefile +1 -0
  20. data/lib/erlang/messenger/Makefile +15 -0
  21. data/lib/erlang/messenger/README +5 -0
  22. data/lib/erlang/messenger/Rakefile +60 -0
  23. data/lib/erlang/messenger/control +11 -0
  24. data/lib/erlang/messenger/ebin/master.app +19 -0
  25. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  26. data/lib/erlang/messenger/ebin/node.app +19 -0
  27. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  28. data/lib/erlang/messenger/ebin/packager.app +19 -0
  29. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  30. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  31. data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
  32. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  33. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +1 -0
  34. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  35. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  36. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +1 -0
  37. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  38. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  39. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  40. data/lib/erlang/messenger/lib/eunit/AUTHORS +2 -0
  41. data/lib/erlang/messenger/lib/eunit/CHANGELOG +14 -0
  42. data/lib/erlang/messenger/lib/eunit/COPYING +504 -0
  43. data/lib/erlang/messenger/lib/eunit/Makefile +28 -0
  44. data/lib/erlang/messenger/lib/eunit/NOTES +276 -0
  45. data/lib/erlang/messenger/lib/eunit/README +3 -0
  46. data/lib/erlang/messenger/lib/eunit/doc/edoc-info +3 -0
  47. data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
  48. data/lib/erlang/messenger/lib/eunit/doc/eunit.html +172 -0
  49. data/lib/erlang/messenger/lib/eunit/doc/index.html +17 -0
  50. data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +12 -0
  51. data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +984 -0
  52. data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +980 -0
  53. data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +11 -0
  54. data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +55 -0
  55. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  56. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  57. data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +21 -0
  58. data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +1 -0
  59. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  60. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  61. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  62. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  63. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  64. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  65. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  66. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  67. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  68. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  69. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  70. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  71. data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +339 -0
  72. data/lib/erlang/messenger/lib/eunit/examples/fib.erl +19 -0
  73. data/lib/erlang/messenger/lib/eunit/examples/tests.txt +1 -0
  74. data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +313 -0
  75. data/lib/erlang/messenger/lib/eunit/src/Makefile +46 -0
  76. data/lib/erlang/messenger/lib/eunit/src/autoload.erl +388 -0
  77. data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +243 -0
  78. data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +21 -0
  79. data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +1 -0
  80. data/lib/erlang/messenger/lib/eunit/src/eunit.erl +196 -0
  81. data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +102 -0
  82. data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +798 -0
  83. data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +48 -0
  84. data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +682 -0
  85. data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +552 -0
  86. data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +157 -0
  87. data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +340 -0
  88. data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +64 -0
  89. data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +334 -0
  90. data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +45 -0
  91. data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +272 -0
  92. data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +409 -0
  93. data/lib/erlang/messenger/lib/eunit/sys.config +9 -0
  94. data/lib/erlang/messenger/lib/eunit/vsn.mk +1 -0
  95. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  96. data/lib/erlang/messenger/pm_master_rel-0.1.script +242 -0
  97. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  98. data/lib/erlang/messenger/pm_node_rel-0.1.script +242 -0
  99. data/lib/erlang/messenger/src/master_app.erl +39 -0
  100. data/lib/erlang/messenger/src/node_app.erl +39 -0
  101. data/lib/erlang/messenger/src/pm_client.erl +19 -0
  102. data/lib/erlang/messenger/src/pm_cluster.erl +57 -0
  103. data/lib/erlang/messenger/src/pm_event_handler.erl +21 -0
  104. data/lib/erlang/messenger/src/pm_master.erl +118 -0
  105. data/lib/erlang/messenger/src/pm_master_supervisor.erl +40 -0
  106. data/lib/erlang/messenger/src/pm_node.erl +124 -0
  107. data/lib/erlang/messenger/src/pm_node_supervisor.erl +40 -0
  108. data/lib/erlang/messenger/src/pm_packager.erl +73 -0
  109. data/lib/erlang/messenger/src/utils.erl +38 -0
  110. data/lib/poolparty/base_packages/haproxy.rb +9 -2
  111. data/lib/poolparty/base_packages/heartbeat.rb +40 -28
  112. data/lib/poolparty/base_packages/poolparty.rb +39 -16
  113. data/lib/poolparty/base_packages/ruby.rb +2 -3
  114. data/lib/poolparty/config/allowed_commands.yml +1 -0
  115. data/lib/poolparty/core/array.rb +5 -2
  116. data/lib/poolparty/core/hash.rb +16 -2
  117. data/lib/poolparty/core/string.rb +9 -2
  118. data/lib/poolparty/core/symbol.rb +2 -2
  119. data/lib/poolparty/dependency_resolutions/base.rb +12 -0
  120. data/lib/poolparty/dependency_resolutions/puppet.rb +49 -0
  121. data/lib/poolparty/exceptions/UnacceptableCommand.rb +5 -0
  122. data/lib/poolparty/helpers/console.rb +3 -2
  123. data/lib/poolparty/helpers/display.rb +3 -3
  124. data/lib/poolparty/helpers/messenger.rb +29 -0
  125. data/lib/poolparty/helpers/optioner.rb +6 -2
  126. data/lib/poolparty/helpers/provisioner_base.rb +18 -11
  127. data/lib/poolparty/helpers/provisioners/master.rb +24 -22
  128. data/lib/poolparty/helpers/provisioners/slave.rb +8 -4
  129. data/lib/poolparty/modules/definable_resource.rb +1 -0
  130. data/lib/poolparty/modules/file_writer.rb +11 -10
  131. data/lib/poolparty/modules/method_missing_sugar.rb +1 -1
  132. data/lib/poolparty/modules/pretty_printer.rb +11 -11
  133. data/lib/poolparty/modules/resourcing_dsl.rb +61 -0
  134. data/lib/poolparty/monitors/base_monitor.rb +17 -3
  135. data/lib/poolparty/monitors/monitors/cpu_monitor.rb +15 -0
  136. data/lib/poolparty/monitors/monitors/memory_monitor.rb +23 -0
  137. data/lib/poolparty/net/remote_instance.rb +6 -1
  138. data/lib/poolparty/net/remoter.rb +23 -5
  139. data/lib/poolparty/net/remoter_base.rb +5 -1
  140. data/lib/poolparty/plugins/git.rb +22 -24
  141. data/lib/poolparty/pool/base.rb +22 -6
  142. data/lib/poolparty/pool/cloud.rb +28 -4
  143. data/lib/poolparty/pool/custom_resource.rb +6 -6
  144. data/lib/poolparty/pool/loggable.rb +3 -0
  145. data/lib/poolparty/pool/pool.rb +1 -1
  146. data/lib/poolparty/pool/resource.rb +58 -94
  147. data/lib/poolparty/pool/resources/class_package.rb +6 -6
  148. data/lib/poolparty/pool/resources/conditional.rb +5 -1
  149. data/lib/poolparty/pool/resources/exec.rb +6 -2
  150. data/lib/poolparty/pool/resources/gem.rb +22 -8
  151. data/lib/poolparty/pool/resources/remote_file.rb +5 -1
  152. data/lib/poolparty/pool/resources/symlink.rb +25 -0
  153. data/lib/poolparty/pool/resources/variable.rb +8 -7
  154. data/lib/poolparty/pool/tmp/.ppkeys +3 -0
  155. data/lib/poolparty/pool/tmp/happydayz +1 -0
  156. data/lib/poolparty/pool/tmp/install_master.sh +33 -0
  157. data/lib/poolparty/pool/tmp/pool.spec +11 -0
  158. data/lib/poolparty/pool/tmp/poolparty.pp +600 -0
  159. data/lib/poolparty/pool/tmp/tc-instances.list +1 -0
  160. data/lib/poolparty/templates/cib.xml +54 -0
  161. data/lib/poolparty/templates/ha.cf +12 -3
  162. data/lib/poolparty/templates/haproxy.conf +3 -3
  163. data/lib/poolparty/templates/haresources +3 -0
  164. data/lib/poolparty/templates/poolparty.monitor +14 -0
  165. data/lib/poolparty/templates/puppet.conf +3 -4
  166. data/lib/poolparty/version.rb +1 -1
  167. data/lib/poolparty.rb +9 -6
  168. data/poolparty.gemspec +7 -6
  169. data/setup.rb +3 -3
  170. data/spec/poolparty/bin/console_spec.rb +1 -1
  171. data/spec/poolparty/core/array_spec.rb +5 -0
  172. data/spec/poolparty/core/hash_spec.rb +19 -1
  173. data/spec/poolparty/core/string_spec.rb +13 -0
  174. data/spec/poolparty/dependency_resolutions/base_spec.rb +11 -0
  175. data/spec/poolparty/helpers/messenger_spec.rb +14 -0
  176. data/spec/poolparty/helpers/optioner_spec.rb +2 -1
  177. data/spec/poolparty/helpers/provisioner_base_spec.rb +1 -1
  178. data/spec/poolparty/helpers/provisioners/master_spec.rb +2 -2
  179. data/spec/poolparty/helpers/provisioners/slave_spec.rb +3 -3
  180. data/spec/poolparty/modules/file_writer_spec.rb +9 -0
  181. data/spec/poolparty/monitors/base_monitor_spec.rb +19 -0
  182. data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +17 -0
  183. data/spec/poolparty/net/remote_instance_spec.rb +6 -1
  184. data/spec/poolparty/net/remote_spec.rb +51 -42
  185. data/spec/poolparty/net/remoter_spec.rb +2 -1
  186. data/spec/poolparty/plugins/git_spec.rb +2 -2
  187. data/spec/poolparty/pool/base_spec.rb +20 -2
  188. data/spec/poolparty/pool/cloud_spec.rb +30 -1
  189. data/spec/poolparty/pool/custom_resource_spec.rb +2 -2
  190. data/spec/poolparty/pool/plugin_spec.rb +4 -4
  191. data/spec/poolparty/pool/pool_spec.rb +1 -1
  192. data/spec/poolparty/pool/resource_spec.rb +66 -0
  193. data/spec/poolparty/pool/resources/gem_spec.rb +29 -3
  194. data/spec/poolparty/pool/resources/symlink_spec.rb +22 -0
  195. data/spec/poolparty/pool/resources/variable_spec.rb +4 -0
  196. data/spec/poolparty/spec_helper.rb +5 -0
  197. data/tasks/cloud.rake +0 -54
  198. data/tasks/development.rake +0 -12
  199. data/tasks/ec2.rake +1 -16
  200. data/tasks/instance.rake +0 -61
  201. data/test_manifest.pp +286 -166
  202. data/website/index.html +5 -5
  203. data/website/index.txt +3 -3
  204. metadata +137 -8
  205. data/bin/pool-start-monitor +0 -1
  206. data/lib/erlang/eb_server.erl +0 -27
  207. data/lib/poolparty/plugins/gem_package.rb +0 -17
  208. data/spec/poolparty/modules/tmp/willy/nilly.rb +0 -1
@@ -1,10 +1,19 @@
1
- # Haproxy conf
1
+ # Heartbeat
2
2
  keepalive 2 # Time inbetween heartbeats
3
3
  deadtime 32 # wait 32 seconds before declaring dead
4
4
  warntime 16 # issue a warning halfway through
5
5
  initdead 60 # Don't boot instances between 60 seconds of each other
6
- auto_failback on
6
+ logfacility daemon # Log to syslog as facility "daemon"
7
+ auto_failback off
7
8
  use_logd yes
9
+ bcast eth0
8
10
  crm on
11
+ logfile /var/log/ha.log
9
12
 
10
- node <%= ha_nodenames.join(" ") %>
13
+ <% ha_node_ips.chomp.split(/\t/).each_with_index do |ip,index| -%>
14
+ <% if $hostname != ha_nodenames.chomp.split(/\t/)[index] -%>
15
+ ucast eth0 <%= ip %>
16
+ <% end %>
17
+ <% end %>
18
+
19
+ node <%= ha_nodenames %>
@@ -30,7 +30,7 @@ defaults
30
30
 
31
31
  listen <%= name_haproxy %>
32
32
  bind 0.0.0.0:<%= ports_haproxy.join(",0.0.0.0:") %>
33
- <% node_ips_haproxy.each_with_index do |ip, index| -%>
34
33
  cookie POOLPARTYPARTY
35
- server node<%= index %> <%= ip %>:<%= forwarding_port %> weight 1 check cookie
36
- <% end -%>
34
+ <%- node_ips_haproxy.chomp.split(/\t/).each_with_index do |ip, index| -%>
35
+ server <%= index == 0 ? "master" : "node#{index}" %> <%= ip %>:<%= forwarding_port %> weight 1 check cookie
36
+ <%- end -%>
@@ -0,0 +1,3 @@
1
+ <% ha_nodenames.each_with_index do |name, index| -%>
2
+ <%= name -%> <%= ha_node_ips[index] -%>/eth0:0
3
+ <% end %>
@@ -0,0 +1,14 @@
1
+ #!/bin/bash
2
+ # Based on puppet High Availability recipe
3
+ #
4
+ # http://reductivelabs.com/trac/puppet/wiki/Recipes/HighAvailability
5
+ # Modified for PoolParty
6
+ #
7
+ exitstatus=0
8
+ processid=`ps aux | grep puppetmasterd | awk '{print $2}'`
9
+
10
+ if [ -z $processid ] || test `netstat -apn | grep "${processid}/ruby" | wc -l` -eq 0 ; then
11
+ exitstatus=1
12
+ fi
13
+
14
+ exit $exitstatus
@@ -1,12 +1,11 @@
1
1
  [main]
2
2
  vardir = /var/lib/puppet
3
3
  logdir = /var/log/puppet
4
- templatepath = /var/lib/puppet/templates
5
-
6
- [puppetd]
7
- localconfig = $vardir/localconfig
8
4
  pluginsync=false
9
5
  factsync=false
6
+
7
+ [puppetd]
8
+ localconfig = $vardir/localconfig
10
9
  report=true
11
10
  server=master
12
11
 
@@ -2,7 +2,7 @@ module PoolParty
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 6
5
+ TINY = 18
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/poolparty.rb CHANGED
@@ -1,11 +1,14 @@
1
1
  require 'rubygems'
2
2
 
3
3
  # Load required gems
4
- require 'active_support'
5
- require 'open4'
6
- require "ftools"
7
- require "logging"
8
- require "ruby2ruby"
4
+ %w(activesupport open4 ftools logging ruby2ruby).each do |lib|
5
+ begin
6
+ require lib
7
+ rescue Exception => e
8
+ puts "Could not find library #{lib}: #{e}"
9
+ end
10
+
11
+ end
9
12
 
10
13
  # Use active supports auto load mechanism
11
14
  ActiveSupport::Dependencies.load_paths << File.dirname(__FILE__)
@@ -13,7 +16,7 @@ ActiveSupport::Dependencies.load_paths << File.dirname(__FILE__)
13
16
  ## Load PoolParty
14
17
  require "#{File.dirname(__FILE__)}/poolparty/version"
15
18
 
16
- %w(core modules exceptions net).each do |dir|
19
+ %w(core modules exceptions dependency_resolutions monitors net).each do |dir|
17
20
  Dir[File.dirname(__FILE__) + "/poolparty/#{dir}/**.rb"].each do |file|
18
21
  require file
19
22
  end
data/poolparty.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{poolparty}
3
- s.version = "0.2.6"
3
+ s.version = "0.2.18"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Ari Lerner"]
7
- s.date = %q{2008-10-14}
7
+ s.date = %q{2008-10-23}
8
8
  s.description = %q{Self-healing, auto-scaling cloud computing tool}
9
9
  s.email = ["ari.lerner@citrusbyte.com"]
10
- s.executables = ["cloud", "cloud-add-keypair", "cloud-configure", "cloud-contract", "cloud-expand", "cloud-list", "cloud-maintain", "cloud-osxcopy", "cloud-provision", "cloud-refresh", "cloud-ssh", "cloud-start", "cloud-terminate", "pool", "pool-console", "pool-describe", "pool-list", "pool-provision", "pool-spec", "pool-start", "pool-start-monitor"]
11
- s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "website/index.txt"]
12
- s.files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "Rakefile", "bin/cloud", "bin/cloud-add-keypair", "bin/cloud-configure", "bin/cloud-contract", "bin/cloud-expand", "bin/cloud-list", "bin/cloud-maintain", "bin/cloud-osxcopy", "bin/cloud-provision", "bin/cloud-refresh", "bin/cloud-ssh", "bin/cloud-start", "bin/cloud-terminate", "bin/pool", "bin/pool-console", "bin/pool-describe", "bin/pool-list", "bin/pool-provision", "bin/pool-spec", "bin/pool-start", "bin/pool-start-monitor", "config/hoe.rb", "config/requirements.rb", "examples/basic.rb", "examples/plugin_without_plugin_directory.rb", "examples/poolparty.rb", "examples/with_apache_plugin.rb", "generators/poolspec/USAGE", "generators/poolspec/poolspec_generator.rb", "generators/poolspec/templates/pool_spec_template.erb", "lib/erlang/eb_server.erl", "lib/poolparty.rb", "lib/poolparty/base_packages/haproxy.rb", "lib/poolparty/base_packages/heartbeat.rb", "lib/poolparty/base_packages/poolparty.rb", "lib/poolparty/base_packages/ruby.rb", "lib/poolparty/core/array.rb", "lib/poolparty/core/exception.rb", "lib/poolparty/core/float.rb", "lib/poolparty/core/hash.rb", "lib/poolparty/core/kernel.rb", "lib/poolparty/core/module.rb", "lib/poolparty/core/my_open_struct.rb", "lib/poolparty/core/object.rb", "lib/poolparty/core/proc.rb", "lib/poolparty/core/string.rb", "lib/poolparty/core/symbol.rb", "lib/poolparty/core/time.rb", "lib/poolparty/exceptions/RemoteException.rb", "lib/poolparty/exceptions/ResourceException.rb", "lib/poolparty/exceptions/RuntimeException.rb", "lib/poolparty/exceptions/SpecException.rb", "lib/poolparty/exceptions/TemplateNotFound.rb", "lib/poolparty/helpers/binary.rb", "lib/poolparty/helpers/console.rb", "lib/poolparty/helpers/display.rb", "lib/poolparty/helpers/optioner.rb", "lib/poolparty/helpers/provisioner_base.rb", "lib/poolparty/helpers/provisioners/master.rb", "lib/poolparty/helpers/provisioners/slave.rb", "lib/poolparty/modules/cloud_resourcer.rb", "lib/poolparty/modules/configurable.rb", "lib/poolparty/modules/definable_resource.rb", "lib/poolparty/modules/file_writer.rb", "lib/poolparty/modules/method_missing_sugar.rb", "lib/poolparty/modules/output.rb", "lib/poolparty/modules/pretty_printer.rb", "lib/poolparty/modules/s3_string.rb", "lib/poolparty/modules/safe_instance.rb", "lib/poolparty/monitors/base_monitor.rb", "lib/poolparty/net/remote.rb", "lib/poolparty/net/remote_bases/ec2.rb", "lib/poolparty/net/remote_instance.rb", "lib/poolparty/net/remoter.rb", "lib/poolparty/net/remoter_base.rb", "lib/poolparty/plugins/gem_package.rb", "lib/poolparty/plugins/git.rb", "lib/poolparty/plugins/line.rb", "lib/poolparty/plugins/svn.rb", "lib/poolparty/pool/base.rb", "lib/poolparty/pool/cloud.rb", "lib/poolparty/pool/custom_resource.rb", "lib/poolparty/pool/loggable.rb", "lib/poolparty/pool/plugin.rb", "lib/poolparty/pool/plugin_model.rb", "lib/poolparty/pool/pool.rb", "lib/poolparty/pool/resource.rb", "lib/poolparty/pool/resources/class_package.rb", "lib/poolparty/pool/resources/conditional.rb", "lib/poolparty/pool/resources/cron.rb", "lib/poolparty/pool/resources/directory.rb", "lib/poolparty/pool/resources/exec.rb", "lib/poolparty/pool/resources/file.rb", "lib/poolparty/pool/resources/gem.rb", "lib/poolparty/pool/resources/host.rb", "lib/poolparty/pool/resources/package.rb", "lib/poolparty/pool/resources/remote_file.rb", "lib/poolparty/pool/resources/service.rb", "lib/poolparty/pool/resources/sshkey.rb", "lib/poolparty/pool/resources/variable.rb", "lib/poolparty/pool/script.rb", "lib/poolparty/templates/authkeys", "lib/poolparty/templates/cib.xml", "lib/poolparty/templates/fileserver.conf", "lib/poolparty/templates/gem", "lib/poolparty/templates/ha.cf", "lib/poolparty/templates/haproxy.conf", "lib/poolparty/templates/namespaceauth.conf", "lib/poolparty/templates/puppet.conf", "lib/poolparty/version.rb", "lib/poolpartycl.rb", "poolparty.gemspec", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "spec/poolparty/base_packages/haproxy_spec.rb", "spec/poolparty/base_packages/heartbeat_spec.rb", "spec/poolparty/bin/console_spec.rb", "spec/poolparty/core/array_spec.rb", "spec/poolparty/core/float.rb", "spec/poolparty/core/hash_spec.rb", "spec/poolparty/core/kernel_spec.rb", "spec/poolparty/core/module_spec.rb", "spec/poolparty/core/object_spec.rb", "spec/poolparty/core/string_spec.rb", "spec/poolparty/core/time_spec.rb", "spec/poolparty/helpers/binary_spec.rb", "spec/poolparty/helpers/display_spec.rb", "spec/poolparty/helpers/optioner_spec.rb", "spec/poolparty/helpers/provisioner_base_spec.rb", "spec/poolparty/helpers/provisioners/master_spec.rb", "spec/poolparty/helpers/provisioners/slave_spec.rb", "spec/poolparty/modules/cloud_resourcer_spec.rb", "spec/poolparty/modules/configurable_spec.rb", "spec/poolparty/modules/definable_resource.rb", "spec/poolparty/modules/file_writer_spec.rb", "spec/poolparty/modules/s3_string_spec.rb", "spec/poolparty/modules/tmp/willy/nilly.rb", "spec/poolparty/net/remote_bases/ec2_spec.rb", "spec/poolparty/net/remote_instance_spec.rb", "spec/poolparty/net/remote_spec.rb", "spec/poolparty/net/remoter_base_spec.rb", "spec/poolparty/net/remoter_spec.rb", "spec/poolparty/plugins/git_spec.rb", "spec/poolparty/plugins/line_spec.rb", "spec/poolparty/plugins/svn_spec.rb", "spec/poolparty/pool/base_spec.rb", "spec/poolparty/pool/cloud_spec.rb", "spec/poolparty/pool/configurers/files/ruby_basic.rb", "spec/poolparty/pool/configurers/files/ruby_plugins.rb", "spec/poolparty/pool/configurers/ruby_spec.rb", "spec/poolparty/pool/custom_resource_spec.rb", "spec/poolparty/pool/example_spec.rb", "spec/poolparty/pool/plugin_model_spec.rb", "spec/poolparty/pool/plugin_spec.rb", "spec/poolparty/pool/pool_spec.rb", "spec/poolparty/pool/resource_spec.rb", "spec/poolparty/pool/resources/class_package_spec.rb", "spec/poolparty/pool/resources/conditional_spec.rb", "spec/poolparty/pool/resources/cron_spec.rb", "spec/poolparty/pool/resources/directory_spec.rb", "spec/poolparty/pool/resources/exec_spec.rb", "spec/poolparty/pool/resources/file_spec.rb", "spec/poolparty/pool/resources/gem_spec.rb", "spec/poolparty/pool/resources/host_spec.rb", "spec/poolparty/pool/resources/package_spec.rb", "spec/poolparty/pool/resources/remote_file_spec.rb", "spec/poolparty/pool/resources/service_spec.rb", "spec/poolparty/pool/resources/sshkey_spec.rb", "spec/poolparty/pool/resources/variable_spec.rb", "spec/poolparty/pool/script_spec.rb", "spec/poolparty/pool/test_plugins/sshkey_test", "spec/poolparty/pool/test_plugins/virtual_host_template.erb", "spec/poolparty/pool/test_plugins/webserver.rb", "spec/poolparty/poolparty_spec.rb", "spec/poolparty/spec_helper.rb", "tasks/cloud.rake", "tasks/deployment.rake", "tasks/development.rake", "tasks/ec2.rake", "tasks/environment.rake", "tasks/instance.rake", "tasks/server.rake", "tasks/spec.rake", "tasks/website.rake", "test/test_generator_helper.rb", "test/test_helper.rb", "test/test_pool_spec_generator.rb", "test/test_poolparty.rb", "test_manifest.pp", "website/index.html", "website/index.txt", "website/javascripts/rounded_corners_lite.inc.js", "website/stylesheets/code.css", "website/stylesheets/screen.css", "website/template.html.erb"]
10
+ s.executables = ["cloud", "cloud-add-keypair", "cloud-configure", "cloud-contract", "cloud-expand", "cloud-list", "cloud-maintain", "cloud-osxcopy", "cloud-provision", "cloud-refresh", "cloud-run", "cloud-ssh", "cloud-start", "cloud-terminate", "pool", "pool-console", "pool-describe", "pool-list", "pool-provision", "pool-spec", "pool-start", "server-build-messenger", "server-fire-cmd", "server-get-load", "server-list-active", "server-list-responding", "server-rerun", "server-start-master", "server-start-node"]
11
+ s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "lib/erlang/messenger/lib/eunit/examples/tests.txt", "website/index.txt"]
12
+ s.files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt", "Rakefile", "bin/cloud", "bin/cloud-add-keypair", "bin/cloud-configure", "bin/cloud-contract", "bin/cloud-expand", "bin/cloud-list", "bin/cloud-maintain", "bin/cloud-osxcopy", "bin/cloud-provision", "bin/cloud-refresh", "bin/cloud-run", "bin/cloud-ssh", "bin/cloud-start", "bin/cloud-terminate", "bin/pool", "bin/pool-console", "bin/pool-describe", "bin/pool-list", "bin/pool-provision", "bin/pool-spec", "bin/pool-start", "bin/server-build-messenger", "bin/server-fire-cmd", "bin/server-get-load", "bin/server-list-active", "bin/server-list-responding", "bin/server-rerun", "bin/server-start-master", "bin/server-start-node", "config/hoe.rb", "config/requirements.rb", "erl_crash.dump", "examples/basic.rb", "examples/plugin_without_plugin_directory.rb", "examples/poolparty.rb", "examples/with_apache_plugin.rb", "generators/poolspec/USAGE", "generators/poolspec/poolspec_generator.rb", "generators/poolspec/templates/pool_spec_template.erb", "lib/erlang/messenger/Emakefile", "lib/erlang/messenger/Makefile", "lib/erlang/messenger/README", "lib/erlang/messenger/Rakefile", "lib/erlang/messenger/control", "lib/erlang/messenger/ebin/master.app", "lib/erlang/messenger/ebin/master_app.beam", "lib/erlang/messenger/ebin/node.app", "lib/erlang/messenger/ebin/node_app.beam", "lib/erlang/messenger/ebin/packager.app", "lib/erlang/messenger/ebin/pm_client.beam", "lib/erlang/messenger/ebin/pm_cluster.beam", "lib/erlang/messenger/ebin/pm_event_handler.beam", "lib/erlang/messenger/ebin/pm_master.beam", "lib/erlang/messenger/ebin/pm_master_rel-0.1.rel", "lib/erlang/messenger/ebin/pm_master_supervisor.beam", "lib/erlang/messenger/ebin/pm_node.beam", "lib/erlang/messenger/ebin/pm_node_rel-0.1.rel", "lib/erlang/messenger/ebin/pm_node_supervisor.beam", "lib/erlang/messenger/ebin/pm_packager.beam", "lib/erlang/messenger/ebin/utils.beam", "lib/erlang/messenger/lib/eunit/AUTHORS", "lib/erlang/messenger/lib/eunit/CHANGELOG", "lib/erlang/messenger/lib/eunit/COPYING", "lib/erlang/messenger/lib/eunit/Makefile", "lib/erlang/messenger/lib/eunit/NOTES", "lib/erlang/messenger/lib/eunit/README", "lib/erlang/messenger/lib/eunit/doc/edoc-info", "lib/erlang/messenger/lib/eunit/doc/erlang.png", "lib/erlang/messenger/lib/eunit/doc/eunit.html", "lib/erlang/messenger/lib/eunit/doc/index.html", "lib/erlang/messenger/lib/eunit/doc/modules-frame.html", "lib/erlang/messenger/lib/eunit/doc/overview-summary.html", "lib/erlang/messenger/lib/eunit/doc/overview.edoc", "lib/erlang/messenger/lib/eunit/doc/packages-frame.html", "lib/erlang/messenger/lib/eunit/doc/stylesheet.css", "lib/erlang/messenger/lib/eunit/ebin/autoload.beam", "lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit.app", "lib/erlang/messenger/lib/eunit/ebin/eunit.appup", "lib/erlang/messenger/lib/eunit/ebin/eunit.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam", "lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam", "lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam", "lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl", "lib/erlang/messenger/lib/eunit/examples/fib.erl", "lib/erlang/messenger/lib/eunit/examples/tests.txt", "lib/erlang/messenger/lib/eunit/include/eunit.hrl", "lib/erlang/messenger/lib/eunit/src/Makefile", "lib/erlang/messenger/lib/eunit/src/autoload.erl", "lib/erlang/messenger/lib/eunit/src/code_monitor.erl", "lib/erlang/messenger/lib/eunit/src/eunit.app.src", "lib/erlang/messenger/lib/eunit/src/eunit.appup.src", "lib/erlang/messenger/lib/eunit/src/eunit.erl", "lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl", "lib/erlang/messenger/lib/eunit/src/eunit_data.erl", "lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl", "lib/erlang/messenger/lib/eunit/src/eunit_lib.erl", "lib/erlang/messenger/lib/eunit/src/eunit_proc.erl", "lib/erlang/messenger/lib/eunit/src/eunit_serial.erl", "lib/erlang/messenger/lib/eunit/src/eunit_server.erl", "lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl", "lib/erlang/messenger/lib/eunit/src/eunit_test.erl", "lib/erlang/messenger/lib/eunit/src/eunit_tests.erl", "lib/erlang/messenger/lib/eunit/src/eunit_tty.erl", "lib/erlang/messenger/lib/eunit/src/file_monitor.erl", "lib/erlang/messenger/lib/eunit/sys.config", "lib/erlang/messenger/lib/eunit/vsn.mk", "lib/erlang/messenger/pm_master_rel-0.1.boot", "lib/erlang/messenger/pm_master_rel-0.1.script", "lib/erlang/messenger/pm_node_rel-0.1.boot", "lib/erlang/messenger/pm_node_rel-0.1.script", "lib/erlang/messenger/src/master_app.erl", "lib/erlang/messenger/src/node_app.erl", "lib/erlang/messenger/src/pm_client.erl", "lib/erlang/messenger/src/pm_cluster.erl", "lib/erlang/messenger/src/pm_event_handler.erl", "lib/erlang/messenger/src/pm_master.erl", "lib/erlang/messenger/src/pm_master_supervisor.erl", "lib/erlang/messenger/src/pm_node.erl", "lib/erlang/messenger/src/pm_node_supervisor.erl", "lib/erlang/messenger/src/pm_packager.erl", "lib/erlang/messenger/src/utils.erl", "lib/poolparty.rb", "lib/poolparty/base_packages/haproxy.rb", "lib/poolparty/base_packages/heartbeat.rb", "lib/poolparty/base_packages/poolparty.rb", "lib/poolparty/base_packages/ruby.rb", "lib/poolparty/config/allowed_commands.yml", "lib/poolparty/core/array.rb", "lib/poolparty/core/exception.rb", "lib/poolparty/core/float.rb", "lib/poolparty/core/hash.rb", "lib/poolparty/core/kernel.rb", "lib/poolparty/core/module.rb", "lib/poolparty/core/my_open_struct.rb", "lib/poolparty/core/object.rb", "lib/poolparty/core/proc.rb", "lib/poolparty/core/string.rb", "lib/poolparty/core/symbol.rb", "lib/poolparty/core/time.rb", "lib/poolparty/dependency_resolutions/base.rb", "lib/poolparty/dependency_resolutions/puppet.rb", "lib/poolparty/exceptions/RemoteException.rb", "lib/poolparty/exceptions/ResourceException.rb", "lib/poolparty/exceptions/RuntimeException.rb", "lib/poolparty/exceptions/SpecException.rb", "lib/poolparty/exceptions/TemplateNotFound.rb", "lib/poolparty/exceptions/UnacceptableCommand.rb", "lib/poolparty/helpers/binary.rb", "lib/poolparty/helpers/console.rb", "lib/poolparty/helpers/display.rb", "lib/poolparty/helpers/messenger.rb", "lib/poolparty/helpers/optioner.rb", "lib/poolparty/helpers/provisioner_base.rb", "lib/poolparty/helpers/provisioners/master.rb", "lib/poolparty/helpers/provisioners/slave.rb", "lib/poolparty/modules/cloud_resourcer.rb", "lib/poolparty/modules/configurable.rb", "lib/poolparty/modules/definable_resource.rb", "lib/poolparty/modules/file_writer.rb", "lib/poolparty/modules/method_missing_sugar.rb", "lib/poolparty/modules/output.rb", "lib/poolparty/modules/pretty_printer.rb", "lib/poolparty/modules/resourcing_dsl.rb", "lib/poolparty/modules/s3_string.rb", "lib/poolparty/modules/safe_instance.rb", "lib/poolparty/monitors/base_monitor.rb", "lib/poolparty/monitors/monitors/cpu_monitor.rb", "lib/poolparty/monitors/monitors/memory_monitor.rb", "lib/poolparty/net/remote.rb", "lib/poolparty/net/remote_bases/ec2.rb", "lib/poolparty/net/remote_instance.rb", "lib/poolparty/net/remoter.rb", "lib/poolparty/net/remoter_base.rb", "lib/poolparty/plugins/git.rb", "lib/poolparty/plugins/line.rb", "lib/poolparty/plugins/svn.rb", "lib/poolparty/pool/base.rb", "lib/poolparty/pool/cloud.rb", "lib/poolparty/pool/custom_resource.rb", "lib/poolparty/pool/loggable.rb", "lib/poolparty/pool/plugin.rb", "lib/poolparty/pool/plugin_model.rb", "lib/poolparty/pool/pool.rb", "lib/poolparty/pool/resource.rb", "lib/poolparty/pool/resources/class_package.rb", "lib/poolparty/pool/resources/conditional.rb", "lib/poolparty/pool/resources/cron.rb", "lib/poolparty/pool/resources/directory.rb", "lib/poolparty/pool/resources/exec.rb", "lib/poolparty/pool/resources/file.rb", "lib/poolparty/pool/resources/gem.rb", "lib/poolparty/pool/resources/host.rb", "lib/poolparty/pool/resources/package.rb", "lib/poolparty/pool/resources/remote_file.rb", "lib/poolparty/pool/resources/service.rb", "lib/poolparty/pool/resources/sshkey.rb", "lib/poolparty/pool/resources/symlink.rb", "lib/poolparty/pool/resources/variable.rb", "lib/poolparty/pool/script.rb", "lib/poolparty/pool/tmp/.ppkeys", "lib/poolparty/pool/tmp/happydayz", "lib/poolparty/pool/tmp/install_master.sh", "lib/poolparty/pool/tmp/pool.spec", "lib/poolparty/pool/tmp/poolparty.pp", "lib/poolparty/pool/tmp/tc-instances.list", "lib/poolparty/templates/authkeys", "lib/poolparty/templates/cib.xml", "lib/poolparty/templates/fileserver.conf", "lib/poolparty/templates/gem", "lib/poolparty/templates/ha.cf", "lib/poolparty/templates/haproxy.conf", "lib/poolparty/templates/haresources", "lib/poolparty/templates/namespaceauth.conf", "lib/poolparty/templates/poolparty.monitor", "lib/poolparty/templates/puppet.conf", "lib/poolparty/version.rb", "lib/poolpartycl.rb", "poolparty.gemspec", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "spec/poolparty/base_packages/haproxy_spec.rb", "spec/poolparty/base_packages/heartbeat_spec.rb", "spec/poolparty/bin/console_spec.rb", "spec/poolparty/core/array_spec.rb", "spec/poolparty/core/float.rb", "spec/poolparty/core/hash_spec.rb", "spec/poolparty/core/kernel_spec.rb", "spec/poolparty/core/module_spec.rb", "spec/poolparty/core/object_spec.rb", "spec/poolparty/core/string_spec.rb", "spec/poolparty/core/time_spec.rb", "spec/poolparty/dependency_resolutions/base_spec.rb", "spec/poolparty/helpers/binary_spec.rb", "spec/poolparty/helpers/display_spec.rb", "spec/poolparty/helpers/messenger_spec.rb", "spec/poolparty/helpers/optioner_spec.rb", "spec/poolparty/helpers/provisioner_base_spec.rb", "spec/poolparty/helpers/provisioners/master_spec.rb", "spec/poolparty/helpers/provisioners/slave_spec.rb", "spec/poolparty/modules/cloud_resourcer_spec.rb", "spec/poolparty/modules/configurable_spec.rb", "spec/poolparty/modules/definable_resource.rb", "spec/poolparty/modules/file_writer_spec.rb", "spec/poolparty/modules/s3_string_spec.rb", "spec/poolparty/monitors/base_monitor_spec.rb", "spec/poolparty/monitors/monitors/cpu_monitor_spec.rb", "spec/poolparty/net/remote_bases/ec2_spec.rb", "spec/poolparty/net/remote_instance_spec.rb", "spec/poolparty/net/remote_spec.rb", "spec/poolparty/net/remoter_base_spec.rb", "spec/poolparty/net/remoter_spec.rb", "spec/poolparty/plugins/git_spec.rb", "spec/poolparty/plugins/line_spec.rb", "spec/poolparty/plugins/svn_spec.rb", "spec/poolparty/pool/base_spec.rb", "spec/poolparty/pool/cloud_spec.rb", "spec/poolparty/pool/configurers/files/ruby_basic.rb", "spec/poolparty/pool/configurers/files/ruby_plugins.rb", "spec/poolparty/pool/configurers/ruby_spec.rb", "spec/poolparty/pool/custom_resource_spec.rb", "spec/poolparty/pool/example_spec.rb", "spec/poolparty/pool/plugin_model_spec.rb", "spec/poolparty/pool/plugin_spec.rb", "spec/poolparty/pool/pool_spec.rb", "spec/poolparty/pool/resource_spec.rb", "spec/poolparty/pool/resources/class_package_spec.rb", "spec/poolparty/pool/resources/conditional_spec.rb", "spec/poolparty/pool/resources/cron_spec.rb", "spec/poolparty/pool/resources/directory_spec.rb", "spec/poolparty/pool/resources/exec_spec.rb", "spec/poolparty/pool/resources/file_spec.rb", "spec/poolparty/pool/resources/gem_spec.rb", "spec/poolparty/pool/resources/host_spec.rb", "spec/poolparty/pool/resources/package_spec.rb", "spec/poolparty/pool/resources/remote_file_spec.rb", "spec/poolparty/pool/resources/service_spec.rb", "spec/poolparty/pool/resources/sshkey_spec.rb", "spec/poolparty/pool/resources/symlink_spec.rb", "spec/poolparty/pool/resources/variable_spec.rb", "spec/poolparty/pool/script_spec.rb", "spec/poolparty/pool/test_plugins/sshkey_test", "spec/poolparty/pool/test_plugins/virtual_host_template.erb", "spec/poolparty/pool/test_plugins/webserver.rb", "spec/poolparty/poolparty_spec.rb", "spec/poolparty/spec_helper.rb", "tasks/cloud.rake", "tasks/deployment.rake", "tasks/development.rake", "tasks/ec2.rake", "tasks/environment.rake", "tasks/instance.rake", "tasks/server.rake", "tasks/spec.rake", "tasks/website.rake", "test/test_generator_helper.rb", "test/test_helper.rb", "test/test_pool_spec_generator.rb", "test/test_poolparty.rb", "test_manifest.pp", "website/index.html", "website/index.txt", "website/javascripts/rounded_corners_lite.inc.js", "website/stylesheets/code.css", "website/stylesheets/screen.css", "website/template.html.erb"]
13
13
  s.has_rdoc = true
14
14
  s.homepage = %q{http://poolparty.rubyforge.org}
15
15
  s.post_install_message = %q{Get ready to jump in the pool, you just installed poolpartyrb!
@@ -21,8 +21,9 @@ To get started, run the generator:
21
21
  Please check out the documentation for any questions or check out the google groups at
22
22
  http://groups.google.com/group/poolpartyrb
23
23
 
24
+ Tutorials are at http://poolpartyrb.com
24
25
 
25
- Don't forget to check out the plugin tutorial @ http://poolpartyrb.com for extending PoolParty!
26
+ Don't forget to check out the plugin tutorial @ http://poolpartyrb.com to extend PoolParty for your needs!
26
27
 
27
28
  For more information, check http://PoolPartyrb.com
28
29
  On IRC:
data/setup.rb CHANGED
@@ -1363,7 +1363,7 @@ class Installer
1363
1363
 
1364
1364
  def install_dir_conf(rel)
1365
1365
  # FIXME: should not remove current config files
1366
- # (rename previous file to .old/.org)
1366
+ # (rename preious file to .old/.org)
1367
1367
  install_files targetfiles(), "#{config('sysconfdir')}/#{rel}", 0644
1368
1368
  end
1369
1369
 
@@ -1542,12 +1542,12 @@ class Installer
1542
1542
 
1543
1543
  dir = File.basename(rel)
1544
1544
  Dir.mkdir dir unless File.dir?(dir)
1545
- prevdir = Dir.pwd
1545
+ predir = Dir.pwd
1546
1546
  Dir.chdir dir
1547
1547
  $stderr.puts '---> ' + rel if verbose?
1548
1548
  @currdir = rel
1549
1549
  yield
1550
- Dir.chdir prevdir
1550
+ Dir.chdir predir
1551
1551
  $stderr.puts '<--- ' + rel if verbose?
1552
1552
  @currdir = File.dirname(rel)
1553
1553
  end
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + '/../../../lib/poolparty/helpers/console'
3
3
 
4
4
  describe "Console" do
5
5
  before(:each) do
6
- ::File.stub!(:file?).with("pop").and_return true
6
+ ::File.stub!(:readable?).with("pop").and_return true
7
7
  end
8
8
  describe "load_pool" do
9
9
  before(:each) do
@@ -23,4 +23,9 @@ describe "Array" do
23
23
  @array.to_os
24
24
  end
25
25
  end
26
+ describe "to_option_string" do
27
+ it "should map the to_option_strings in an array of strings" do
28
+ ["hi", "be"].to_option_string.should == "[ 'hi', 'be' ]"
29
+ end
30
+ end
26
31
  end
@@ -30,7 +30,7 @@ describe "Hash" do
30
30
  it "should be able to flush out into a string into an array" do
31
31
  @a.flush_out.should == ["a => '10'","b => '20'","c => '30'"]
32
32
  end
33
- it "should be able to flush out with prev and posts" do
33
+ it "should be able to flush out with pre and posts" do
34
34
  @a.flush_out("hi", "ho").should == ["hia => '10'ho","hib => '20'ho","hic => '30'ho"]
35
35
  end
36
36
  describe "select" do
@@ -60,4 +60,22 @@ describe "Hash" do
60
60
  }.should_not raise_error
61
61
  end
62
62
  end
63
+ describe "append" do
64
+ before(:each) do
65
+ @hash = {:game => "token", :required => "for_play"}
66
+ end
67
+ it "should not destroy an option salready on the hash" do
68
+ @hash.append(:required => "to_play")[:game].should == "token"
69
+ end
70
+ it "should change the entry to an array if it already exists" do
71
+ @hash.append(:game => "coin")[:game].class.should == Array
72
+ end
73
+ it "should append the other hash's key to the end of the array" do
74
+ @hash.append(:game => "coin")[:game][-1].should == "coin"
75
+ end
76
+ it "should change the hash with the append(bang) option" do
77
+ @hash.append!(:game => "coin")
78
+ @hash[:game][-1].should == "coin"
79
+ end
80
+ end
63
81
  end
@@ -129,6 +129,19 @@ listen web_proxy 127.0.0.1:3000
129
129
  it "should return File['/etc/apache2/conf.d/base.conf'] as a string" do
130
130
  'File["/etc/apache2/conf.d/base.conf"]'.to_option_string.should == "File[\"/etc/apache2/conf.d/base.conf\"]"
131
131
  end
132
+ it "should turn a resource into a requires file" do
133
+ @cloud = cloud :app do
134
+ file(:name => "franke")
135
+ end
136
+ @file = @cloud.resource(:file).first
137
+ @file.to_option_string.should == "File['franke']"
138
+ end
139
+ it "should turn a function into a string without quotes" do
140
+ "active_nodes()".to_option_string.should == "active_nodes()"
141
+ end
142
+ it "should turna function into a string outsid ethe quotes with a parameter" do
143
+ "active_nodes(10)".to_option_string.should == "active_nodes(10)"
144
+ end
132
145
  end
133
146
  describe "sanitize" do
134
147
  it "should remove the periods from the string" do
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "Resolution spec" do
4
+ before(:each) do
5
+ @base = Class.new
6
+ @base.extend(DependencyResolutions::Base)
7
+ end
8
+ %w(to_s to_string).each do |meth|
9
+ eval "it 'should have the method #{meth} defined' do; @base.respond_to?(:#{meth}).should == true; end"
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ setup_cl
4
+
5
+ include PoolParty::Messenger
6
+
7
+ describe "Messenger" do
8
+ it "should have the method messenger_send!" do
9
+ Messenger.respond_to?(:messenger_send!).should == true
10
+ end
11
+ it "should call send_cmd on the client" do
12
+ Messenger.messenger_send!('send_cmd ["echo hi"]', true).should =~ /-run pm_client send_cmd/
13
+ end
14
+ end
@@ -31,8 +31,9 @@ describe "Option Parser" do
31
31
  end
32
32
  end
33
33
  it "should be able to take a block and set some options on the block" do
34
- o = PoolParty::Optioner.new(["-w"], {}) do |opts, optioner|
34
+ o = PoolParty::Optioner.new(["-w"]) do |opts, optioner|
35
35
  opts.on('-w', '--wee') { optioner.wee "wee" }
36
+ opts.on('-t t', '--teatime tea') { optioner.tea "time" }
36
37
  end
37
38
  o.wee.should == "wee"
38
39
  end
@@ -52,7 +52,7 @@ describe "ProvisionerBase" do
52
52
  ProvisionerBase.installers[:ubuntu].should_not be_nil
53
53
  end
54
54
  it "should be able to fetch the ubuntu installer with the helper method installer" do
55
- ProvisionerBase.new(@remote_instance,@cloud, "ubuntu").installer_for.should == "apt-get install -y "
55
+ ProvisionerBase.new(@remote_instance,@cloud, "ubuntu").installer_for.should == "aptitude install -y "
56
56
  end
57
57
  it "should be able to fetch the fedora installer with the helper method installer" do
58
58
  ProvisionerBase.new(@remote_instance,@cloud, "fedora").installer_for.should == "yum install "
@@ -18,7 +18,7 @@ describe "Master provisioner" do
18
18
  @master.stub!(:cloud).and_return @cloud
19
19
  end
20
20
  it "should call install_puppet_master" do
21
- @master.should_receive(:install_puppet_master)
21
+ @master.should_receive(:install_puppet)
22
22
  end
23
23
  it "should call create_local_hosts_entry" do
24
24
  @master.should_receive(:create_local_hosts_entry)
@@ -37,7 +37,7 @@ describe "Master provisioner" do
37
37
  end
38
38
  end
39
39
  it "should return install_puppet_master as apt-get install puppet factor" do
40
- @master.install_puppet_master.should =~ /apt-get install -y puppet puppetmaster/
40
+ @master.install_puppet.should =~ /install -y puppet puppetmaster/
41
41
  end
42
42
  it "should return setup basic structure" do
43
43
  @master.setup_basic_structure.should =~ /puppetmasterd --mkusers/
@@ -16,13 +16,13 @@ describe "Slave provisioner" do
16
16
  end
17
17
  describe "install_tasks" do
18
18
  it "should call install_puppet_slave" do
19
- @slave.should_receive(:install_puppet_master)
19
+ @slave.should_receive(:install_puppet)
20
20
  end
21
21
  after do
22
22
  @slave.install
23
23
  end
24
24
  end
25
- it "should return install_puppet as apt-get install puppet factor" do
26
- @slave.setup_puppet.should =~ /puppetd/
25
+ it "should return setup_puppet with the master" do
26
+ @slave.setup_puppet.should =~ /master/
27
27
  end
28
28
  end
@@ -43,6 +43,15 @@ describe "FileWriter" do
43
43
  @test.write_to_file_in_storage_directory(@filepath, "STRING TO WRITE")
44
44
  end
45
45
  end
46
+ describe "trying to copy the same file" do
47
+ before(:each) do
48
+ @filepath = @path
49
+ end
50
+ it "should not try to copy a file if they are the same file" do
51
+ FileUtils.should_not_receive(:cp)
52
+ @test.copy_file_to_storage_directory(@filepath)
53
+ end
54
+ end
46
55
  after(:all) do
47
56
  ::File.unlink @path if ::File.file? @path
48
57
  end
@@ -0,0 +1,19 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ include PoolParty::Monitors
4
+
5
+ describe "Monitors" do
6
+ it "should have a list of available monitors" do
7
+ PoolParty::Monitors.available_monitors.empty?.should == false
8
+ end
9
+ it "should register a module and append it to the available monitors" do
10
+ size = PoolParty::Monitors.available_monitors.size
11
+ PoolParty::Monitors.register_monitor :fake
12
+ size.should == PoolParty::Monitors.available_monitors.size - 1
13
+ end
14
+ end
15
+ describe "BaseMonitor" do
16
+ it "should have the singleton method run defined" do
17
+ BaseMonitor.respond_to?(:run).should == true
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ include PoolParty::Monitors
4
+
5
+ describe "CpuMonitor" do
6
+ before(:each) do
7
+ @mon = CpuMonitor.new
8
+ CpuMonitor.stub!(:new).and_return @mon
9
+ end
10
+ it "should have the singleton method run defined" do
11
+ CpuMonitor.respond_to?(:run).should == true
12
+ end
13
+ it "should call the method new" do
14
+ CpuMonitor.should_receive(:new).and_return @mon
15
+ CpuMonitor.run
16
+ end
17
+ end
@@ -65,6 +65,11 @@ describe "Remote Instance" do
65
65
  @ri.responding.should_not be_nil
66
66
  @ri.responding?.should == true
67
67
  end
68
-
68
+ it "should have the puppet_runner_command" do
69
+ @ri.respond_to?(:puppet_runner_command).should == true
70
+ end
71
+ it "should return the puppet_runner_command with puppetd" do
72
+ @ri.puppet_runner_command.should =~ /puppetd/
73
+ end
69
74
  end
70
75
  end
@@ -190,51 +190,60 @@ describe "Remote" do
190
190
  end
191
191
  describe "should_contract_cloud?" do
192
192
  end
193
- describe "expand_cloud_if_necessary" do
193
+ describe "expansions" do
194
194
  before(:each) do
195
- stub_list_from_remote_for(@tc)
196
- @tc.stub!(:request_launch_new_instances).and_return true
197
- @tc.stub!(:can_start_a_new_instance).and_return true
198
- @tc.stub!(:list_of_pending_instances).and_return []
199
- @tc.stub!(:prepare_to_configuration).and_return true
200
- @tc.stub!(:build_and_store_new_config_file).and_return true
195
+ @tc.stub!(:copy_ssh_app).and_return true
196
+ @tc.stub!(:prepare_reconfiguration).and_return "full"
197
+ PoolParty::Provisioner.stub!(:configure_master).and_return true
198
+ @tc.stub!(:wait).and_return true
201
199
  end
202
- it "should receive can_start_a_new_instance?" do
203
- @tc.should_receive(:can_start_a_new_instance?).once
204
- end
205
- it "should see if we should expand the cloud" do
206
- @tc.should_receive(:should_expand_cloud?).once.and_return false
207
- end
208
- it "should call request_launch_new_instances if we should_expand_cloud?" do
209
- @tc.should_receive(:should_expand_cloud?).once.and_return true
210
- @tc.should_receive(:request_launch_new_instances).once.and_return [{:ip => "127.0.0.5", :name => "node2"}]
211
- end
212
- it "should call a new slave provisioner" do
213
- @tc.stub!(:should_expand_cloud?).once.and_return true
214
- @tc.stub!(:request_launch_new_instances).once.and_return [{:ip => "127.0.0.5", :name => "node2"}]
215
- PoolParty::Provisioner.should_receive(:provision_slave).and_return true
216
- end
217
- after(:each) do
218
- @tc.expand_cloud_if_necessary
219
- end
220
- end
221
- describe "contract_cloud_if_necessary" do
222
- before(:each) do
223
- @tc.stub!(:request_termination_of_non_master_instance).and_return true
224
- @tc.stub!(:can_shutdown_an_instance?).and_return true
225
- end
226
- it "should receive can_shutdown_an_instance?" do
227
- @tc.should_receive(:can_shutdown_an_instance?).once
228
- end
229
- it "should see if we should contract the cloud" do
230
- @tc.should_receive(:should_contract_cloud?).once.and_return false
231
- end
232
- it "should call request_termination_of_non_master_instance if we should_contract_cloud?" do
233
- @tc.should_receive(:should_contract_cloud?).once.and_return true
234
- @tc.should_receive(:request_termination_of_non_master_instance).once.and_return true
200
+ describe "expand_cloud_if_necessary" do
201
+ before(:each) do
202
+ stub_list_from_remote_for(@tc)
203
+ @tc.stub!(:request_launch_new_instances).and_return true
204
+ @tc.stub!(:can_start_a_new_instance).and_return true
205
+ @tc.stub!(:list_of_pending_instances).and_return []
206
+ @tc.stub!(:prepare_to_configuration).and_return true
207
+ @tc.stub!(:build_and_store_new_config_file).and_return true
208
+ PoolParty::Provisioner.stub!(:provision_slaves).and_return true
209
+ end
210
+ it "should receive can_start_a_new_instance?" do
211
+ @tc.should_receive(:can_start_a_new_instance?).once
212
+ end
213
+ it "should see if we should expand the cloud" do
214
+ @tc.should_receive(:should_expand_cloud?).once.and_return false
215
+ end
216
+ it "should call request_launch_new_instances if we should_expand_cloud?" do
217
+ @tc.should_receive(:should_expand_cloud?).once.and_return true
218
+ @tc.should_receive(:request_launch_new_instances).once.and_return [{:ip => "127.0.0.5", :name => "node2"}]
219
+ end
220
+ it "should call a new slave provisioner" do
221
+ @tc.stub!(:should_expand_cloud?).once.and_return true
222
+ PoolParty::Provisioner.should_receive(:provision_slaves).and_return true
223
+ end
224
+ after(:each) do
225
+ @tc.expand_cloud_if_necessary
226
+ end
235
227
  end
236
- after(:each) do
237
- @tc.contract_cloud_if_necessary
228
+ describe "contract_cloud_if_necessary" do
229
+ before(:each) do
230
+ @tc.stub!(:request_termination_of_non_master_instance).and_return true
231
+ @tc.stub!(:can_shutdown_an_instance?).and_return true
232
+ @tc.stub!(:wait).and_return true
233
+ end
234
+ it "should receive can_shutdown_an_instance?" do
235
+ @tc.should_receive(:can_shutdown_an_instance?).once
236
+ end
237
+ it "should see if we should contract the cloud" do
238
+ @tc.should_receive(:should_contract_cloud?).once.and_return false
239
+ end
240
+ it "should call request_termination_of_non_master_instance if we should_contract_cloud?" do
241
+ @tc.should_receive(:should_contract_cloud?).once.and_return true
242
+ @tc.should_receive(:request_termination_of_non_master_instance).once.and_return true
243
+ end
244
+ after(:each) do
245
+ @tc.contract_cloud_if_necessary
246
+ end
238
247
  end
239
248
  end
240
249
  describe "rsync_storage_files_to" do
@@ -48,7 +48,7 @@ describe "Remoter" do
48
48
  @tc.rsync_command.should == "rsync --delete -azP --exclude cache -e '#{@tc.ssh_string}'"
49
49
  end
50
50
  it "should be able to rsync storage commands" do
51
- @tc.rsync_storage_files_to_command(@ri).should == "#{@tc.rsync_command} #{Dir.pwd}/tmp 192.168.0.22:/var/poolparty"
51
+ @tc.rsync_storage_files_to_command(@ri).should == "#{@tc.rsync_command} #{Base.storage_directory}/ 192.168.0.22:/var/poolparty"
52
52
  end
53
53
  end
54
54
  describe "launch_and_configure_master!" do
@@ -188,4 +188,5 @@ describe "Remoter" do
188
188
  end
189
189
  end
190
190
  end
191
+
191
192
  end
@@ -8,7 +8,7 @@ describe "Remote Instance" do
8
8
  @tc = TestClass.new
9
9
  end
10
10
  it "should be a string" do
11
- @tc.has_git(:name => "gitrepos.git", :source => "git://source.git").to_string.should =~ /file \{/
11
+ @tc.has_git(:name => "gitrepos.git", :source => "git://source.git").to_string.should =~ /exec \{/
12
12
  end
13
13
  it "should included the flushed out options" do
14
14
  @tc.has_git({:name => "git.git", :source => "git://source.git", :user => "finger"}).to_string.should =~ /finger@git:/
@@ -27,7 +27,7 @@ describe "Remote Instance" do
27
27
  end
28
28
  end
29
29
  it "should have the path set within the resource" do
30
- @tc.resource(:git).first.to_string.should =~ /file \{/
30
+ @tc.resource(:git).first.to_string.should =~ /exec \{/
31
31
  end
32
32
  end
33
33
  end