Sha256: 1534440d93b3d4c57610eb2398a500dcf0d48b4677353c18411b962960caebdf

Contents?: true

Size: 1.14 KB

Versions: 6

Compression:

Stored size: 1.14 KB

Contents

$:.unshift(File.join(File.dirname(__FILE__)))
require "poolparty"
require "poolpartycl"

module PoolParty
  module Capistrano
    
    $cap_clouds = {}
    
    def set_poolparty_file(file)
      load_pool file
    end
    
    def set_cloud(name)
      cld = PoolParty::Cloud.cloud(name)
      if cld && !cloud_retrieved_already?
        $cap_clouds[name] = cld
        @cloud = cld
        instance_eval <<-EOE
  ssh_options[:keys] = [ '#{cld.full_keypair_basename_path}' ]
  set :user, '#{cld.user}'
  set :username, "#{cld.user}"
  ssh_options[:forward_agent] = true
  EOE
      end
      cld
    end
    
    def cloud_retrieved_already?
      $cap_clouds.key?(name)
    end
    def get_cloud(name)
      set_cloud(name)
    end
    
    def cloud_master(name)
      get_cloud(name).ip
    end
    
    def set_role_for_all_instances(role, name)
      ips = get_cloud(name).list_of_running_instances.map {|ri| ri.ip }
      ips.each {|ip| send :role, role.to_sym, "#{ip}"}
    end
  end
end

module Capistrano
  class Configuration
    include ::PoolParty::Capistrano
        
    # Dir["#{::File.dirname(__FILE__)}/capistrano/*.rb"].each {|f| pload f }
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
auser-poolparty-0.2.90 lib/poolparty/capistrano.rb
auser-poolparty-0.2.91 lib/poolparty/capistrano.rb
auser-poolparty-0.2.92 lib/poolparty/capistrano.rb
auser-poolparty-0.2.93 lib/poolparty/capistrano.rb
auser-poolparty-0.2.94 lib/poolparty/capistrano.rb
auser-poolparty-1.0.0 lib/poolparty/capistrano.rb