auser-poolparty 0.2.15 → 0.2.16

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 (60) hide show
  1. data/Manifest.txt +28 -10
  2. data/bin/cloud +2 -2
  3. data/bin/cloud-provision +1 -1
  4. data/bin/cloud-run +19 -0
  5. data/bin/pool +2 -2
  6. data/bin/server-fire-cmd +16 -0
  7. data/bin/server-start-master +32 -0
  8. data/bin/server-start-node +32 -0
  9. data/lib/erlang/messenger/Rakefile +12 -0
  10. data/lib/erlang/messenger/ebin/master.app +19 -0
  11. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  12. data/lib/erlang/messenger/{lib/load_app.app → ebin/node.app} +6 -5
  13. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  14. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  15. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  16. data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
  17. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  18. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +7 -0
  19. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  20. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  21. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +7 -0
  22. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  23. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  24. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  25. data/lib/erlang/messenger/pm_master_rel-0.1.script +169 -0
  26. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  27. data/lib/erlang/messenger/pm_node_rel-0.1.script +169 -0
  28. data/lib/erlang/messenger/src/master_app.erl +39 -0
  29. data/lib/erlang/messenger/src/node_app.erl +39 -0
  30. data/lib/erlang/messenger/src/pm_client.erl +14 -0
  31. data/lib/erlang/messenger/src/pm_cluster.erl +4 -1
  32. data/lib/erlang/messenger/src/pm_event_handler.erl +21 -0
  33. data/lib/erlang/messenger/src/pm_master.erl +113 -21
  34. data/lib/erlang/messenger/src/pm_master_supervisor.erl +33 -1
  35. data/lib/erlang/messenger/src/pm_node.erl +111 -65
  36. data/lib/erlang/messenger/src/pm_node_supervisor.erl +22 -15
  37. data/lib/erlang/messenger/src/utils.erl +45 -0
  38. data/lib/poolparty/base_packages/ruby.rb +1 -1
  39. data/lib/poolparty/helpers/console.rb +3 -2
  40. data/lib/poolparty/helpers/optioner.rb +6 -2
  41. data/lib/poolparty/helpers/provisioner_base.rb +5 -3
  42. data/lib/poolparty/helpers/provisioners/slave.rb +3 -0
  43. data/lib/poolparty/modules/resourcing_dsl.rb +4 -0
  44. data/lib/poolparty/net/remote_instance.rb +1 -1
  45. data/lib/poolparty/net/remoter.rb +11 -4
  46. data/lib/poolparty/plugins/git.rb +6 -12
  47. data/lib/poolparty/version.rb +1 -1
  48. data/poolparty.gemspec +4 -4
  49. data/spec/poolparty/bin/console_spec.rb +1 -1
  50. data/spec/poolparty/helpers/optioner_spec.rb +2 -1
  51. data/spec/poolparty/helpers/provisioner_base_spec.rb +1 -1
  52. data/spec/poolparty/helpers/provisioners/master_spec.rb +1 -1
  53. data/spec/poolparty/net/remote_spec.rb +51 -42
  54. data/spec/poolparty/pool/resources/gem_spec.rb +0 -1
  55. data/website/index.html +1 -1
  56. metadata +34 -13
  57. data/bin/pool-start-monitor +0 -1
  58. data/lib/erlang/messenger/ebin/erl_crash.dump +0 -12138
  59. data/lib/erlang/messenger/ebin/load_app.beam +0 -0
  60. data/lib/erlang/messenger/src/load_app.erl +0 -26
@@ -1,33 +1,40 @@
1
- % Supervisor for the poolparty_messenger server
2
- %
3
- % Ari Lerner
4
- % CitrusByte
1
+ % This supervisor is responsible for monitoring the
2
+ % client service
5
3
 
6
4
  -module (pm_node_supervisor).
7
- -behaviour (supervisor).
5
+ -behaviour(supervisor).
6
+
7
+ -export([start/0, start_in_shell_for_testing/0, start_link/1, init/1]).
8
8
 
