<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>Capfile</filename>
    </added>
    <added>
      <filename>bin/cloud-setup-dev</filename>
    </added>
    <added>
      <filename>lib/poolparty/provisioners/capistrano/tasks/base.rb</filename>
    </added>
    <added>
      <filename>lib/poolparty/provisioners/capistrano/tasks/master.rb</filename>
    </added>
    <added>
      <filename>lib/poolparty/provisioners/capistrano/tasks/slave.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -18,6 +18,7 @@ bin/cloud-provision
 bin/cloud-refresh
 bin/cloud-rsync
 bin/cloud-run
+bin/cloud-setup-dev
 bin/cloud-spec
 bin/cloud-ssh
 bin/cloud-start
@@ -193,6 +194,7 @@ lib/poolparty/dependency_resolutions/puppet.rb
 lib/poolparty/exceptions/CloudNotFoundException.rb
 lib/poolparty/exceptions/LoadRulesException.rb
 lib/poolparty/exceptions/MasterException.rb
+lib/poolparty/exceptions/ProvisionerException.rb
 lib/poolparty/exceptions/RemoteException.rb
 lib/poolparty/exceptions/ResourceException.rb
 lib/poolparty/exceptions/RuntimeException.rb
@@ -261,10 +263,11 @@ lib/poolparty/poolparty/resources/sshkey.rb
 lib/poolparty/poolparty/resources/symlink.rb
 lib/poolparty/poolparty/resources/variable.rb
 lib/poolparty/poolparty/script.rb
+lib/poolparty/provisioners/capistrano/capistrano.rb
+lib/poolparty/provisioners/capistrano/tasks/base.rb
+lib/poolparty/provisioners/capistrano/tasks/master.rb
+lib/poolparty/provisioners/capistrano/tasks/slave.rb
 lib/poolparty/provisioners/provisioner_base.rb
-lib/poolparty/provisioners/provisioners/become_master.rb
-lib/poolparty/provisioners/provisioners/master.rb
-lib/poolparty/provisioners/provisioners/slave.rb
 lib/poolparty/spec/core/string.rb
 lib/poolparty/spec/matchers/a_spec_extensions_base.rb
 lib/poolparty/spec/matchers/have_cron.rb
@@ -332,9 +335,6 @@ spec/poolparty/extra/deployments_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
@@ -384,6 +384,8 @@ spec/poolparty/poolparty/test_plugins/sshkey_test
 spec/poolparty/poolparty/test_plugins/virtual_host_template.erb
 spec/poolparty/poolparty/test_plugins/webserver.rb
 spec/poolparty/poolparty_spec.rb
+spec/poolparty/provisioners/capistrano/capistrano_spec.rb
+spec/poolparty/provisioners/provisioner_base_spec.rb
 spec/poolparty/spec/core/string_spec.rb
 spec/poolparty/spec_helper.rb
 tasks/cloud.rake</diff>
      <filename>Manifest.txt</filename>
    </modified>
    <modified>
      <diff>@@ -12,20 +12,20 @@ end
 o.loaded_clouds.each do |cloud|
 
   with_cloud(cloud) do
-
+    setup_dev
     instance_num = instance_number.to_i if instance_number
     
     if instance_num
       @instance = get_instance_by_number( instance_num )
-      instance_num == 0 ? Provisioner.provision_master(self, testing) : Provisioner.provision_slave(@instance, self, testing)
+      instance_num == 0 ? provisioner_for(master).install(testing) : provisioner_for(@instance).install(testing)
       # Provisioner.process_clean_reconfigure_for!(@instance, self, testing)
     else
       if provision_slave
         vputs &quot;Provisioning slaves&quot;
-        Provisioner.provision_slaves(self, testing)
+        verbose ? provisioner_for(nil).install(testing) : hide_output { provisioner_for(nil).install(testing) }
       else
         vputs &quot;Provisioning master&quot;
