class Fog::Compute::Glesys::Ips
Public Instance Methods
all()
click to toggle source
# File lib/fog/glesys/models/compute/ips.rb, line 13 def all attributes = {} attributes[:serverid] = serverid unless serverid.nil? ips = service.ip_list_own(attributes).body['response']['iplist'] load(ips) end
attach(ip, server_id=nil)
click to toggle source
# File lib/fog/glesys/models/compute/ips.rb, line 82 def attach(ip, server_id=nil) if server_id.nil? server_id = serverid end if server_id.nil? raise Fog::Errors::Error.new("You need to specify a server id") end server_id = server_id.serverid if server_id.is_a?(Fog::Compute::Glesys::Server) service.ip_add( :ipaddress => ip_from_object(ip), :serverid => server_id ) if server.nil? true else server.reload end end
attached()
click to toggle source
# File lib/fog/glesys/models/compute/ips.rb, line 25 def attached all.select { |ip| !ip.serverid.nil? } end
available()
click to toggle source
# File lib/fog/glesys/models/compute/ips.rb, line 29 def available all.select { |ip| ip.serverid.nil? } end
free(options = {})
click to toggle source
# File lib/fog/glesys/models/compute/ips.rb, line 33 def free(options = {}) default_options = { :version => 4 } if !server.nil? default_options[:datacenter] = server.datacenter default_options[:platform] = server.platform end options = default_options.merge!(options) %w{platform datacenter version}.each do |attr| raise Fog::Errors::Error.new("You need to specify ':#{attr}'") if !options.key?(attr.to_sym) end options[:ipversion] = options[:version] options.delete(:version) service.ip_list_free(options).body["response"]["iplist"]["ipaddresses"] end
get(ip)
click to toggle source
# File lib/fog/glesys/models/compute/ips.rb, line 20 def get(ip) data = service.ip_details( :ipaddress => ip).body['response']['details'] new data end
release(ip)
click to toggle source
# File lib/fog/glesys/models/compute/ips.rb, line 76 def release(ip) service.ip_release( :ipaddress => ip_from_object(ip) ) end
remove(ip, options = {})
click to toggle source
# File lib/fog/glesys/models/compute/ips.rb, line 105 def remove(ip, options = {}) new service.ip_remove({:ipaddress => ip_from_object(ip)}.merge!(options)).data.body["response"]["details"] end
take(ip, options = {})
click to toggle source
# File lib/fog/glesys/models/compute/ips.rb, line 55 def take(ip, options = {}) default_options = { :attach => false } options = default_options.merge!(options) data = service.ip_take( :ipaddress => ip_from_object(ip) ).body["response"]["details"] ip = new data if options[:attach] && serverid server.ips.attach ip, serverid ip.serverid = serverid end ip end
Private Instance Methods
ip_from_object(ip)
click to toggle source
# File lib/fog/glesys/models/compute/ips.rb, line 111 def ip_from_object(ip) ip.is_a?(Fog::Compute::Glesys::Ip) ? ip.ip : ip end