class Vominator::Route53
Public Class Methods
create_nameserver_records(client, zone, fqdn, nameservers, ttl=172800)
click to toggle source
# File lib/vominator/route53.rb, line 38 def self.create_nameserver_records(client, zone, fqdn, nameservers, ttl=172800) resource_records = Array.new nameservers.each do |nameserver| hash = Hash.new hash[:value] = nameserver resource_records.push hash end resp = client.change_resource_record_sets( :hosted_zone_id => zone, :change_batch => { :changes => [ { :action => "CREATE", :resource_record_set => { :name => fqdn, :type => 'NS', :ttl => ttl, :resource_records => resource_records } } ] } ) if resp.change_info.status == 'PENDING' return true else return false end end
create_record(client, zone, fqdn, ip, type='A', ttl=600)
click to toggle source
# File lib/vominator/route53.rb, line 70 def self.create_record(client, zone, fqdn, ip, type='A', ttl=600) resp = client.change_resource_record_sets( :hosted_zone_id => "/hostedzone/#{zone}", :change_batch => { :changes => [ { :action => "CREATE", :resource_record_set => { :name => "#{fqdn}.", :type => type, :ttl => ttl, :resource_records => [{ :value => "#{ip}" }] } } ] } ) if resp.change_info.status == 'PENDING' return true else return false end end
create_zone(client, domain_name)
click to toggle source
# File lib/vominator/route53.rb, line 20 def self.create_zone(client, domain_name) return client.create_hosted_zone(name: domain_name, caller_reference: "#{domain_name} + #{Time.now.to_i}") end
delete_record(client, zone, fqdn, ip, type='A', ttl=600)
click to toggle source
# File lib/vominator/route53.rb, line 97 def self.delete_record(client, zone, fqdn, ip, type='A', ttl=600) resp = client.change_resource_record_sets( :hosted_zone_id => "/hostedzone/#{zone}", :change_batch => { :changes => [ { :action => "DELETE", :resource_record_set => { :name => "#{fqdn}.", :type => type, :ttl => ttl, :resource_records => [{ :value => ip }] } } ] } ) if resp.change_info.status == 'PENDING' return true else return false end end
get_records(client, zone, max_items=50)
click to toggle source
# File lib/vominator/route53.rb, line 24 def self.get_records(client, zone, max_items=50) resp = client.list_resource_record_sets(:hosted_zone_id => zone, :max_items => max_items) records = resp[:resource_record_sets] while resp[:is_truncated] resp = client.list_resource_record_sets(:hosted_zone_id => zone, :max_items => max_items, :start_record_name => resp[:next_record_name]) records += resp[:resource_record_sets] end names = Array.new records.each do |record| names.push record[:name] end return names end
get_zone_by_domain(client, domain_name)
click to toggle source
# File lib/vominator/route53.rb, line 10 def self.get_zone_by_domain(client, domain_name) zones = client.list_hosted_zones_by_name(dns_name: domain_name).hosted_zones zone = nil zones.each do |z| zone = z if z.name == "#{domain_name}." end return zone end
get_zone_by_id(client, zone_id)
click to toggle source
# File lib/vominator/route53.rb, line 6 def self.get_zone_by_id(client, zone_id) return client.get_hosted_zone(id: zone_id).hosted_zone end