poolparty 0.2.6 → 0.2.18

Sign up to get free protection for your applications and to get access to all the features.
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