-        (verbose || testing) ? Provisioner.provision_master(self, testing) : hide_output { Provisioner.provision_master(self, testing) }
+        verbose ? provisioner_for(master).install(testing) : hide_output { provisioner_for(master).install(testing) }
       end
     end
     </diff>
      <filename>bin/cloud-provision</filename>
    </modified>
    <modified>
      <diff>@@ -10,6 +10,7 @@ end
 
 o.loaded_clouds.each do |cloud|
   with_cloud(cloud) do
+    setup_dev
     vputs header(&quot;Starting cloud #{name}&quot;)
     vputs &quot;#{list_of_running_instances.size} running instances (#{minimum_instances} - #{maximum_instances})&quot;
     # if list_of_running_instances.size &lt;= 1</diff>
      <filename>bin/cloud-start</filename>
    </modified>
    <modified>
      <diff>@@ -36,6 +36,15 @@ module PoolParty
         raise SpecException.new(&quot;Don't know how to handle instances cloud input #{arg}&quot;)
       end
     end
+    
+    def setup_dev
+      unless ::File.exists?(&quot;#{full_keypair_basename_path}.pub&quot;)
+        cmd = &quot;scp #{ssh_array.join(&quot; &quot;)} #{Base.user}@#{master.ip}:.ssh/authorized_keys #{full_keypair_basename_path}.pub&quot;
+        vputs &quot;Running #{cmd}&quot;
+        Kernel.system(cmd)
+      end
+    end
+    
     def full_keypair_path
       unless keypair_path
         raise RuntimeException.new(&quot;Keypair cannot be found&quot;)        
@@ -43,6 +52,14 @@ module PoolParty
         ::File.expand_path(keypair_path)
       end
     end
+    def full_pub_keypair_path
+      @full_pub_keypair_path ||= ::File.expand_path(&quot;#{full_keypair_basename_path}.pub&quot;)
+    end
+    def full_keypair_basename_path
+      dir = ::File.dirname(full_keypair_path)
+      basename = ::File.basename(full_keypair_path, ::File.extname(full_keypair_path))
+      ::File.join(dir, basename)
+    end
     
     def keypair_path
       keypair_paths.each do |path|</diff>
      <filename>lib/poolparty/modules/cloud_resourcer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,8 +2,8 @@ module PoolParty
   module FileWriter
     def copy_file_to_storage_directory(file, preceded=&quot;&quot;)
       make_base_directory
-      path = ::File.join( Base.storage_directory, preceded, ::File.basename(file) )      
-      FileUtils.cp file, path unless file == path || ::File.exists?(path)
+      path = ::File.join( Base.storage_directory, preceded, ::File.basename(file) )
+      ::FileUtils.cp file, path unless file == path || ::File.file?(path)
     end
     def cleanup_storage_directory
       Dir[&quot;#{Base.storage_directory}/**/*&quot;].each do |f|</diff>
      <filename>lib/poolparty/modules/file_writer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -139,7 +139,8 @@ begin
         [:ami, :availabilty_zone, :security_group]
       end
 
-      # Callback
+      # Hook
+      #TODO#: Change this so they match with the cap tasks
       def custom_install_tasks_for(o)
         arr = if has_cert_and_key?
           [ 
@@ -159,6 +160,7 @@ begin
           &quot;cd /var/poolparty &amp;&amp; wget http://rubyforge.org/frs/download.php/43666/amazon-ec2-0.3.1.gem -O amazon-ec2.gem 2&gt;&amp;1&quot;,
           &quot;/usr/bin/gem install -y --no-ri --no-rdoc amazon-ec2.gem 2&gt;&amp;1&quot;,
         ]
+        []
       end
 
       def custom_configure_tasks_for(o)</diff>
      <filename>lib/poolparty/net/remote_bases/ec2.rb</filename>
    </modified>
    <modified>
      <diff>@@ -28,11 +28,12 @@ module PoolParty
       # Includes StrictHostKeyChecking to no
       # Ssh with the user in Base
       # And including the keypair_path
+      # &quot;-l '#{Base.user}'&quot;, 
       def ssh_array
-        [&quot;-o StrictHostKeyChecking=no&quot;, &quot;-l '#{Base.user}'&quot;, '-i &quot;'+full_keypair_path+'&quot;']
+        [&quot;-o StrictHostKeyChecking=no&quot;, '-i &quot;'+full_keypair_path+'&quot;']
       end
       def rsync_command
-        &quot;rsync -azP --exclude cache -e '#{ssh_string}'&quot;
+        &quot;rsync -azP --exclude cache -e '#{ssh_string} -l #{Base.user}'&quot;
       end
       def remote_ssh_array
         [&quot;-o StrictHostKeyChecking=no&quot;, &quot;-l '#{Base.user}'&quot;, '-i &quot;'+remote_keypair_path+'&quot;']
@@ -188,12 +189,13 @@ module PoolParty
           last_instances.each do |inst|
             vputs &quot;Provision slave: #{inst}&quot;
             # hide_output {PoolParty::Provisioner.process_clean_reconfigure_for!(inst, self)}
-            PoolParty::Provisioner.provision_slave(inst, self, false) unless inst.master? rescue vputs &quot;Error&quot;
+            # PoolParty::Provisioner.provision_slave(inst, self, false) unless inst.master? rescue vputs &quot;Error&quot;
+            verbose ? provisioner_for(inst).install(testing) : hide_output { provisioner_for(inst).install(testing) }
             # hide_output {PoolParty::Provisioner.process_clean_reconfigure_for!(inst, self)}
             # cmd = &quot;. /etc/profile &amp;&amp; cloud-provision -i #{inst.name.gsub(/node/, '')} &amp;&quot;
             # vputs &quot;Provision slave with command #{cmd}&quot;
           end
-          PoolParty::Provisioner.reconfigure_master(self)
+          # PoolParty::Provisioner.reconfigure_master(self)
         end
       end
       # Launch the master and let the master handle the starting of the cloud
@@ -214,8 +216,8 @@ module PoolParty
             vputs &quot;&quot;
             vputs &quot;Provisioning master...&quot;
             # cleanup_storage_directory
-            verbose ? Provisioner.provision_master(self, testing) : hide_output { Provisioner.provision_master(self, testing) }
-            verbose ? Provisioner.clear_master_ssl_certs(self, testing) : hide_output { Provisioner.clear_master_ssl_certs(self, testing) }
+            @provisioner = PoolParty::Provisioner::Capistrano.new(master, self, :ubuntu)
+            verbose ? @provisioner.install(testing) : hide_output { @provisioner.install(testing) }
           
             after_launched
           end
@@ -306,7 +308,9 @@ module PoolParty
       
       # Ssh into the instance given
       def ssh_into(instance=nil)
-        Kernel.system &quot;#{ssh_command(instance)}&quot; if instance
+        cmd = &quot;#{ssh_command(instance)}&quot;
+        vputs &quot;Running #{cmd}&quot;
+        Kernel.system cmd if instance
       end
       # Find the instance by the number given
       # and then ssh into the instance</diff>
      <filename>lib/poolparty/net/remoter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,6 +24,7 @@ module PoolParty
       include PrettyPrinter
       include Configurable
       include CloudResourcer
+      include Provisioner
       # extend CloudResourcer
       # Net methods      
       include Remote
@@ -39,6 +40,7 @@ module PoolParty
         :ec2_dir =&gt; ENV[&quot;EC2_HOME&quot;],
         :keypair =&gt; (ENV[&quot;KEYPAIR_NAME&quot;].nil? || ENV[&quot;KEYPAIR_NAME&quot;].empty?) ? nil : ENV[&quot;KEYPAIR_NAME&quot;],
         :minimum_runtime =&gt; Base.minimum_runtime,
+        :user =&gt; Base.user,
         :ami =&gt; 'ami-44bd592d'
       })
       </diff>
      <filename>lib/poolparty/poolparty/cloud.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,8 +2,20 @@ module PoolParty
   module Provisioner
     class Capistrano &lt; ProvisionerBase
       
-      def process_install!(testing=false);run_cap(:install) unless testing;end
-      def process_configure!(testing=false);run_cap(:configure) unless testing;end
+      include ::Capistrano::Configuration::Actions::Invocation
+      
+      def process_install!(testing=false)
+        unless testing
+          @cloud.rsync_storage_files_to(@instance)
+          run_cap(:install)
+        end
+      end
+      def process_configure!(testing=false)
+        unless testing
+          @cloud.rsync_storage_files_to(@instance)
+          run_cap(:configure)
+        end
+      end
       
       def install_tasks
         provision_master? ? master_install_tasks : slave_install_tasks
@@ -19,13 +31,13 @@ module PoolParty
           &quot;base:add_provisioner_configs&quot;,&quot;base:setup_provisioner_config&quot;,
           &quot;base:install_provisioner&quot;, &quot;base:create_puppetrunner_command&quot;, &quot;base:create_puppetrerun_command&quot;,
           &quot;master:download_base_gems&quot;,&quot;master:install_base_gems&quot;, &quot;master:restart_provisioner_base&quot;
-        ].push(custom_install_tasks).map {|a| a.to_sym }
+        ].push(custom_install_tasks).flatten#.map {|a| a.to_sym }
       end
       def master_configure_tasks
         [
           &quot;master:create_local_node_entry_for_puppet&quot;, &quot;master:move_template_files&quot;, &quot;master:setup_poolparty_base_structure&quot;,
           &quot;master:move_provisioner_manifest&quot;, &quot;base:run_provisioner&quot;
-        ].push(custom_configure_tasks).map {|a| a.to_sym }
+        ].push(custom_configure_tasks).flatten#.map {|a| a.to_sym }
       end
       
       def slave_install_tasks
