class Rackspace::AutoScale
Public Class Methods
new()
click to toggle source
# File lib/capistrano/rackspace.rb, line 46 def initialize @config = Configuration.instantiate @autoscale_service = Fog::Rackspace::AutoScale.new(@config.common) @compute_service = Fog::Compute.new(@config.compute) end
Public Instance Methods
addresses()
click to toggle source
# File lib/capistrano/rackspace.rb, line 52 def addresses @server_addresses_public ||= addresses_by_type('public') end
private_addresses()
click to toggle source
# File lib/capistrano/rackspace.rb, line 56 def private_addresses @server_addresses_private ||= addresses_by_type('private') end
Private Instance Methods
addresses_by_type(type)
click to toggle source
# File lib/capistrano/rackspace.rb, line 62 def addresses_by_type(type) server_ids.map { |id| @compute_service.servers.get id } .flat_map { |h| h.addresses[type] } # only the type we want (private|public) .select { |iface| iface['version'] == 4 } .map { |iface| iface["addr"] } end
server_ids()
click to toggle source
# File lib/capistrano/rackspace.rb, line 69 def server_ids @autoscale_service.groups .find { |g| g.group_config.name == @config.autoscale_group } .state['active'] .map { |h| h['id'] } end