summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRodrigo Coutinho <digao@osfeio.com>2017-12-29 18:32:36 -0200
committerGitHub <noreply@github.com>2017-12-29 18:32:36 -0200
commitf75b83f1713a7c7aacfcdd8a4134a9113981d136 (patch)
tree6e4ca433c2665b002f0c885dde82bdab16556429 /lib
parentbump version (diff)
Fix test suite (#11)
* Fix broken specs and update exvcr * Provide default configuration to run tests * Show nameservers in zone
Diffstat (limited to 'lib')
-rw-r--r--lib/powerdnsex/managers/records_manager.ex12
-rw-r--r--lib/powerdnsex/managers/zones_manager.ex5
-rw-r--r--lib/powerdnsex/models/resource_record_set.ex8
3 files changed, 15 insertions, 10 deletions
diff --git a/lib/powerdnsex/managers/records_manager.ex b/lib/powerdnsex/managers/records_manager.ex
index c5dd051..9b6a96f 100644
--- a/lib/powerdnsex/managers/records_manager.ex
+++ b/lib/powerdnsex/managers/records_manager.ex
@@ -2,7 +2,7 @@ defmodule PowerDNSex.Managers.RecordsManager do
require Logger
alias PowerDNSex.HttpClient
- alias PowerDNSex.Models.{Zone, Record, Error}
+ alias PowerDNSex.Models.{Zone, Error}
alias PowerDNSex.Models.ResourceRecordSet, as: RRSet
alias PowerDNSex.Managers.ZonesManager
alias HTTPoison.Response
@@ -29,7 +29,7 @@ defmodule PowerDNSex.Managers.RecordsManager do
updated_rrset = Map.merge(updated_rrset, %{changetype: "REPLACE"})
patch(zone, updated_rrset)
else
- error_msg = "Record #{rrset_name}, type #{rrset_type}, not found!"
+ error_msg = "Record #{rrset_find_params.name}, type #{rrset_type}, not found!"
{:error, %Error{error: error_msg, http_status_code: 404}}
end
end
@@ -41,7 +41,7 @@ defmodule PowerDNSex.Managers.RecordsManager do
###
# Private
- ##
+ ###
defp process_request_response(%Response{body: body, status_code: status}) do
case status do
@@ -70,10 +70,4 @@ defmodule PowerDNSex.Managers.RecordsManager do
defp patch(%Zone{} = zone, %{} = rrset_attrs) do
patch(zone, RRSet.build(rrset_attrs))
end
-
- defp has_attrs?(rrset, attrs) do
- attrs
- |> Map.keys
- |> Enum.all?(&(equal_attr?(&1, attrs[&1], rrsets)))
- end
end
diff --git a/lib/powerdnsex/managers/zones_manager.ex b/lib/powerdnsex/managers/zones_manager.ex
index 0430223..c7ec1ab 100644
--- a/lib/powerdnsex/managers/zones_manager.ex
+++ b/lib/powerdnsex/managers/zones_manager.ex
@@ -56,8 +56,11 @@ defmodule PowerDNSex.Managers.ZonesManager do
end
defp decode_body(body) do
- body
+ zone = body
|> Poison.decode!(as: %Zone{rrsets:
[%ResourceRecordSet{records: [%Record{}]}]})
+
+ nameservers = ResourceRecordSet.nameservers(zone.rrsets)
+ Map.put(zone, :nameservers, nameservers)
end
end
diff --git a/lib/powerdnsex/models/resource_record_set.ex b/lib/powerdnsex/models/resource_record_set.ex
index c0845d9..1a410b1 100644
--- a/lib/powerdnsex/models/resource_record_set.ex
+++ b/lib/powerdnsex/models/resource_record_set.ex
@@ -47,6 +47,14 @@ defmodule PowerDNSex.Models.ResourceRecordSet do
end)
end
+ def nameservers(rrsets) do
+ rrset = Enum.find(rrsets, fn(rrset) -> rrset.type == "NS" end)
+ nameservers = case rrset do
+ nil -> []
+ _ -> Enum.map(rrset.records, &(&1.content) )
+ end
+ end
+
###
# Private
###