9
9
  -ifdef(EUNIT).
10
10
  -include_lib("eunit/include/eunit.hrl").
11
11
  -endif.
12
12
 
13
- -define (SERVER, ?MODULE).
13
+ start() ->
14
+ spawn(fun() ->
15
+ supervisor:start_link({local, ?MODULE}, ?MODULE, _Arg = [])
16
+ end).
14
17
 
15
- -export ([start_link/0, init/1]).
18
+ start_in_shell_for_testing() ->
19
+ {ok, Pid} = supervisor:start_link({local, ?MODULE}, ?MODULE, _Arg = []),
20
+ unlink(Pid).
16
21
 
17
- start_link() ->
18
- io:format("Starting load_supervisor...~n"),
19
- supervisor:start_link({local, ?SERVER}, ?MODULE, []).
22
+ start_link(Args) ->
23
+ supervisor:start_link({local, ?MODULE}, ?MODULE, Args).
20
24
 
21
25
  init([]) ->
22
26
  RestartStrategy = one_for_one,
23
27
  MaxRestarts = 3, % 1000
24
28
  MaxTimeBetRestarts = 30, % 3600
25
-
29
+
26
30
  SupFlags = {RestartStrategy, MaxRestarts, MaxTimeBetRestarts},
27
-
31
+
28
32
  LoadServers = [
29
- {load_server, {load_server, start_link, []}, permanent, 5000, worker, [load_server, load_client]}
33
+ {pm_node1,
34
+ {pm_node, start_link, []},
35
+ permanent, 5000, worker,
36
+ [pm_node]
37
+ }
30
38
  ],
31
-
39
+
32
40
  {ok, {SupFlags, LoadServers}}.
33
-
@@ -0,0 +1,45 @@
1
+ -module (utils).
2
+ -compile(export_all).
3
+
4
+ -ifdef(EUNIT).
5
+ -include_lib("eunit/include/eunit.hrl").
6
+ -endif.
7
+
8
+ % Turn a list from
9
+ % [{"0.66"}, {"0.32"}, []] -> [0.66, 0.32]
10
+ convert_responses_to_int_list(L) ->
11
+ Sum = lists:foldr( fun(Int, Sum) -> Int + Sum end, 0, [erlang:list_to_float(F) || {F} <- L] ),
12
+ average_for_list(Sum, L).
13
+
14
+ % Start a timer to fire off Fun after Time number of milliseconds
15
+ start_timer(Time, Fun) ->
16
+ register(clock, spawn(fun() -> tick_timer(Time, Fun) end)).
17
+
18
+ stop_timer() -> clock ! stop.
19
+
20
+ tick_timer(Time, Fun) ->
21
+ receive
22
+ stop ->
23
+ void
24
+ after Time ->
25
+ Fun(),
26
+ tick_timer(Time, Fun)
27
+ end.
28
+
29
+
30
+ % Private
31
+ % Get the average of the list
32
+ average_for_list(Num, L) ->
33
+ case length(L) of
34
+ 0 ->
35
+ 0;
36
+ _ ->
37
+ Num / length(L)
38
+ end.
39
+
40
+ % Recompiles the boot scripts
41
+ recompile_scripts(Vers) ->
42
+ systools:make_script("pm_node_rel-"++Vers, [local]),
43
+ systools:make_script("pm_master_rel-"++Vers, [local]).
44
+
45
+ % Tests
@@ -12,7 +12,7 @@ module PoolParty
12
12
  has_package(:name => "ruby1.8-dev")
13
13
  has_package(:name => "ruby1.8")
14
14
 
15
- has_line_in_file("export PATH=$PATH:/var/lib/gems/1.8/bin/", "/etc/profile")
15
+ has_line_in_file("export PATH=$PATH:/var/lib/gems/1.8/bin:/sbin", "/etc/profile")
16
16
 
