Class: Splicer::DnsMadeEasy::Provider

Inherits:
Provider
  • Object
show all
Defined in:
lib/splicer/dns_made_easy/provider.rb

Overview

Author:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Provider

Returns a new instance of Provider.



8
9
10
11
# File 'lib/splicer/dns_made_easy/provider.rb', line 8

def initialize(config)
  @config = config
  @client = Client.new(config.key, config.secret, api_mode: config.api_mode, use_ssl: config.use_ssl)
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



6
7
8
# File 'lib/splicer/dns_made_easy/provider.rb', line 6

def client
  @client
end

#recordsObject (readonly)

Returns the value of attribute records.



6
7
8
# File 'lib/splicer/dns_made_easy/provider.rb', line 6

def records
  @records
end

Instance Method Details

#create_record_in_zone(record, zone) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/splicer/dns_made_easy/provider.rb', line 54

def create_record_in_zone(record, zone)
  Splicer.logger.debug "[SPLICER][DNSMADEEASY] #create_record_in_zone record=#{record.inspect} zone=#{zone.inspect}"
  domain = find_domain(zone.name)
  unless domain.persisted?
    create_domain(zone)
    domain = find_domain(zone.name)
  end

  records = find_records(record.name, record.type, domain.id)
  return false unless records.empty?
  create_record(domain.id, record)
end

#create_zone(zone) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/splicer/dns_made_easy/provider.rb', line 13

def create_zone(zone)
  Splicer.logger.debug "[SPLICER][DNSMADEEASY] #create_zone zone=#{zone.inspect}"
  domain = find_domain(zone.name)
  return false if domain.persisted?

  create_domain(zone)

  zone.records.each do |record|
    create_record(domain.id, record)
  end
  true
end

#delete_record_in_zone(record, zone) ⇒ Object



33
34
35
36
37
38
39
40
41
42
# File 'lib/splicer/dns_made_easy/provider.rb', line 33

def delete_record_in_zone(record, zone)
  Splicer.logger.debug "[SPLICER][DNSMADEEASY] #delete_record_in_zone record=#{record.inspect} zone=#{zone.inspect}"
  domain = find_domain(zone.name)
  return [] unless domain.persisted?

  records = find_records(record.name, record.type, domain.id)
  return false if records.empty?

  delete_record(domain.id, records.first.id)
end

#delete_zone(zone) ⇒ Object



26
27
28
29
30
31
# File 'lib/splicer/dns_made_easy/provider.rb', line 26

def delete_zone(zone)
  Splicer.logger.debug "[SPLICER][DNSMADEEASY] #delete_zone zone=#{zone.inspect}"
  domain = find_domain(zone.name)
  return false unless domain.persisted?
  client.delete(domain_resource_url(domain.id))
end

#get_records_for(zone) ⇒ Object



72
73
74
75
76
77
# File 'lib/splicer/dns_made_easy/provider.rb', line 72

def get_records_for(zone)
  Splicer.logger.debug "[SPLICER][DNSMADEEASY] #get_records_for zone=#{zone.inspect}"
  domain = find_domain(zone.name)
  return [] unless domain.persisted?
  fetch_records(domain.id)
end

#get_zone_for(zone) ⇒ Object



67
68
69
70
# File 'lib/splicer/dns_made_easy/provider.rb', line 67

def get_zone_for(zone)
  Splicer.logger.debug "[SPLICER][DNSMADEEASY] #get_zone_for zone=#{zone.inspect}"
  find_domain(zone.name)
end

#update_record_in_zone(record, zone) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/splicer/dns_made_easy/provider.rb', line 44

def update_record_in_zone(record, zone)
  Splicer.logger.debug "[SPLICER][DNSMADEEASY] #update_record_in_zone record=#{record.inspect} zone=#{zone.inspect}"
  domain = find_domain(zone.name)
  return false unless domain.persisted?

  records = find_records(record.name, record.type, domain.id)
  return false if records.empty?
  update_record(domain.id, records.first.id, record)
end