summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Freire <code.tiago.frire@locaweb.com.br>2016-08-22 21:26:56 -0300
committerTiago Freire <code.tiago.frire@locaweb.com.br>2016-08-26 14:19:28 -0300
commit416539a6acb4391b52f80d91b96fdab07658953d (patch)
tree6ea82b452f3acfe8f64ef703ed0386b6fca561a4
parentAdd Delete Record feature (diff)
WIP - Add elixir GenServer
-rw-r--r--lib/powerdnsex.ex68
-rw-r--r--lib/powerdnsex/config.ex7
-rw-r--r--lib/powerdnsex/http_client.ex (renamed from lib/http_client.ex)4
-rw-r--r--lib/powerdnsex/managers/records_manager.ex17
-rw-r--r--lib/powerdnsex/managers/zones_manager.ex2
-rw-r--r--lib/powerdnsex/models/record.ex8
-rw-r--r--lib/powerdnsex/models/resource_record_set.ex20
-rw-r--r--lib/powerdnsex/server_setup.ex29
-rw-r--r--test/lib/powerdnsex/config_test.exs6
-rw-r--r--test/lib/powerdnsex/managers/records_manager_test.exs39
-rw-r--r--test/lib/powerdnsex/managers/zones_manager_test.exs16
-rw-r--r--test/support/cassettes/records_manager/create/success.json6
-rw-r--r--test/support/cassettes/records_manager/delete/success.json6
-rw-r--r--test/support/cassettes/records_manager/show/success.json31
-rw-r--r--test/support/cassettes/records_manager/update/invalid_record.json6
-rw-r--r--test/support/cassettes/records_manager/update/not_found.json6
-rw-r--r--test/support/cassettes/records_manager/update/success.json6
-rw-r--r--test/support/cassettes/zones_manager/create/invalid_not_canonical.json4
-rw-r--r--test/support/cassettes/zones_manager/create/success.json6
-rw-r--r--test/support/cassettes/zones_manager/delete/not_found.json4
-rw-r--r--test/support/cassettes/zones_manager/delete/success.json4
-rw-r--r--test/support/cassettes/zones_manager/show/not_found.json6
-rw-r--r--test/support/cassettes/zones_manager/show/success.json6
23 files changed, 242 insertions, 65 deletions
diff --git a/lib/powerdnsex.ex b/lib/powerdnsex.ex
index c82aa59..7152417 100644
--- a/lib/powerdnsex.ex
+++ b/lib/powerdnsex.ex
@@ -1,2 +1,70 @@
defmodule PowerDNSex do
+ @default_server "localhost"
+ use PowerDNSex.ServerSetup
+
+ alias PowerDNSex.Managers.{ZonesManager, RecordsManager}
+ alias PowerDNSex.Models.Zone
+
+ ###
+ # Zones
+ ###
+
+ @spec create_zone(Zone.t, String.t) :: :ok | {:error, String.t}
+ @doc """
+ Create a new Zone on PowerDNS
+ """
+ def create_zone(%Zone{} = zone, server_name \\ @default_server) do
+ ZonesManager.create(zone, server_name)
+ end
+
+ @spec show_zone(Zone.t, String.t) :: :ok | {:error, String.t}
+ @doc """
+ Show / Retrive info of the specific Zone
+ """
+ def show_zone(%Zone{} = zone, server_name \\ @default_server) do
+ ZonesManager.show(zone, server_name)
+ end
+
+ @spec delete_zone(Zone.t, String.t) :: :ok | {:error, String.t}
+ @doc """
+ Delete specific Zone on PowerDNS
+ """
+ def delete_zone(%Zone{} = zone, server_name \\ @default_server) do
+ ZonesManager.delete(zone, server_name)
+ end
+
+ ###
+ # Records
+ ###
+ @spec create_record(Zone.t, struct) :: :ok | {:error, String.t}
+ @doc """
+ Create a new Record for the given Zone
+ """
+ def create_record(%Zone{} = zone, %{} = rrset_attrs) do
+ RecordsManager.create(zone, rrset_attrs)
+ end
+
+ @spec show_record(Zone.t, struct) :: :ok | {:error, String.t}
+ @doc """
+ Show / Retrive info of the specific Record of the given Zone
+ """
+ def show_record(%Zone{} = zone, %{} = rrset_attrs) do
+ RecordsManager.show(zone, rrset_attrs)
+ end
+
+ @spec update_record(Zone.t, struct) :: :ok | {:error, String.t}
+ @doc """
+ Update Record of the given Zone
+ """
+ def update_record(%Zone{} = zone, %{} = rrset_attrs) do
+ RecordsManager.update(zone, rrset_attrs)
+ end
+
+ @spec delete_record(Zone.t, struct) :: :ok | {:error, String.t}
+ @doc """
+ Delete specific Record of given Zone
+ """
+ def delete_record(%Zone{} = zone, %{} = rrset_attrs) do
+ RecordsManager.delete(zone, rrset_attrs)
+ end
end
diff --git a/lib/powerdnsex/config.ex b/lib/powerdnsex/config.ex
index 50589d4..486ccb6 100644
--- a/lib/powerdnsex/config.ex
+++ b/lib/powerdnsex/config.ex
@@ -14,12 +14,11 @@ defmodule PowerDNSex.Config do
end
def powerdns_url do
- data.url
+ url = data.url
+ if String.ends_with?(url, "/"), do: url, else: url <> "/"
end
- def powerdns_token do
- data.token
- end
+ def powerdns_token, do: data.token
###
# Private
diff --git a/lib/http_client.ex b/lib/powerdnsex/http_client.ex
index 6d18cbe..0a242b5 100644
--- a/lib/http_client.ex
+++ b/lib/powerdnsex/http_client.ex
@@ -7,9 +7,7 @@ defmodule PowerDNSex.HttpClient do
alias PowerDNSex.Config
- def process_url(url) do
- Config.powerdns_url <> url
- end
+ def process_url(url), do: Config.powerdns_url <> url
defp process_request_headers(headers) do
custom = ["X-API-Key": Config.powerdns_token]
diff --git a/lib/powerdnsex/managers/records_manager.ex b/lib/powerdnsex/managers/records_manager.ex
index 7ac83ca..a8c67e5 100644
--- a/lib/powerdnsex/managers/records_manager.ex
+++ b/lib/powerdnsex/managers/records_manager.ex
@@ -1,8 +1,9 @@
-defmodule PowerDNSex.RecordsManager do
+defmodule PowerDNSex.Managers.RecordsManager do
alias PowerDNSex.HttpClient
alias PowerDNSex.Models.{Zone, Record, Error}
- alias PowerDNSex.Models.ResourceRecordSet, as: RRset
+ alias PowerDNSex.Models.ResourceRecordSet, as: RRSet
+ alias PowerDNSex.Managers.ZonesManager
alias HTTPoison.Response
@@ -11,6 +12,11 @@ defmodule PowerDNSex.RecordsManager do
patch(zone, rrset_attrs)
end
+ def show(zone_name, %{} = rrset_attrs) do
+ zone = ZonesManager.show(zone_name)
+ RRSet.find(zone.rrsets, rrset_attrs)
+ end
+
def update(%Zone{} = zone, %{} = rrset_attrs) do
rrset_attrs = Map.merge(rrset_attrs, %{changetype: "REPLACE"})
patch(zone, rrset_attrs)
@@ -38,7 +44,12 @@ defmodule PowerDNSex.RecordsManager do
defp patch(%Zone{} = zone, %{} = rrset_attrs) do
zone.url
- |> HttpClient.patch!(RRset.as_body(RRset.build(rrset_attrs)))
+ |> HttpClient.patch!(RRSet.as_body(RRSet.build(rrset_attrs)))
|> process_request_response
end
+
+ defp has_attrs?(rrset, attrs) do
+ Map.keys(attrs)
+ |> 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 ebad7fe..260adbb 100644
--- a/lib/powerdnsex/managers/zones_manager.ex
+++ b/lib/powerdnsex/managers/zones_manager.ex
@@ -1,4 +1,4 @@
-defmodule PowerDNSex.ZonesManager do
+defmodule PowerDNSex.Managers.ZonesManager do
@default_server "localhost"
diff --git a/lib/powerdnsex/models/record.ex b/lib/powerdnsex/models/record.ex
index a494a07..9ffc2b7 100644
--- a/lib/powerdnsex/models/record.ex
+++ b/lib/powerdnsex/models/record.ex
@@ -26,4 +26,12 @@ defmodule PowerDNSex.Models.Record do
def as_body(record_attrs) when is_tuple(record_attrs) do
%{content: elem(record_attrs, 0), disabled: elem(record_attrs, 1)}
end
+
+ def find(records, attrs) when is_list(records) do
+ Enum.find(records, fn(record)->
+ Enum.all?(attrs, fn({attr, attr_value})->
+ Map.get(record, attr) == attr_value
+ end)
+ end)
+ end
end
diff --git a/lib/powerdnsex/models/resource_record_set.ex b/lib/powerdnsex/models/resource_record_set.ex
index f4338a2..9f248ab 100644
--- a/lib/powerdnsex/models/resource_record_set.ex
+++ b/lib/powerdnsex/models/resource_record_set.ex
@@ -25,6 +25,22 @@ defmodule PowerDNSex.Models.ResourceRecordSet do
|> Poison.encode!
end
+ def find(rrsets, %{} = attrs) when is_list(rrsets) do
+ Enum.find(rrsets, fn(rrset)->
+ Enum.all?(attrs, fn({attr, attr_value})->
+ if Enum.member?(Map.keys(%__MODULE__{}), attr) do
+ equal_attr?(attr, attr_value, rrset)
+ else
+ Record.find(rrset.records, %{attr => attr_value})
+ end
+ end)
+ end)
+ end
+
+ ###
+ # Private
+ ###
+
defp set_attrs(rrset, attr_name, attrs) do
if Map.has_key?(attrs, attr_name) do
attr_value = case attr_name do
@@ -37,4 +53,8 @@ defmodule PowerDNSex.Models.ResourceRecordSet do
rrset
end
end
+
+ defp equal_attr?(attr, attr_value, rrset) do
+ Map.get(rrset, attr) == attr_value
+ end
end
diff --git a/lib/powerdnsex/server_setup.ex b/lib/powerdnsex/server_setup.ex
new file mode 100644
index 0000000..3b5cb14
--- /dev/null
+++ b/lib/powerdnsex/server_setup.ex
@@ -0,0 +1,29 @@
+defmodule PowerDNSex.ServerSetup do
+ defmacro __using__(opts \\ []) do
+ quote bind_quoted: [opts: opts] do
+ use Application
+
+ @name opts[:process_name] || :PowerDNSex
+ @config opts[:config]
+
+ @spec start(term, term) :: GenServer.on_start
+ def start(_, _), do: start
+
+ @spec start() :: GenServer.on_start
+ @doc false
+ def start do
+ import Supervisor.Spec
+
+ children = [worker(Server, [@name, @config])]
+
+ options = [strategy: :one_for_one, name: :"#{@name}.Supervisor"]
+
+ case Supervisor.start_link(children, options) do
+ {:ok, pid} -> {:ok, pid}
+ {:error, {:already_started, pid}} -> {:ok, pid}
+ other -> other
+ end
+ end
+ end
+ end
+end
diff --git a/test/lib/powerdnsex/config_test.exs b/test/lib/powerdnsex/config_test.exs
index adb212a..c0a5150 100644
--- a/test/lib/powerdnsex/config_test.exs
+++ b/test/lib/powerdnsex/config_test.exs
@@ -11,7 +11,7 @@ defmodule PowerDNSex.ConfigTest do
describe "Config.powerdns_token/0" do
@tag :configs
test "Using Env vars", with_valid_url do
- env_token = "3nv_S3cr37_T0k3n"
+ env_token = "S3cr37_70k3n"
System.put_env("POWERDNS_TOKEN", env_token)
Application.put_env(:powerdns, :token, {:system, "POWERDNS_TOKEN"})
assert PowerDNSex.Config.powerdns_token == env_token
@@ -36,7 +36,7 @@ defmodule PowerDNSex.ConfigTest do
describe "Config.powerdns_url/0" do
@tag :configs
test "Using Env vars", with_valid_token do
- env_url = "https://env-powerdns.test"
+ env_url = "https://env-powerdns.test/"
System.put_env("POWERDNS_URL", env_url)
Application.put_env(:powerdns, :url, {:system, "POWERDNS_URL"})
assert PowerDNSex.Config.powerdns_url == env_url
@@ -44,7 +44,7 @@ defmodule PowerDNSex.ConfigTest do
@tag :configs
test "using application config", with_valid_token_and_url do
- assert PowerDNSex.Config.powerdns_url == Config.url
+ assert PowerDNSex.Config.powerdns_url == Config.url <> "/"
end
@tag :configs
diff --git a/test/lib/powerdnsex/managers/records_manager_test.exs b/test/lib/powerdnsex/managers/records_manager_test.exs
index aa054c2..f01f757 100644
--- a/test/lib/powerdnsex/managers/records_manager_test.exs
+++ b/test/lib/powerdnsex/managers/records_manager_test.exs
@@ -1,10 +1,11 @@
-defmodule PowerDNSex.RecordsManagerTest do
+defmodule PowerDNSex.Managers.RecordsManagerTest do
use ExUnit.Case, async: false
use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
- alias PowerDNSex.Models.{Zone, ResourceRecordSet, Record}
- alias PowerDNSex.RecordsManager
+ alias PowerDNSex.Models.{Zone, Record}
+ alias PowerDNSex.Managers.RecordsManager
+ alias PowerDNSex.FakeConfig, as: Config
@valid_zone %Zone{name: "my-domain.art.",
url: "api/v1/servers/localhost/zones/my-domain.art."}
@@ -43,14 +44,8 @@ defmodule PowerDNSex.RecordsManagerTest do
}
setup do
- # Config.set_url
- # Config.set_token
-
- pwdns_url_loca = "http://cpro36999.systemintegration.locaweb.com.br/"
- Application.put_env(:powerdns, :url, pwdns_url_loca)
-
- pwdns_token_loca = "Locaweb2016"
- Application.put_env(:powerdns, :token, pwdns_token_loca)
+ Config.set_url
+ Config.set_token
ExVCR.Config.cassette_library_dir("test/support/cassettes",
"test/support/custom_cassettes")
@@ -58,6 +53,7 @@ defmodule PowerDNSex.RecordsManagerTest do
end
describe "create/2" do
+ @tag :records_manager_create
test "exception given empty zones url" do
raise_msg = "[Records Manager] Zone URL attribute is empty!"
assert_raise RuntimeError, raise_msg, fn() ->
@@ -65,13 +61,30 @@ defmodule PowerDNSex.RecordsManagerTest do
end
end
- test "content and value of the return given correct params" do
+ @tag :records_manager_create
+ test "the return given correct params" do
use_cassette "records_manager/create/success" do
assert RecordsManager.create(@valid_zone, @new_record) == :ok
end
end
end
+ describe "show/2" do
+ @tag :records_manager_show
+ test "content given attrs of a valid record" do
+ use_cassette "records_manager/show/success" do
+ zone_name = @valid_zone.name
+ attrs = %{name: "new-record.#{zone_name}",
+ type: "A",
+ content: "127.0.0.1"}
+
+ record = RecordsManager.show(zone_name, attrs)
+ assert record.name == attrs.name
+ assert record.type == attrs.type
+ end
+ end
+ end
+
describe "update/2" do
@tag :records_manager_update
test "exception given empty zones url" do
@@ -109,7 +122,7 @@ defmodule PowerDNSex.RecordsManagerTest do
end
describe "delete/2" do
- @tag :records_manager_update
+ @tag :records_manager_delete
test "the return given a correct record" do
use_cassette "records_manager/delete/success" do
assert RecordsManager.delete(@valid_zone, @record_to_delete) == :ok
diff --git a/test/lib/powerdnsex/managers/zones_manager_test.exs b/test/lib/powerdnsex/managers/zones_manager_test.exs
index b3aa5ef..c0e874d 100644
--- a/test/lib/powerdnsex/managers/zones_manager_test.exs
+++ b/test/lib/powerdnsex/managers/zones_manager_test.exs
@@ -1,9 +1,9 @@
-defmodule PowerDNSex.ZonesManagerTest do
+defmodule PowerDNSex.Managers.ZonesManagerTest do
use ExUnit.Case, async: false
use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
- alias PowerDNSex.ZonesManager
+ alias PowerDNSex.Managers.ZonesManager
alias PowerDNSex.Models.{Zone, Record}
alias PowerDNSex.Models.ResourceRecordSet, as: RRSet
alias PowerDNSex.FakeConfig, as: Config
@@ -37,14 +37,14 @@ defmodule PowerDNSex.ZonesManagerTest do
rrsets: @expected_rrset}
setup do
- # Config.set_url
- # Config.set_token
+ Config.set_url
+ Config.set_token
- pwdns_url_loca = "http://cpro36999.systemintegration.locaweb.com.br/"
- Application.put_env(:powerdns, :url, pwdns_url_loca)
+ # pwdns_url_loca = "http://cpro36999.systemintegration.locaweb.com.br/"
+ # Application.put_env(:powerdns, :url, pwdns_url_loca)
- pwdns_token_loca = "Locaweb2016"
- Application.put_env(:powerdns, :token, pwdns_token_loca)
+ # pwdns_token_loca = "Locaweb2016"
+ # Application.put_env(:powerdns, :token, pwdns_token_loca)
ExVCR.Config.cassette_library_dir("test/support/cassettes",
"test/support/custom_cassettes")
diff --git a/test/support/cassettes/records_manager/create/success.json b/test/support/cassettes/records_manager/create/success.json
index 73bdc22..10dc5ce 100644
--- a/test/support/cassettes/records_manager/create/success.json
+++ b/test/support/cassettes/records_manager/create/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"rrsets\":[{\"type\":\"A\",\"ttl\":86400,\"records\":[{\"disabled\":false,\"content\":\"127.0.0.1\"},{\"disabled\":true,\"content\":\"192.168.0.1\"}],\"name\":\"new-record.my-domain.art.\",\"changetype\":\"REPLACE\"}]}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "patch",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "",
@@ -27,4 +27,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/records_manager/delete/success.json b/test/support/cassettes/records_manager/delete/success.json
index fccb1ad..2eba075 100644
--- a/test/support/cassettes/records_manager/delete/success.json
+++ b/test/support/cassettes/records_manager/delete/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"rrsets\":[{\"type\":\"A\",\"ttl\":null,\"records\":[],\"name\":\"record-to-delete.my-domain.art.\",\"changetype\":\"DELETE\"}]}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "patch",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "",
@@ -27,4 +27,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/records_manager/show/success.json b/test/support/cassettes/records_manager/show/success.json
new file mode 100644
index 0000000..542ed79
--- /dev/null
+++ b/test/support/cassettes/records_manager/show/success.json
@@ -0,0 +1,31 @@
+[
+ {
+ "request": {
+ "body": "",
+ "headers": {
+ "X-API-Key": "S3cr37_70k3n"
+ },
+ "method": "get",
+ "options": [],
+ "request_body": "",
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
+ },
+ "response": {
+ "body": "{\"account\": \"\", \"dnssec\": false, \"id\": \"my-domain.art.\", \"kind\": \"Native\", \"last_check\": 0, \"masters\": [], \"name\": \"my-domain.art.\", \"notified_serial\": 0, \"rrsets\": [{\"comments\": [], \"name\": \"new-record.my-domain.art.\", \"records\": [{\"content\": \"192.168.0.1\", \"disabled\": true}, {\"content\": \"127.0.0.1\", \"disabled\": false}], \"ttl\": 86400, \"type\": \"A\"}, {\"comments\": [], \"name\": \"updated-record.my-domain.art.\", \"records\": [{\"content\": \"127.0.0.1\", \"disabled\": true}], \"ttl\": 86800, \"type\": \"A\"}, {\"comments\": [], \"name\": \"my-domain.art.\", \"records\": [{\"content\": \"a.misconfigured.powerdns.server. hostmaster.my-domain.art. 2016060601 10800 3600 604800 3600\", \"disabled\": false}], \"ttl\": 3600, \"type\": \"SOA\"}], \"serial\": 2016060601, \"soa_edit\": \"\", \"soa_edit_api\": \"\", \"url\": \"api/v1/servers/localhost/zones/my-domain.art.\"}",
+ "headers": {
+ "Access-Control-Allow-Origin": "*",
+ "Connection": "close",
+ "Content-Length": "822",
+ "Content-Security-Policy": "default-src 'self'; style-src 'self' 'unsafe-inline'",
+ "Content-Type": "application/json",
+ "Server": "PowerDNS/4.0.1",
+ "X-Content-Type-Options": "nosniff",
+ "X-Frame-Options": "deny",
+ "X-Permitted-Cross-Domain-Policies": "none",
+ "X-Xss-Protection": "1; mode=block"
+ },
+ "status_code": 200,
+ "type": "ok"
+ }
+ }
+]
diff --git a/test/support/cassettes/records_manager/update/invalid_record.json b/test/support/cassettes/records_manager/update/invalid_record.json
index df6d73a..aee43cd 100644
--- a/test/support/cassettes/records_manager/update/invalid_record.json
+++ b/test/support/cassettes/records_manager/update/invalid_record.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"rrsets\":[{\"type\":\"NS\",\"ttl\":86800,\"records\":[{\"disabled\":true,\"content\":\"127.0.0.1\"}],\"name\":\"updated-record.my-domain.art.\",\"changetype\":\"REPLACE\"}]}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "patch",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "{\"error\": \"Record updated-record.my-domain.art./NS '127.0.0.1': Not in expected format (parsed as '127.0.0.1.')\"}",
@@ -28,4 +28,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/records_manager/update/not_found.json b/test/support/cassettes/records_manager/update/not_found.json
index 38edad2..31a82cc 100644
--- a/test/support/cassettes/records_manager/update/not_found.json
+++ b/test/support/cassettes/records_manager/update/not_found.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"rrsets\":[{\"type\":\"A\",\"ttl\":86800,\"records\":[{\"disabled\":true,\"content\":\"127.0.0.1\"}],\"name\":\"updated-record.my-domain.art.\",\"changetype\":\"REPLACE\"}]}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "patch",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/not-canonical-domain.tst"
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/not-canonical-domain.tst"
},
"response": {
"body": "{\"error\": \"Could not find domain 'not-canonical-domain.tst.'\"}",
@@ -28,4 +28,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/records_manager/update/success.json b/test/support/cassettes/records_manager/update/success.json
index d6a5112..21263f6 100644
--- a/test/support/cassettes/records_manager/update/success.json
+++ b/test/support/cassettes/records_manager/update/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"rrsets\":[{\"type\":\"A\",\"ttl\":86800,\"records\":[{\"disabled\":true,\"content\":\"127.0.0.1\"}],\"name\":\"updated-record.my-domain.art.\",\"changetype\":\"REPLACE\"}]}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "patch",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "",
@@ -27,4 +27,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/zones_manager/create/invalid_not_canonical.json b/test/support/cassettes/zones_manager/create/invalid_not_canonical.json
index 353115d..7816f3e 100644
--- a/test/support/cassettes/zones_manager/create/invalid_not_canonical.json
+++ b/test/support/cassettes/zones_manager/create/invalid_not_canonical.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"soa_edit_api\":\"\",\"soa_edit\":\"\",\"serial\":2016060601,\"records\":[],\"nameservers\":[],\"name\":\"not-canonical-domain.tst\",\"masters\":[],\"kind\":\"Native\",\"account\":null}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "post",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones"
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones"
},
"response": {
"body": "{\"error\": \"DNS Name 'not-canonical-domain.tst' is not canonical\"}",
diff --git a/test/support/cassettes/zones_manager/create/success.json b/test/support/cassettes/zones_manager/create/success.json
index e7880c8..76883af 100644
--- a/test/support/cassettes/zones_manager/create/success.json
+++ b/test/support/cassettes/zones_manager/create/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"soa_edit_api\":\"\",\"soa_edit\":\"\",\"serial\":2016060601,\"records\":[],\"nameservers\":[],\"name\":\"my-domain.art.\",\"masters\":[],\"kind\":\"Native\",\"account\":null}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "post",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones"
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones"
},
"response": {
"body": "{\"account\": \"\", \"dnssec\": false, \"id\": \"my-domain.art.\", \"kind\": \"Native\", \"last_check\": 0, \"masters\": [], \"name\": \"my-domain.art.\", \"notified_serial\": 0, \"rrsets\": [{\"comments\": [], \"name\": \"my-domain.art.\", \"records\": [{\"content\": \"a.misconfigured.powerdns.server. hostmaster.my-domain.art. 2016060601 10800 3600 604800 3600\", \"disabled\": false}], \"ttl\": 3600, \"type\": \"SOA\"}], \"serial\": 2016060601, \"soa_edit\": \"\", \"soa_edit_api\": \"\", \"url\": \"api/v1/servers/localhost/zones/my-domain.art.\"}",
@@ -28,4 +28,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/zones_manager/delete/not_found.json b/test/support/cassettes/zones_manager/delete/not_found.json
index 0637299..8239a23 100644
--- a/test/support/cassettes/zones_manager/delete/not_found.json
+++ b/test/support/cassettes/zones_manager/delete/not_found.json
@@ -3,12 +3,12 @@
"request": {
"body": "",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "delete",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/it-will-never-exist.on.the.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/it-will-never-exist.on.the.art."
},
"response": {
"body": "{\"error\": \"Could not find domain 'it-will-never-exist.on.the.art.'\"}",
diff --git a/test/support/cassettes/zones_manager/delete/success.json b/test/support/cassettes/zones_manager/delete/success.json
index 2f3fe90..a898ff2 100644
--- a/test/support/cassettes/zones_manager/delete/success.json
+++ b/test/support/cassettes/zones_manager/delete/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "delete",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "",
diff --git a/test/support/cassettes/zones_manager/show/not_found.json b/test/support/cassettes/zones_manager/show/not_found.json
index a989d91..bd54638 100644
--- a/test/support/cassettes/zones_manager/show/not_found.json
+++ b/test/support/cassettes/zones_manager/show/not_found.json
@@ -3,12 +3,12 @@
"request": {
"body": "",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "get",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/it-will-never-exist.on.the.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/it-will-never-exist.on.the.art."
},
"response": {
"body": "{\"error\": \"Could not find domain 'it-will-never-exist.on.the.art.'\"}",
@@ -28,4 +28,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/zones_manager/show/success.json b/test/support/cassettes/zones_manager/show/success.json
index 8f9a935..91d5316 100644
--- a/test/support/cassettes/zones_manager/show/success.json
+++ b/test/support/cassettes/zones_manager/show/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "get",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "{\"account\": \"\", \"dnssec\": false, \"id\": \"my-domain.art.\", \"kind\": \"Native\", \"last_check\": 0, \"masters\": [], \"name\": \"my-domain.art.\", \"notified_serial\": 0, \"rrsets\": [{\"comments\": [], \"name\": \"my-domain.art.\", \"records\": [{\"content\": \"a.misconfigured.powerdns.server. hostmaster.my-domain.art. 2016060601 10800 3600 604800 3600\", \"disabled\": false}], \"ttl\": 3600, \"type\": \"SOA\"}], \"serial\": 2016060601, \"soa_edit\": \"\", \"soa_edit_api\": \"\", \"url\": \"api/v1/servers/localhost/zones/my-domain.art.\"}",
@@ -28,4 +28,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]