@@ -33,57 +45,72 @@ module PoolParty
           &quot;slave:add_master_to_hosts_file&quot;, &quot;slavbase:add_provisioner_configs&quot;, &quot;base:setup_provisioner_config&quot;,
           &quot;base:create_puppetrunner_command&quot;, &quot;base:create_puppetrerun_command&quot;, &quot;base:install_rubygems&quot;,
           &quot;base:install_provisioner&quot;, &quot;slave:stop_provisioner_daemon&quot;
-        ].push(custom_install_tasks).map {|a| a.to_sym }
+        ].push(custom_install_tasks).flatten#.map {|a| a.to_sym }
       end
       def slave_configure_tasks
         [
           &quot;base:run_provisioner&quot;
-        ].push(custom_configure_tasks).map {|a| a.to_sym }
+        ].push(custom_configure_tasks).flatten#.map {|a| a.to_sym }
       end
       # Run tasks after the initialized
       def loaded
         create_config
-        create_roles
-        setup_roles
       end
-      
+            
       # Create the roles for capistrano
       def create_roles
-        @config.set :master, @cloud.master
-        @config.set :slaves, @cloud.nonmaster_nonterminated_instances.join(&quot;, &quot;)
-        @config.set :all, @cloud.list_of_running_instances.join(&quot;, &quot;)
+        @config.role :master, &quot;#{@cloud.master.ip}&quot;
+        @config.role :slaves, @cloud.nonmaster_nonterminated_instances.map{|a| a.ip}.join(&quot;, &quot;)
+        @config.role :all, @cloud.list_of_running_instances.map{|a| a.ip}.join(&quot;, &quot;)
       end
       