17
17
  # exec(:name => "update-rubygems") do
18
18
  # command "gem update --system"
@@ -7,8 +7,9 @@ module PoolParty
7
7
 
8
8
  # Load a file that contains a pool into memory
9
9
  def load_pool(filename)
10
- unless filename && ::File.file?(filename)
11
- puts "Could not load pool"
10
+ filename = filename.chomp
11
+ unless filename && ::File.readable?(filename)
12
+ puts "Could not load pool: #{filename}"
12
13
  exit
13
14
  else
14
15
  PoolParty::Script.inflate(open(filename).read, File.dirname(filename))
@@ -9,7 +9,7 @@ module PoolParty
9
9
  include MethodMissingSugar
10
10
 
11
11
  def initialize(args=[], opts={}, &block)
12
- @arguments = args
12
+ @arguments = parse_args(args)
13
13
  @parse_options = opts[:parse_options] ? opts[:parse_options] : true
14
14
 
15
15
  set_default_options
@@ -17,6 +17,10 @@ module PoolParty
17
17
  self
18
18
  end
19
19
 
20
+ def parse_args(argv, safe=[])
21
+ argv
22
+ end
23
+
20
24
  def parent
21
25
  self
22
26
  end
@@ -47,7 +51,7 @@ module PoolParty
47
51
  exit
48
52
  end
49
53
 
50
- opts.parse!(@arguments)
54
+ opts.parse(@arguments.dup)
51
55
 
52
56
  process_options
53
57
  output_options if verbose
@@ -71,7 +71,7 @@ module PoolParty
71
71
  setup_runner(@cloud)
72
72
 
73
73
  unless testing
74
- logger.debug "Logging on to #{@instance.ip}"
74
+ puts "Logging on to #{@instance.ip}" if verbose
75
75
  @cloud.prepare_reconfiguration
76
76
  @cloud.rsync_storage_files_to(@instance)
77
77
 
@@ -95,6 +95,7 @@ module PoolParty
95
95
  setup_runner(@cloud)
96
96
 
97
97
  unless testing
98
+ puts "Logging on to #{@instance.ip}" if verbose
98
99
  @cloud.rsync_storage_files_to(@instance)
99
100
 
100
101
  cmd = "cd #{Base.remote_storage_path} && chmod +x configure_#{name}.sh && /bin/sh configure_#{name}.sh && rm configure_#{name}.sh"
@@ -181,7 +182,7 @@ module PoolParty
181
182
  # Package installers for general *nix operating systems
182
183
  def self.installers
183
184
  @installers ||= {
184
- :ubuntu => "apt-get install -y",
185
+ :ubuntu => "aptitude install -y",
185
186
  :fedora => "yum install",
186
187
  :gentoo => "emerge"
187
188
  }
@@ -230,7 +231,8 @@ module PoolParty
230
231
  "
231
232
  touch /etc/apt/sources.list
232
233
  echo 'deb http://mirrors.kernel.org/ubuntu hardy main universe' >> /etc/apt/sources.list
233
- apt-get update --fix-missing -y
234
+ aptitude update -y
235
+ aptitude autoclean
234
236
  "
235
237
  else
236
238
  "# No system upgrade needed"
@@ -19,6 +19,7 @@ module PoolParty
19
19
  <<-EOE
20
20
  if [ -z "$(grep -v '#' /etc/hosts | grep 'master')" ]; then echo "#{master_ip} puppet master" >> /etc/hosts; else echo "host already set"; fi
21
21
  cp #{Base.remote_storage_path}/namespaceauth.conf /etc/puppet/namespaceauth.conf
22
+ echo 'DAEMON_OPTS="-w 120 –fqdn #{@instance.name} –server master"' > /etc/default/puppet
22
23
  EOE
23
24
  end
24
25
 
@@ -32,7 +33,9 @@ module PoolParty
32
33
  # puppetd --listen --fqdn #{@instance.name}
33
34
  def start_puppet
