From 0ef6ce2b402b6fef359d5214f427cd56b2e259dd Mon Sep 17 00:00:00 2001 From: Tom Limoncelli Date: Fri, 13 Nov 2020 10:32:32 -0500 Subject: [PATCH] HEXONET: Add GHA tests. Update docs. (#942) --- .github/workflows/build.yml | 8 ++++++-- docs/writing-providers.md | 8 +++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c41b98e98..4ed646f57 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,6 @@ name: build -on: +on: pull_request: branches: [ master ] push: @@ -30,7 +30,7 @@ jobs: strategy: fail-fast: false matrix: - provider: [AZURE_DNS, BIND, CLOUDFLAREAPI, DIGITALOCEAN, GANDI_V5, GCLOUD, NAMEDOTCOM, ROUTE53] + provider: [AZURE_DNS, BIND, CLOUDFLAREAPI, DIGITALOCEAN, GANDI_V5, GCLOUD, HEXONET, NAMEDOTCOM, ROUTE53] exclude: - provider: DIGITALOCEAN # remove when #636 is fixed steps: @@ -63,6 +63,10 @@ jobs: GCLOUD_EMAIL: dnscontrol@dnscontrol-dev.iam.gserviceaccount.com GCLOUD_PROJECT: dnscontrol-dev GCLOUD_PRIVATEKEY: ${{ secrets.GCLOUD_PRIVATEKEY }} + HEXONET_DOMAIN : a-b-c-movies.com + HEXONET_ENTITY : OTE + HEXONET_PW : test.passw0rd + HEXONET_UID : test.user NAMEDOTCOM_DOMAIN: dnscontrol-ndc.com NAMEDOTCOM_URL: api.name.com NAMEDOTCOM_USER: dnscontroltest diff --git a/docs/writing-providers.md b/docs/writing-providers.md index 66a7fd9c7..cdcab8b3e 100644 --- a/docs/writing-providers.md +++ b/docs/writing-providers.md @@ -91,15 +91,13 @@ yourself.) Pick a similar provider as your base. Providers basically fall into three general categories: -* **zone:** The API requires you to upload the entire zone every time. (BIND). -* **incremental-record:** The API lets you add/change/delete individual DNS records. (ACTIVEDIR, CLOUDFLARE, DNSIMPLE, NAMEDOTCOM, GCLOUD, ROUTE53) +* **zone:** The API requires you to upload the entire zone every time. (BIND, NAMECHEAP). +* **incremental-record:** The API lets you add/change/delete individual DNS records. (ACTIVEDIR, CLOUDFLARE, DNSIMPLE, NAMEDOTCOM, GCLOUD, HEXONET) * **incremental-label:** Like incremental-record, but if there are multiple records on a label (for example, example www.example.com has A and MX records), you have to replace all the records at that label. (GANDI_V5) -* **incremental-label-type:** Like incremental-record, but updates to any records at a label have to be done by type. For example, if a label (www.example.com) has many A and MX records, even the smallest change to one of the A records requires replacing all the A records. Any changes to the MX records requires replacing all the MX records. If an A record is converted to a CNAME, one must remove all the A records in one call, and add the CNAME record with another call. This is deceptively difficult to get right; if you have the voice between incremental-label-type and incremental-label, pick incremental-label. (DESEC) - -TODO: Categorize NAMECHEAP +* **incremental-label-type:** Like incremental-record, but updates to any records at a label have to be done by type. For example, if a label (www.example.com) has many A and MX records, even the smallest change to one of the A records requires replacing all the A records. Any changes to the MX records requires replacing all the MX records. If an A record is converted to a CNAME, one must remove all the A records in one call, and add the CNAME record with another call. This is deceptively difficult to get right; if you have the choice between incremental-label-type and incremental-label, pick incremental-label. (DESEC, ROUTE53) All providers use the "diff" module to detect differences. It takes two zones and returns records that are unchanged, created, deleted,