lib/infoblox/resource/host.rb in infoblox-0.2.8 vs lib/infoblox/resource/host.rb in infoblox-0.2.9

- old
+ new

@@ -1,28 +1,43 @@ module Infoblox class Host < Resource - remote_attr_accessor :ipv4addrs, :name, :configure_for_dns, + remote_attr_accessor :ipv4addrs, :name, :configure_for_dns, :aliases, :extensible_attributes, :view wapi_object "record:host" + ## + # The more robust way to add IP addresses to your host record, + # allowing you to set all the attributes. + # + # Example: + # + # host.ipv4addrs=[{:ipv4addr => '10.10.10.10', :mac => '0x0x0x0x0x0x0x'}] + # def ipv4addrs=(attrs=[]) attrs.each do |att| ipv4addrs << HostIpv4addr.new(att) end end + ## + # Add an IP address to this host. Only allows setting the ipv4addr field + # of the remote HostIpv4Addr record. If you need to set other fields, + # such as mac or configure_for_dns, use #ipv4addrs= + # def add_ipv4addr(address) ipv4addrs << HostIpv4addr.new(:ipv4addr => address) end def ipv4addrs @ipv4addrs ||= [] end def remote_attribute_hash(write=false, post=false) super.tap do |hsh| - hsh[:ipv4addrs] = ipv4addrs.map{|i| {:ipv4addr => i.ipv4addr}} + hsh[:ipv4addrs] = ipv4addrs.map do |i| + i.remote_attribute_hash(write, post).delete_if{|k,v| v.nil? } + end end end end end