module Capistrano::Rack

Constants

VERSION

Public Instance Methods

rack_autoscale(roles=nil, group_name='') click to toggle source
# File lib/capistrano/rack.rb, line 37
def rack_autoscale(roles=nil, group_name='')
  connection_options ||= fetch(:rack_connection_options) || {}
  addr_type ||= fetch(:rack_addr_type) || :private

  rackspace_config = RackspaceConfig.load()
  if !connection_options.empty? then
    rackspace_config.merge!({:connection_options => connection_options})
  end

  @compute_service = Fog::Compute.new(rackspace_config.merge({
                                                               :provider => 'Rackspace',
                                                               :version => :v2,
                                                             }))
  @autoscale_service = Fog::Rackspace::AutoScale.new(rackspace_config)

  # Get the servers Ids inside the specified group name
  @autoscale_service.groups.find { |g| g.group_config.name == group_name }.state['active']
    .map { |server| server['id'] }
    .map { |id| @compute_service.servers.get id }
    .flat_map { |h| h.addresses[addr_type.to_s] }
    .select { |iface| iface['version'] == 4 }
    .map { |iface| iface['addr'] }
    .each { |server_addr| server server_addr, { :roles => (roles || %w{app}) } }
end
rack_servers(roles=nil, regex_str='') click to toggle source
# File lib/capistrano/rack.rb, line 13
def rack_servers(roles=nil, regex_str='')
  connection_options ||= fetch(:rack_connection_options) || {}
  addr_type ||= fetch(:rack_addr_type) || :private

  @compute_service = Fog::Compute.new(RackspaceConfig.load()
                                       .merge({
                                                :provider => 'Rackspace',
                                                :version => :v2,
                                                :connection_options => connection_options
                                              }))

  # List all servers and filter them based on the passed 'regex_str' parameter
  @compute_service.list_servers.body['servers']
    .select { |server| !server['name'].match(/#{regex_str}/).nil? }
    .flat_map { |s| s['addresses'][addr_type.to_s] }
    .select { |iface| iface['version'] == 4 }
    .map { |iface| iface['addr'] }
    .each { |server_addr| server server_addr, { :roles => (roles || %w{app}) } }
end
rackspace_autoscale(roles=nil, group_name='', addr_type=:private, config_file=nil, connection_options={}) click to toggle source
# File lib/capistrano/rack.rb, line 62
def rackspace_autoscale(roles=nil, group_name='', addr_type=:private, config_file=nil, connection_options={})
  # DEPRECATED: Please use #rack_autoscale instead
end
rackspace_servers(roles=nil, regex_str='', addr_type=:private, config_file=nil, connection_options={}) click to toggle source
# File lib/capistrano/rack.rb, line 33
def rackspace_servers(roles=nil, regex_str='', addr_type=:private, config_file=nil, connection_options={})
  # DEPRECATED: Please use #rack_servers instead
end