class Sunzi::Vps::DNS::DigitalOcean

Public Instance Methods

add(fqdn, ip) click to toggle source
# File lib/sunzi/vps/dns/digital_ocean.rb, line 13
def add(fqdn, ip)
  say 'adding the public IP to DigitalOcean DNS...'
  client.domain_records.create(
    DropletKit::DomainRecord.new(
      type: 'A',
      name: fqdn.sub('.' + @domain.name, ''),
      data: ip,
    ),
    for_domain: @domain.name
  )
end
delete(ip) click to toggle source
# File lib/sunzi/vps/dns/digital_ocean.rb, line 25
def delete(ip)
  say 'deleting the public IP from DigitalOcean DNS...'
  domain_record = client.domain_records.all(for_domain: @domain.name).find{|i| i.type == 'A' && i.data == ip }
  abort_with "ip address #{ip} was not found on DigitalOcean DNS!" unless domain_record
  client.domain_records.delete(id: domain_record.id, for_domain: @domain.name)
end
verify() click to toggle source
# File lib/sunzi/vps/dns/digital_ocean.rb, line 6
def verify
  @domain = client.domains.find(name: @zone)
rescue DropletKit::Error => e
  abort_with "zone for #{@zone} was not found on DigitalOcean DNS!" if e.message =~ /not_found/
  raise
end