Class: RecordStore::Provider::DNSimple
Class Method Summary
collapse
apply_changeset, build_zone, freezable?, provider_for, record_types, thawable?, to_s
Class Method Details
.add(record, zone) ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/record_store/provider/dnsimple.rb', line 10
def add(record, zone)
record_hash = api_hash(record, zone)
res = session.create_record(
zone,
record_hash.fetch(:name),
record.type,
record_hash.fetch(:content),
ttl: record_hash.fetch(:ttl),
priority: record_hash.fetch(:prio, nil)
)
if record.type == 'ALIAS'
txt_alias = retrieve_current_records(zone: zone).detect do |rr|
rr.type == 'TXT' && rr.fqdn == record.fqdn && rr.txtdata == "ALIAS for #{record.alias.chomp('.')}"
end
remove(txt_alias, zone)
end
res
end
|
.remove(record, zone) ⇒ Object
31
32
33
|
# File 'lib/record_store/provider/dnsimple.rb', line 31
def remove(record, zone)
session.delete_record(zone, record.id)
end
|
.retrieve_current_records(zone:, stdout: $stdout) ⇒ Object
returns an array of Record objects that match the records which exist in the provider
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/record_store/provider/dnsimple.rb', line 41
def retrieve_current_records(zone:, stdout: $stdout)
session.list_records(zone).body.map do |record|
record_body = record.fetch('record')
begin
build_from_api(record_body, zone)
rescue StandardError
stdout.puts "Cannot build record: #{record_body}"
raise
end
end.select(&:present?)
end
|
.supports_alias? ⇒ Boolean
6
7
8
|
# File 'lib/record_store/provider/dnsimple.rb', line 6
def supports_alias?
true
end
|
.update(id, record, zone) ⇒ Object
35
36
37
38
|
# File 'lib/record_store/provider/dnsimple.rb', line 35
def update(id, record, zone)
record_hash = api_hash(record, zone)
session.update_record(zone, id, api_hash(record, zone))
end
|
.zones ⇒ Object
Returns an array of the zones managed by provider as strings
55
56
57
|
# File 'lib/record_store/provider/dnsimple.rb', line 55
def zones
session.zones.map(&:domain)
end
|