From f75b83f1713a7c7aacfcdd8a4134a9113981d136 Mon Sep 17 00:00:00 2001 From: Rodrigo Coutinho Date: Fri, 29 Dec 2017 18:32:36 -0200 Subject: Fix test suite (#11) * Fix broken specs and update exvcr * Provide default configuration to run tests * Show nameservers in zone --- lib/powerdnsex/managers/records_manager.ex | 12 +++--------- lib/powerdnsex/managers/zones_manager.ex | 5 ++++- lib/powerdnsex/models/resource_record_set.ex | 8 ++++++++ 3 files changed, 15 insertions(+), 10 deletions(-) (limited to 'lib') 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 ### -- cgit v1.2.3