Class: Proxy::Dns::Infoblox::Record
- Inherits:
-
Record
- Object
- Record
- Proxy::Dns::Infoblox::Record
- Defined in:
- lib/smart_proxy_dns_infoblox/dns_infoblox_main.rb
Instance Attribute Summary collapse
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
Instance Method Summary collapse
- #create_a_record(fqdn, ip) ⇒ Object
- #create_ptr_record(fqdn, ptr) ⇒ Object
- #do_create(clazz, params) ⇒ Object
- #do_delete(record, id) ⇒ Object
-
#initialize(host, connection, ttl) ⇒ Record
constructor
A new instance of Record.
- #remove_a_record(fqdn) ⇒ Object
- #remove_ptr_record(ptr) ⇒ Object
Constructor Details
#initialize(host, connection, ttl) ⇒ Record
Returns a new instance of Record.
5 6 7 8 9 |
# 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 |
Instance Attribute Details
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
3 4 5 |
# File 'lib/smart_proxy_dns_infoblox/dns_infoblox_main.rb', line 3 def connection @connection end |
Instance Method Details
#create_a_record(fqdn, ip) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# 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) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# 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) ⇒ Object
49 50 51 |
# 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) ⇒ Object
53 54 55 56 |
# 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) ⇒ Object
34 35 36 |
# 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) ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# 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 |