Module: Collins::Api::IpAddress
- Included in:
- Collins::Api
- Defined in:
- lib/collins/api/ip_address.rb
Instance Method Summary collapse
- #addresses_for_asset(asset_or_tag) ⇒ Object
- #asset_at_address(address) ⇒ Object
- #assets_in_pool(pool) ⇒ Object
- #ipaddress_allocate!(asset_or_tag, address_pool, count = 1) ⇒ Object
- #ipaddress_delete!(asset_or_tag, pool = nil) ⇒ Object
- #ipaddress_pools(show_all = true) ⇒ Object
- #ipaddress_update!(asset_or_tag, old_address = nil, options = {}) ⇒ Object
Instance Method Details
#addresses_for_asset(asset_or_tag) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# 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) ⇒ Object
69 70 71 72 73 74 |
# 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) ⇒ Object
76 77 78 79 80 81 82 83 |
# 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) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 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) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# 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) ⇒ Object
50 51 52 53 54 55 56 57 |
# 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 = {}) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/collins/api/ip_address.rb', line 20 def ipaddress_update! asset_or_tag, old_address = nil, = {} 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, , nil), :gateway => get_option(:gateway, , nil), :netmask => get_option(:netmask, , nil), :pool => get_option(:pool, , 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 |