34
35
  <<-EOS
36
+ ps aux | grep "puppetmasterd" | awk '{print $2}' | xargs kill
35
37
  rm -rf /etc/puppet/ssl*
38
+ puppetd --test 2>&1 &
36
39
  EOS
37
40
  end
38
41
 
@@ -42,6 +42,10 @@ module PoolParty
42
42
  end
43
43
  # Give us a template to work with on the resource
44
44
  # Make sure this template is moved to the tmp directory as well
45
+ #
46
+ # TODO: Change this method to store the template files for later
47
+ # copying to prevent unnecessary copying and tons of directories
48
+ # everywhere
45
49
  def template(file, opts={})
46
50
  raise TemplateNotFound.new("no template given") unless file
47
51
  raise TemplateNotFound.new("template cannot be found #{file}") unless ::File.file?(file)
@@ -66,7 +66,7 @@ module PoolParty
66
66
 
67
67
  # Commands for the servers
68
68
  def puppet_runner_command
69
- ". /etc/profile && puppetd --onetime --no-daemonize --logdest syslog --server master > /dev/null 2>&1"
69
+ ". /etc/profile && /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master 2>&1"
70
70
  end
71
71
  end
72
72
 
@@ -152,7 +152,7 @@ module PoolParty
152
152
  request_launch_new_instances(1) if list_of_pending_instances.size.zero? && can_start_a_new_instance? && !is_master_running?
153
153
 
154
154
  when_no_pending_instances do
155
- wait "10.seconds"
155
+ wait "20.seconds"
156
156
  hide_output { Provisioner.provision_master(self, testing) }
157
157
  end
158
158
 
@@ -180,8 +180,10 @@ module PoolParty
180
180
 
181
181
  reset!
182
182
  when_no_pending_instances do
183
- @ri = list_of_running_instances.last
184
- PoolParty::Provisioner.provision_slave(@ri, self, !force)
183
+ wait "20.seconds" # Give some time for ssh to startup
184
+ PoolParty::Provisioner.provision_slaves(self)
185
+ PoolParty::Provisioner.configure_master(self, testing)
186
+ # prepare_reconfiguration
185
187
  end
186
188
  end
187
189
  end
@@ -216,11 +218,16 @@ module PoolParty
216
218
  ssh_into( get_instance_by_number( num || 0 ) )
217
219
  end
218
220
 
221
+ # Run command on the instance by the number
222
+ def run_command_on_instance_number(cmd="ls -l", num=0)
223
+ run_command_on(cmd, get_instance_by_number( num || 0 ) )
224
+ end
225
+
219
226
  # Prepare reconfiguration on the master
220
227
  # TODO: Fix the killall
221
228
  def prepare_reconfiguration
222
229
  unless @prepared
223
- cmd = "killall ruby && rm -rf /etc/puppet/ssl/*; puppetmasterd --verbose; puppetd --test"
230
+ cmd = "killall ruby && rm -rf /etc/puppet/ssl/*; puppetmasterd --verbose; puppetd --test --no-daemonize 2>&1 &"
224
231
  run_command_on(cmd, master)
225
232
  @prepared = true
226
233
  end
@@ -4,23 +4,17 @@ module PoolParty
4
4
  virtual_resource(:git) do
5
5
 
6
6
  def loaded(opts={}, parent=self)
7
- install_git
7
+ has_git_repos
8
8
  end
9
-
10
- def install_git
11
- has_package(:name => "git-core") do
12
- has_git_repos
13
- end
14
- end
15
-
9
+
16
10
  def has_git_repos
17
11
  exec({:name => "git-#{name}"}) do