-      # Create the config of Cap
-      def create_config
+      # Create the config for capistrano
+      def create_config        
         @config = ::Capistrano::Configuration.new
-        @config.logger.level = @cloud.verbose ? ::Capistrano::Logger::INFO : ::Capistrano::Logger::IMPORTANT
+        @config.logger.level = @cloud.verbose ? ::Capistrano::Logger::INFO : ::Capistrano::Logger::IMPORTANT        
+        
+        Dir[&quot;#{::File.dirname(__FILE__)}/tasks/*.rb&quot;].each {|a| @config.load a }                      
         
-        Dir[&quot;#{::File.dirname(__FILE__)}/*.rake&quot;].each {|f| @config.load(f) }
+        @config.ssh_options[:keys] = [@cloud.full_keypair_basename_path]
         
         if @cloud.deploy_file
           @config.load @cloud.deploy_file 
         else
-          set :user, @cloud.user
+          @config.set :user, @cloud.user
         end
       end
+      
+      # Prerun
+      def prerun_setup
+        create_roles
+        setup_roles
+      end
             
-      def run_cap(meth=:install)        
+      def run_cap(meth=:install)  
+        prerun_setup
+        
+        # puts @config.invoke_command(@config.task_list(:all).last.fully_qualified_name, {:roles =&gt; [:master]})
         commands = meth == :install ? install_tasks : configure_tasks
+        name = &quot;provisioner_#{meth}&quot;
         
-        define_task(meth, roles) do
+        define_task(name, roles) do
           via = fetch(:run_method, :sudo)
           commands.each do |command|
-            invoke_command command, :via =&gt; via
+            puts &quot;Command: #{command}&quot;
+            find_and_execute_task(command.to_sym, :before =&gt; :start, :after =&gt; :finish)
           end
         end
         
+        # @config.task_list(:all).each {|t| puts &quot;t: #{t.fully_qualified_name}&quot;}  
+                
         begin
           run(name)
+          # ::Capistrano::CLI.execute
+          # @config.execute
           return true
         rescue ::Capistrano::CommandError =&gt; e
           return false unless verbose
-          raise ProvisionerException.new(&quot;#{e}&quot;)
+          raise ProvisionerException.new(&quot;Error: #{e}&quot;)
         end
       end
       
@@ -105,7 +132,7 @@ module PoolParty
       end
 
       def task_sym(name)
-        &quot;install_#{name.to_task_name}&quot;.to_sym
+        &quot;#{name.to_s.downcase.underscore}&quot;.to_sym
       end
       
     end    </diff>
      <filename>lib/poolparty/provisioners/capistrano/capistrano.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,6 +8,10 @@ require 'capistrano/cli'
 module PoolParty
   module Provisioner
     
+    def provisioner_for(inst)
+      PoolParty::Provisioner::Capistrano.new(inst, self, :ubuntu)      
+    end
+    
     class ProvisionerBase
       attr_accessor :config, :loaded_tasks, :instance, :cloud
       </diff>
      <filename>lib/poolparty/provisioners/provisioner_base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@ module PoolParty
   module VERSION #:nodoc:
     MAJOR = 0
     MINOR = 2
-    TINY  = 81
+    TINY  = 83
 
     STRING = [MAJOR, MINOR, TINY].join('.')
   end</diff>
      <filename>lib/poolparty/version.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,6 +13,8 @@ end
 
 describe &quot;Remote&quot; do
   before(:each) do
+    @cloud = cloud :test_cloud do;end
+    
     @tc = TestClass.new
     @tc.stub!(:verbose).and_return false
     setup
@@ -207,13 +209,21 @@ describe &quot;Remote&quot; do
         before(:each) do
           setup
           stub_list_from_remote_for(@tc)
-          @tc.stub!(:request_launch_new_instances).and_return PoolParty::Remote::RemoteInstance.new(:ip =&gt; &quot;127.0.0.1&quot;, :num =&gt; 1)
+          @ri = PoolParty::Remote::RemoteInstance.new(:ip =&gt; &quot;127.0.0.1&quot;, :num =&gt; 1, :name =&gt; &quot;master&quot;)
+          @tc.stub!(:request_launch_new_instances).and_return @ri
           @tc.stub!(:can_start_a_new_instance).and_return true
           @tc.stub!(:list_of_pending_instances).and_return []
           @tc.stub!(:prepare_for_configuration).and_return true
           @tc.stub!(:build_and_store_new_config_file).and_return true          
           PoolParty::Provisioner.stub!(:provision_slaves).and_return true
-          Kernel.stub!(:system).and_return true
+          @cloud.stub!(:master).and_return @ri
+          @cloud.stub!(:list_of_nonterminated_instances).and_return [@ri]
+          @cloud.stub!(:full_keypair_path).and_return &quot;keyairs&quot;
+          
+          @provisioner = PoolParty::Provisioner::Capistrano.new(@ri, @cloud, :ubuntu)
+          PoolParty::Provisioner::Capistrano.stub!(:new).and_return @provisioner
+          @provisioner.stub!(:install).and_return true
+          @provisioner.stub!(:configure).and_return true
         end
         it &quot;should receive can_start_a_new_instance?&quot; do
           @tc.should_receive(:can_start_a_new_instance?).once
@@ -227,12 +237,7 @@ describe &quot;Remote&quot; do
         end
         it &quot;should call a new slave provisioner&quot; do
           @tc.stub!(:should_expand_cloud?).once.and_return true
-          PoolParty::Provisioner.should_receive(:provision_slave).at_least(1)
-          # Kernel.should_receive(:system).with(&quot;. /etc/profile &amp;&amp; cloud-provision -i 5 2&gt;&amp;1 &gt; /dev/null &amp;&quot;).and_return true
-        end
-        it &quot;should call reconfigure on the master to pick up the new slave&quot; do
-          @tc.stub!(:should_expand_cloud?).once.and_return true
-          PoolParty::Provisioner.should_receive(:reconfigure_master).once
+          @provisioner.should_receive(:install).at_least(1)
         end
         after(:each) do
           @tc.expand_cloud_if_necessary
@@ -269,12 +274,6 @@ describe &quot;Remote&quot; do
         @obj = Object.new
         @obj.stub!(:ip).and_return &quot;192.168.0.1&quot;
       end
-      it &quot;should raise an exception if it cannot find the keypair&quot; do
-        @tc.stub!(:keypair_path).and_return nil
-        lambda {
-          @tc.rsync_storage_files_to(@tc.master)
-        }.should raise_error
-      end
       it &quot;should call exec on the kernel&quot; do
         @tc.stub!(:keypair).and_return &quot;funky&quot;
         ::File.stub!(:exists?).with(&quot;#{File.expand_path(Base.base_keypair_path)}/id_rsa-funky&quot;).and_return true</diff>
      <filename>spec/poolparty/net/remote_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ describe &quot;Remoter&quot; do
   end
   describe &quot;ssh_string&quot; do
     it &quot;should have the ssh command&quot; do
-      @tc.ssh_string.should =~ /ssh -o StrictHostKeyChecking=no -l '#{Base.user}' -i/
+      @tc.ssh_string.should =~ /ssh -o StrictHostKeyChecking=no -i/
     end
     it &quot;should have the keypair in the ssh_string&quot; do
       @tc.ssh_string.should =~ /#{@tc.keypair}/
@@ -21,9 +21,6 @@ describe &quot;Remoter&quot; do
     it &quot;should have StrictHostKeyChecking set to no&quot; do
       @tc.ssh_array.include?(&quot;-o StrictHostKeyChecking=no&quot;).should == true
     end
-    it &quot;should have the user set to the base user class&quot; do
-      @tc.ssh_array.include?(&quot;-l '#{Base.user}'&quot;).should == true
-    end
     it &quot;should have the keypair path in the ssh_array&quot; do
       @tc.ssh_array.include?('-i &quot;'+@tc.full_keypair_path+'&quot;').should == true
     end
@@ -44,6 +41,7 @@ describe &quot;Remoter&quot; do
     before(:each) do
       @tc.stub!(:wait).and_return true
       stub_list_from_remote_for(@tc)
+      stub_remoting_methods_for(@tc)
       @tc.stub!(:maximum_instances).and_return 5
       @tc.stub!(:list_of_pending_instances).and_return []
       @tc.stub!(:list_of_nonterminated_instances).and_return []
@@ -51,9 +49,14 @@ describe &quot;Remoter&quot; do
       @tc.stub!(:master).and_return ris.first
       @tc.stub!(:after_launched).and_return true
       @tc.stub!(:verbose).and_return false
-      Provisioner.stub!(:provision_master).and_return true
-      Provisioner.stub!(:reconfigure_master).and_return true
-      Provisioner.stub!(:clear_master_ssl_certs).and_return true
+      ::File.stub!(:exists?).and_return true
+      
+      @pb = PoolParty::Provisioner::Capistrano.new(nil, @cloud)
+      PoolParty::Provisioner::Capistrano.stub!(:new).and_return @pb
+      @pb.stub!(:setup_runner)
+      @pb.stub!(:install).and_return true
+      @pb.stub!(:configure).and_return true
+      @pb.stub!(:create_roles).and_return true
     end
     it &quot;should have the method launch_master!&quot; do
       @tc.respond_to?(:launch_and_configure_master!).should == true
@@ -69,9 +72,6 @@ describe &quot;Remoter&quot; do
       @tc.stub!(:can_start_a_new_instance?).and_return true
       @tc.stub!(:is_master_running?).and_return false
     end
-    it &quot;should tell the provisioner to provision_master&quot; do
-      Provisioner.should_receive(:provision_master).once.and_return true
-    end
     after(:each) do
       @tc.launch_and_configure_master!
     end</diff>
      <filename>spec/poolparty/net/remoter_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -20,7 +20,9 @@ describe &quot;Capistrano provisioner&quot; do
       @pb.roles.should == [:master]
     end
     it &quot;should create the role as the slaves if the remote instance is nil&quot; do
-      PoolParty::Provisioner::Capistrano.new(nil, @cloud).roles.should == [:slaves]
+      newone = PoolParty::Provisioner::Capistrano.new(nil, @cloud)
+      newone.prerun_setup
+      newone.roles.should == [:slaves]
     end
     it &quot;should create the role as the slaves if the remote instance is not the master&quot; do
       @remote_instance.stub!(:master?).and_return false</diff>
      <filename>spec/poolparty/provisioners/capistrano/capistrano_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -104,6 +104,7 @@ def stub_list_from_remote_for(o, launch_stub=true)
   # o.stub!(:master).and_return @ris[0]
   o.stub!(:launch_new_instance!).and_return sample_instances.first if launch_stub  
   stub_list_of_instances_for(o)
+  stub_remoting_methods_for(o)
 end
 def stub_remoting_methods_for(o)
   o.stub!(:keypair).and_return &quot;fake_keypair&quot;</diff>
      <filename>spec/poolparty/spec_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -34,7 +34,7 @@
     &lt;h1&gt;PoolParty&lt;/h1&gt;
     &lt;div id=&quot;version&quot; class=&quot;clickable&quot; onclick='document.location = &quot;http://rubyforge.org/projects/poolparty&quot;; return false'&gt;
       &lt;p&gt;Get Version&lt;/p&gt;
-      &lt;a href=&quot;http://rubyforge.org/projects/poolparty&quot; class=&quot;numbers&quot;&gt;0.2.81&lt;/a&gt;
+      &lt;a href=&quot;http://rubyforge.org/projects/poolparty&quot; class=&quot;numbers&quot;&gt;0.2.83&lt;/a&gt;
     &lt;/div&gt;
     &lt;h1&gt;&amp;#8216;Easy cloud computing&amp;#8217;&lt;/h1&gt;
 &lt;h2&gt;What&lt;/h2&gt;</diff>
      <filename>website/index.html</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>lib/poolparty/provisioners/capistrano/base.rake</filename>
    </removed>
    <removed>
      <filename>lib/poolparty/provisioners/capistrano/master.rake</filename>
    </removed>
    <removed>
      <filename>lib/poolparty/provisioners/capistrano/slave.rake</filename>
    </removed>
    <removed>
      <filename>pkg/poolparty.gem</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>8e0a2335a5af2967806ae07f6adb945f08b8af6c</id>
    </parent>
  </parents>
  <author>
    <name>Ari Lerner</name>
    <email>ari.lerner@citrusbyte.com</email>
  </author>
  <url>http://github.com/auser/poolparty/commit/48a810c7a0f9cb414dbcc5680d3bc5bab9091e89</url>
  <id>48a810c7a0f9cb414dbcc5680d3bc5bab9091e89</id>
  <committed-date>2008-12-12T02:11:54-08:00</committed-date>
  <authored-date>2008-12-12T02:11:54-08:00</authored-date>
  <message>More cap migration</message>
  <tree>1acb1e422980c222a5e62270a9eea4e4bce8c717</tree>
  <committer>
    <name>Ari Lerner</name>
    <email>ari.lerner@citrusbyte.com</email>
  </committer>
</commit>
