Commit graph

1065 commits

Author SHA1 Message Date
Max Horstmann df0f47b52c
Run integration tests for additional DNS providers (#930) 2020-11-05 08:55:20 -05:00
Max Horstmann 866232e0fb
Run integration tests as part of build checks (#928) 2020-11-03 07:53:59 -05:00
Max Horstmann d219941059
Run unit tests as part of build checks (#927) 2020-11-02 08:42:33 -05:00
Jakob Ackermann ab47e92cbf
HETZNER: fix retry of POST/PUT requests -- rebuild request body (#926)
Previously for any retry the request body was already consumed and
 the server received an empty body.

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-11-01 19:34:10 -05:00
Jakob Ackermann 152fa95031
HETZNER: create and modify multiple records in batches (#925)
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2020-11-01 19:30:16 -05:00
Max Horstmann 61bf50d4d7
Build & attach release assets automatically (#789) 2020-11-01 13:37:38 -05:00
Max Horstmann 2792c28f6d
Run build checks on PRs targeting master branch (#922) 2020-11-01 13:20:18 -05:00
Tom Limoncelli 80c81b990a TESTING: Fix broken test 2020-10-30 12:04:41 -04:00
Tom Limoncelli d7601b4fe8
NEW: .editorconfig (#921) 2020-10-29 13:38:15 -04:00
Tom Limoncelli bb6aecc9ad
Build broke on Windows (#920) 2020-10-29 13:36:47 -04:00
Jan-Philipp Benecke 512aa7d4b3
NEW FEATURE: Set JS variables from command line (#913)
* Add ability to specify variables that are passed to js

* Use SplitN to respect a = in value part

* Add JSON parsing for cli variables

* Remove JSON parsing for cli variables

* Add a function to set CLI defaults

* Update static.go
2020-10-27 10:43:00 -04:00
eifelmicha e51688c22d
Update README.md (#915)
Netcup was added in 3.2 https://stackexchange.github.io/dnscontrol/provider-list
2020-10-26 20:20:02 -04:00
Tom Limoncelli ca30c9c34f
Rename provider handles to *Provider (#914) 2020-10-26 09:25:30 -04:00
Patrik Kernstock 29c7ff3a05
Fix #910 (#912)
@patschi Thanks you for the speedy fix!  (and thank you for knowing Javascript!)
2020-10-25 13:29:25 -04:00
Tom Limoncelli d56a8307f3
Be more consistent in API handle variable names (#911) 2020-10-25 12:58:43 -04:00
Jakob Ackermann 2b50af0cbc
NEW PROVIDER: HETZNER DNS Console (#904)
* HETZNER: implement the provider for Hetzner DNS Console

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: apply review feedback

- add domain into error messages
- insert sub-strings using `%q`
- insert sub-errors using `%w`
- change api.getZone() signature to return a (potentially `nil`) Zone
   pointer instead of a (potentially empty) Zone value
- sort imports and confirm with `$ goimports -w providers/hetzner/`
- use exact 'api_key' term in error message of settings validation
- add blank line for logic separation
- drop internal record id from correction messages

Co-Authored-By: Tom Limoncelli <tlimoncelli@stackoverflow.com>
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: add request rate-limiting handling

There are a limited number of data-points on how their rate-limiting
 works at this time. I deduce from my account to others and use a fixed/
 constant backoff of 1s as the initial delay. Thereafter exponential
 increase with factor 2 (not needed at this time).
Hetzner has not made any official statements on rate-limiting, so this
 is guesswork only.

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: address golint complaints

- baseUrl -> baseURL
- mark Record as private -> record
- mark Zone as private -> zone
- mark RequestRateLimiter as private -> requestRateLimiter
- capitalize Id fields as ID
- keep delay logic on same level, move return out of branch

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: rate_limited: init the response timestamp on requestRateLimiter

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: requestRateLimiter: align local variable with struct name

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-10-22 09:44:21 -04:00
Tom Limoncelli 3a2b1b2f7b
Internal: deps updates and linting (#905)
* Update dependencies
* writing-providers.md: Update for Go Mod, etc.
* Linting pkg/version
* s/CloudflareAPI/api/g
* s/ApiKey/APIKey/g
* s/ApiToken/APIToken/g
* s/ApiUser/APIUser/g
2020-10-18 14:04:50 -04:00
Tom Limoncelli ac3ee9afea Release v3.4.2 2020-10-12 12:55:43 -04:00
Tom Limoncelli c899706309 Fix version 2020-10-12 12:55:10 -04:00
Tom Limoncelli c1e7b36b01 Release v3.4.1 2020-10-12 12:54:40 -04:00
Tom Limoncelli b77cfa2b84 DOCS: fix release-engineering.md 2020-10-12 12:14:19 -04:00
Tom Limoncelli a07a8cc731 Release v3.4.0 2020-10-12 12:13:07 -04:00
Tom Limoncelli 8764f77e66 DOCS: Update for vendor-less builds 2020-10-12 12:11:54 -04:00
Tom Limoncelli a7964652d8 go get -u github.com/aws/aws-sdk-go github.com/miekg/dns golang.org/x/net 2020-10-12 12:08:43 -04:00
Tom Limoncelli 7acf8427f1 go generate 2020-10-12 11:54:18 -04:00
Tom Limoncelli da1cbad4ec
HEXONET: Implement get-zones, fix module problem (#898)
* VULTR: Update govultr to v1.0.0 (fixes #892) (#897)

* go get -u github.com/hexonet/go-sdk

* Fix HEXONET providers.json entry

* providers.json: json commma

* providers.json: fmtjson

* HEXONET: Implement get-zones. Fix tests and docs.

* fixup!

* Update azure test failures

* Move version info into its own package

* Use new version system
2020-10-12 11:45:44 -04:00
Patrick Gaskin bc8bcf88c4
Require Go Modules to build (#902)
* Add module info to version

* Add warning if built without Go modules

* Updated source installation instructions for Go modules
2020-10-10 10:34:04 -04:00
Tom Limoncelli d27e9d3eb7
DOCS: Add info about R53 dotless CNAME bug (#901) 2020-10-10 09:02:31 -04:00
Denis Zavershinskiy e92717fc77
DOCS: fix jsId for Netcup Provider (#900)
According usage example jsId should be all uppercase
2020-10-09 07:50:35 -04:00
Tom Limoncelli 824ed2b75e
Update AWS and goquery dependencies (#899) 2020-10-08 16:50:42 -04:00
Patrick Gaskin 26c7c356f4
VULTR: Update govultr to v1.0.0 (fixes #892) (#897) 2020-10-08 16:12:56 -04:00
Patrick Gaskin 38d9f059a7
VULTR: AddOrigin is unnecessary (#314) (#896) 2020-10-08 16:12:38 -04:00
Patrick Gaskin b6d2ddd04c
VULTR: Null MX records are not supported (#702) (#894) 2020-10-08 16:12:22 -04:00
Tom Limoncelli 51b3a5ee0b Remove bug report from doc 2020-10-07 16:27:38 -04:00
Tom Limoncelli 2fb72ac006
go get -u github.com/robertkrimen/otto (#889) 2020-10-07 16:26:49 -04:00
Tom Limoncelli 43537fbfd8 Update dependencies 2020-10-07 16:23:42 -04:00
Tom Limoncelli 8205a8a356 Fix JSON comma 2020-10-07 16:04:13 -04:00
Tom Limoncelli dba20387bf
Fix D_EXTEND matching bug (#888)
* Use a standard JSON comparison tool

* Fixes https://github.com/StackExchange/dnscontrol/issues/886

* Delete file in wrong place.

* Remove the need for minify
2020-10-07 16:03:36 -04:00
Tom Limoncelli a81a2e36ce
Note bug #886 (#887)
* Note bug #886
2020-10-07 14:30:10 -04:00
Tom Limoncelli b275286dae
Add D_EXTEND (#885) (thanks to @ad8-bdl!)
* fix get-zones code block indentation

* extend D_EXTEND to handle subdomains

* fix targets: make absolute incl. subdomain where necessary

* clarify subdomain target test (not IP && not fqdn)

* Add parse_tests for D and D_EXTEND

* _getDomainObject: examine all domains

* human readable form

* consistent test IP addresses

* Improve docs and formatting

* propagate subdomain to canonicalisation

* en-US spelling

* rm extraneous console.log

* ignore subdomain for CF_REDIRECT

* clarify D_EXTEND doc re. CF_REDIRECT

* rm extraneous linebreak

* _getDomainObject: examine all domains

* human readable form

* consistent test IP addresses

* propagate subdomain to canonicalisation

* en-US spelling

* rm extraneous console.log

* ignore subdomain for CF_REDIRECT

* clarify D_EXTEND doc re. CF_REDIRECT

* rm extraneous linebreak

* GANDI_V5: Use github.com/go-gandi/go-gandi, not github.com/tiramiseb/go-gandi (#883)

* DOCUMENTATION: Fix error in CNAME.md (#877)

The current example `CNAME("def", "test.subdomain"), // def.example.com -> test.subdomain.example.com` is invalid (correctly raises a validation error, "ERROR: in CNAME def.example.com: target (test.subdomain) must end with a (.)")

* typos, fmt; example syntax fixes and real output

* formatting; re-add lost comment

* RecordConfig subdomain should be nullable

* providers/cscglobal/api.go: Fix fmt string

* More tests and docs

* go generate

Co-authored-by: Ben L <47653825+ad8-bdl@users.noreply.github.com>
2020-10-07 14:27:33 -04:00
Ben 7d2016a970
DOCUMENTATION: Fix error in CNAME.md (#877)
The current example `CNAME("def", "test.subdomain"), // def.example.com -> test.subdomain.example.com` is invalid (correctly raises a validation error, "ERROR: in CNAME def.example.com: target (test.subdomain) must end with a (.)")
2020-10-02 14:15:35 -04:00
Tom Limoncelli 678540cfdd
GANDI_V5: Use github.com/go-gandi/go-gandi, not github.com/tiramiseb/go-gandi (#883) 2020-10-02 13:53:03 -04:00
Pieter Maene 683ed698e9
ClouDNS: Return API error only when body unmarshals to errorResponse (#875) 2020-09-29 07:23:14 -04:00
Tom Limoncelli f082ad36c8
AUTODNSSEC -> AUTODNSSEC_ON (#863)
* AUTODNSSEC -> AUTODNSSEC_ON
* Validate AutoDNSSEC values
* AUTODNSSEC now generates a warning and does nothing.
2020-09-27 16:37:42 -04:00
Grégoire Henry 9953bf41e9
AXFRDDNS: fix error message (fix #778) (#871) 2020-09-24 11:01:26 -04:00
Tom Limoncelli 194aa09158
Clean up from Tom's git mistakes (#869)
* Better error messages

* go generate
2020-09-21 09:47:02 -04:00
Patrik Kernstock d56ffd3698 Display file where error occurred 2020-09-21 09:39:45 -04:00
Tom Limoncelli 74ea58f514 Better error messages 2020-09-21 09:39:45 -04:00
Patrik Kernstock 9ad742fc22
INWX: Support creating domains (#855)
* Support create-domains for INWX

* Use own function to decide which NS to use when sandbox

* Updated docs via go generate

* Move domainIndex into inwxAPI struct

* Changed getDefaultNameservers() IF

* Make Tom happy

* Updated docs via go generate
2020-09-21 09:27:50 -04:00
Tom Limoncelli ea8068996e
DOCS: Better document nameserver scenarios (#868) 2020-09-21 09:26:24 -04:00