module Collins::Api::IpAddress
Public Instance Methods
addresses_for_asset(asset_or_tag)
click to toggle source
# File lib/collins/api/ip_address.rb, line 59 def addresses_for_asset asset_or_tag asset = get_asset_or_tag asset_or_tag logger.debug("Getting IP addresses for asset #{asset.tag}") http_get("/api/asset/#{asset.tag}/addresses", {}, asset.location) do |response| parse_response response, :expects => 200, :default => [], :raise => strict? do |json| Collins::Address.from_json(json["data"]["ADDRESSES"]) end end end
asset_at_address(address)
click to toggle source
# File lib/collins/api/ip_address.rb, line 69 def asset_at_address address logger.debug("Finding asset at address #{address}") http_get("/api/asset/with/address/#{address}") do |response| parse_response response, :expects => 200, :default => nil, :raise => strict?, :as => :bare_asset end end
assets_in_pool(pool)
click to toggle source
# File lib/collins/api/ip_address.rb, line 76 def assets_in_pool pool logger.debug("Finding assets in pool #{pool}") http_get("/api/assets/with/addresses/in/#{pool}") do |response| parse_response response, :expects => 200, :default => [], :raise => strict? do |json| json["data"]["ASSETS"].map{|j| Collins::Asset.from_json(j, true)} end end end
ipaddress_allocate!(asset_or_tag, address_pool, count = 1)
click to toggle source
# File lib/collins/api/ip_address.rb, line 6 def ipaddress_allocate! asset_or_tag, address_pool, count = 1 asset = get_asset_or_tag asset_or_tag logger.debug("Allocating #{count} addresses for #{asset.tag} in pool #{address_pool}") parameters = { :count => count, :pool => address_pool } http_put("/api/asset/#{asset.tag}/address", parameters, asset.location) do |response| parse_response response, :expects => 201, :default => [] do |json| Collins::Address.from_json(json["data"]["ADDRESSES"]) end end end
ipaddress_delete!(asset_or_tag, pool = nil)
click to toggle source
# File lib/collins/api/ip_address.rb, line 36 def ipaddress_delete! asset_or_tag, pool = nil asset = get_asset_or_tag asset_or_tag logger.debug("Deleting addresses for asset #{asset.tag} in pool #{pool}") parameters = { :pool => pool } parameters = select_non_empty_parameters parameters http_delete("/api/asset/#{asset.tag}/addresses", parameters, asset.location) do |response| parse_response response, :expects => 200, :default => false, :raise => strict? do |json| json["data"]["DELETED"].to_s.to_i end end end
ipaddress_pools(show_all = true)
click to toggle source
# File lib/collins/api/ip_address.rb, line 50 def ipaddress_pools show_all = true logger.debug("Finding IP address pools") http_get("/api/address/pools", {:all => show_all}) do |response| parse_response response, :expects => 200, :default => [], :raise => strict? do |json| json["data"]["POOLS"] end end end
ipaddress_update!(asset_or_tag, old_address = nil, options = {})
click to toggle source
# File lib/collins/api/ip_address.rb, line 20 def ipaddress_update! asset_or_tag, old_address = nil, options = {} asset = get_asset_or_tag asset_or_tag logger.debug("Updating IP address for #{asset.tag}") parameters = { :old_address => old_address, :address => get_option(:address, options, nil), :gateway => get_option(:gateway, options, nil), :netmask => get_option(:netmask, options, nil), :pool => get_option(:pool, options, nil) } parameters = select_non_empty_parameters parameters http_post("/api/asset/#{asset.tag}/address", parameters, asset.location) do |response| parse_response response, :expects => [200,201], :default => false, :raise => strict? end end