18
- command @parent.user ? "git clone #{@parent.user}@#{@parent.source} #{@parent.path}" : "git clone #{@parent.source} #{@parent.to ? @parent.to : ""}"
19
- cwd "#{@parent.cwd if @parent.cwd}"
20
- creates "#{::File.join( (@parent.cwd ? @parent.cwd : cwd), ::File.basename(@parent.source, ::File.extname(@parent.source)) )}/.git"
12
+ command parent.user ? "git clone #{parent.user}@#{parent.source} #{parent.path}" : "git clone #{parent.source} #{parent.to ? parent.to : ""}"
13
+ cwd "#{parent.cwd if parent.cwd}"
14
+ creates "#{::File.join( (parent.cwd ? parent.cwd : cwd), ::File.basename(parent.source, ::File.extname(parent.source)) )}/.git"
21
15
 
22
16
  exec(:name => "update-#{name}") do
23
- cwd ::File.dirname(@parent.creates)
17
+ cwd ::File.dirname(parent.creates)
24
18
  command "git pull"
25
19
  end
26
20
 
@@ -2,7 +2,7 @@ module PoolParty
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 15
5
+ TINY = 18
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  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.15"
3
+ s.version = "0.2.16"
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-20}
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", "server-get-load", "server-list-active", "server-rerun"]
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-fire-cmd", "server-get-load", "server-list-active", "server-rerun", "server-start-master", "server-start-node"]
11
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", "bin/server-get-load", "bin/server-list-active", "bin/server-rerun", "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/messenger/Makefile", "lib/erlang/messenger/README", "lib/erlang/messenger/Rakefile", "lib/erlang/messenger/control", "lib/erlang/messenger/ebin/erl_crash.dump", "lib/erlang/messenger/ebin/load_app.beam", "lib/erlang/messenger/ebin/pm_cluster.beam", "lib/erlang/messenger/ebin/pm_master.beam", "lib/erlang/messenger/ebin/pm_master_supervisor.beam", "lib/erlang/messenger/ebin/pm_node.beam", "lib/erlang/messenger/ebin/pm_node_supervisor.beam", "lib/erlang/messenger/ebin/tmp/templates/apache2.conf", "lib/erlang/messenger/ebin/tmp/templates/base.conf.erb", "lib/erlang/messenger/ebin/tmp/templates/browser_fixes.conf.erb", "lib/erlang/messenger/ebin/tmp/templates/mime-minimal.conf.erb", "lib/erlang/messenger/ebin/tmp/templates/virtual_host.conf.erb", "lib/erlang/messenger/lib/load_app.app", "lib/erlang/messenger/src/load_app.erl", "lib/erlang/messenger/src/pm_cluster.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/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/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/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/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/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/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"]
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-fire-cmd", "bin/server-get-load", "bin/server-list-active", "bin/server-rerun", "bin/server-start-master", "bin/server-start-node", "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/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/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/utils.beam", "lib/erlang/messenger/logs/pool_log.log", "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/utils.erl", "lib/erlang/messenger/tmp/templates/apache2.conf", "lib/erlang/messenger/tmp/templates/base.conf.erb", "lib/erlang/messenger/tmp/templates/browser_fixes.conf.erb", "lib/erlang/messenger/tmp/templates/mime-minimal.conf.erb", "lib/erlang/messenger/tmp/templates/virtual_host.conf.erb", "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/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/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/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/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/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!
@@ -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
@@ -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 "
@@ -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.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/
@@ -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
@@ -36,7 +36,6 @@ describe "Gem" do
36
36
  @gem.version.should == "2.2.0"
37
37
  end
38
38
  it "should not take the version of the parent on the child" do
39
- puts @gem.to_string
40
39
  @gem2.version.should == nil
41
40
  end
42
41
  end
data/website/index.html CHANGED
@@ -34,7 +34,7 @@
34
34
  <h1>PoolParty</h1>
35
35
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/poolparty"; return false'>
36
36
  <p>Get Version</p>
37
- <a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.15</a>
37
+ <a href="http://rubyforge.org/projects/poolparty" class="numbers">0.2.16</a>
38
38
  </div>
39
39
  <h1>&#8216;Easy cloud computing&#8217;</h1>
40
40
  <h2>What</h2>