class Proxy::Dns::Infoblox::Record

Attributes

connection[R]

Public Class Methods

new(host, connection, ttl) click to toggle source
Calls superclass method
# File lib/smart_proxy_dns_infoblox/dns_infoblox_main.rb, line 5
def initialize(host, connection, ttl)
  ENV['WAPI_VERSION']='2.0'
  @connection = connection
  super(host, ttl)
end

Public Instance Methods

create_a_record(fqdn, ip) click to toggle source
# File lib/smart_proxy_dns_infoblox/dns_infoblox_main.rb, line 11
def create_a_record(fqdn, ip)
  case a_record_conflicts(fqdn, ip) #returns -1, 0, 1
  when 1
    raise(Proxy::Dns::Collision, "'#{fqdn} 'is already in use")
  when 0 then
    return nil
  else
    do_create(Infoblox::Arecord, :connection => connection, :name => fqdn, :ipv4addr => ip)
  end
end
create_ptr_record(fqdn, ptr) click to toggle source
# File lib/smart_proxy_dns_infoblox/dns_infoblox_main.rb, line 22
def create_ptr_record(fqdn, ptr)
  case ptr_record_conflicts(fqdn, ptr_to_ip(ptr)) #returns -1, 0, 1
  when 1
    raise(Proxy::Dns::Collision, "'#{fqdn} 'is already in use")
  when 0 then
    return nil
  else
    do_create(Infoblox::Ptr, :connection => connection, :ptrdname => fqdn, :ipv4addr => ptr_to_ip(ptr))
  end
  # FIXME: add a reverse 'PTR' record with ip, fqdn
end
do_create(clazz, params) click to toggle source
# File lib/smart_proxy_dns_infoblox/dns_infoblox_main.rb, line 49
def do_create(clazz, params)
  clazz.new(params).post
end
do_delete(record, id) click to toggle source
# File lib/smart_proxy_dns_infoblox/dns_infoblox_main.rb, line 53
def do_delete(record, id)
  raise Proxy::Dns::NotFound, "Cannot find DNS entry for #{id}" if record.nil?
  record.delete || (raise Proxy::Dns::NotFound, "Cannot find DNS entry for #{id}")
end
remove_a_record(fqdn) click to toggle source
# File lib/smart_proxy_dns_infoblox/dns_infoblox_main.rb, line 34
def remove_a_record(fqdn)
  do_delete(Infoblox::Arecord.find(connection, :name => fqdn, :_max_results => 1).first, fqdn)
end
remove_ptr_record(ptr) click to toggle source
# File lib/smart_proxy_dns_infoblox/dns_infoblox_main.rb, line 38
def remove_ptr_record(ptr)
  ptr_record = Infoblox::Ptr.find(connection, :ipv4addr => ptr_to_ip(ptr), :_max_results => 1).first
  unless ptr_record.nil?
    ptr_record.ipv6addr = nil
    ptr_record.view = nil
  end

  do_delete(ptr_record, ptr)
  # FIXME: remove the reverse 'PTR' record with ip
end