1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00
Commit Graph

34 Commits

Author SHA1 Message Date
Ross McFarland
6be0a8133a isort import formatting 2023-01-22 13:54:19 -08:00
Ross McFarland
3b102b4516 hostname_from_fqdn work with utf8 or idna, whichevr it's passed 2022-09-15 19:26:16 -07:00
Ross McFarland
d7880c084d Remove from __futures__ bits, all are now manditory 2022-09-15 14:10:21 -07:00
Ross McFarland
b4792707f8 Merge remote-tracking branch 'origin/main' into idna-internally 2022-09-12 14:56:01 -07:00
Ross McFarland
fa4225b625 Fix lots of errant '...' '...' string joins 2022-09-06 12:47:47 -07:00
Ross McFarland
16e0bd0675 Testing of Zone and Record name/decoded_name handling 2022-08-20 11:55:19 -07:00
Ross McFarland
27fc734c2a Test YamlProvider handling of non-ascii record names 2022-08-20 11:39:00 -07:00
Ross McFarland
f00474cca4 Record.name/decoded_name pattern implemented 2022-08-17 18:51:00 -07:00
Ross McFarland
c1ef45e0fd Convert Manager.config['zones'] to IdnaDict
- print Zone.decoded_name to logs for better readability
- Prefer decoded name in YamlProvider
2022-08-17 10:29:32 -07:00
Ross McFarland
ffe456714c Correct error message grammar
Co-authored-by: Sachi King <nakato@nakato.io>
2022-08-12 13:28:06 -07:00
Ross McFarland
611431b042 Broken up string formatting cleanup 2022-08-11 08:42:16 -07:00
Ross McFarland
33794f3796 Fix a bug in Zone.add_record subzone handling when name ends with non-dotted subzone name 2022-08-11 08:40:32 -07:00
Ross McFarland
e116d26eec Implement black formatting 2022-07-04 12:27:39 -07:00
Sachi King
d5363e8045 Add comments and use list comprehensions
Per PR review, use list comprehensions as they are prefered in py3 over
use of filter.

Add comments to describe the building of the zone tree.
2022-06-27 10:50:05 +10:00
Sachi King
5592f5da96 Support dotted subdomains for subzones
Currently if there are two zones configured;
- example.com.
- delegated.subdomain.example.com.

When an NS record is created in example.com.yaml as such:
delegated.subdomain:
  type: NS
  values:
  - ns1.example.org.

The NS record for delegated.subdomain.example.com cannot be created as it
throws an exception:

octodns.zone.SubzoneRecordException: Record delegated.subdomain.example.com is under a managed subzone

Additionally, all records other than NS are rejected for
subdomain.example.com..

This is caused by zone_tree being the result of all zones split on '.'
and being added to the tree, even if a zone does not exist at that
point.

To support records where a subzone is dotted, the the map is built such
that each node represents the subdomain of the closest subzone.

Before:
{"com", {"example": {"subdomain": {"delegated": {}}}}}

After:
{"example.com": {"delegated.subdomain": {}}}

Fixes: #378
2022-06-24 20:36:47 +10:00
Ross McFarland
40820f351e Implement and test Zone.root_ns helper property 2022-02-16 14:24:05 -08:00
Ross McFarland
33a10eada4 Base support for managing root NS records
* Zone object no longer treats them special, some tests needed adjusting
  b/c of this, some provider's tests may also need adjusting, though
  they should not plan changes since they won't (yet) have
  SUPPORTS_ROOT_NS
* _process_desired_zone filters and warns when not supported
* YamlProvider supports them
* TinyDnsBaseSource supports them
2022-02-08 10:26:49 -08:00
Ross McFarland
aae65594f2 Remove explicit use of six 2021-09-17 07:10:07 -07:00
Ross McFarland
adf08a178a f-strings for Manager, Zone and yaml 2021-09-04 19:08:29 -07:00
Ross McFarland
8c04508a86 Implement & test Zone.copy (shallow) and utilize it in processors 2021-08-21 10:11:23 -07:00
Ross McFarland
10ad30e7ea map( to [...] 2019-10-09 15:41:18 -07:00
cclauss
158add8eb6 Modernize Python 2 code to prepare for Python 3 2019-07-12 02:11:43 +02:00
Ross McFarland
1103b4c383 Implement Zone.add_record lenient param/support and more tests 2018-05-30 12:30:20 -07:00
Ross McFarland
3ea78af8e1 pycodestyle updates, mostly escaping \, couple r's, ignore break on binary 2018-04-15 09:58:36 -07:00
Josh Soref
5d2ba2e715 Spelling (#214)
* spelling: ancillary
* spelling: antarctica
* spelling: australia
* spelling: authentication
* spelling: continental
* spelling: constructor
* spelling: conversion
* spelling: creation
* spelling: doesn't
* spelling: easily
* spelling: efficiently
* spelling: equivalent
* spelling: essentially
* spelling: everything
* spelling: exactly
* spelling: be
* spelling: expensive
* spelling: supports
* spelling: healthcheck
* spelling: immediately
* spelling: ignored
* spelling: invocation
* spelling: itself
* spelling: leftovers
* spelling: missing
* spelling: natural
* spelling: nonexistent
* spelling: peculiarities
* spelling: pointing

This change hit a line length limitation, so I'm wrapping it and
adding a period which appears to match local style...

* spelling: quicker
* spelling: response
* spelling: requested
* spelling: redirect
* spelling: traffic
* spelling: unknown
* spelling: uploaded
* spelling: useful
* spelling: separately
* spelling: zone
2018-02-27 09:09:47 -08:00
Ross McFarland
9f2b65ec83 Change str() to unicode() to avoid encoding problems 2018-02-24 09:19:23 -08:00
Paul van Brouwershaven
7352978880 Check excluded in desired_record 2017-10-30 18:33:51 +01:00
Paul van Brouwershaven
4b41762642 Use target.id instead of class name 2017-09-29 10:09:16 +02:00
Paul van Brouwershaven
11f4359099 Add support for included and excluded records
`Included` and `Excluded` can be used to filter records for one or more specific provider(s). This can be extremely useful when certain record types are not supported by a provider and you want only that provider to receive an alternative record.

See also: https://github.com/github/octodns/issues/26
2017-09-28 15:16:39 +02:00
Ross McFarland
908698da49 Fix major performance issue with add_record O(N^2)
Before, 1-2k record took ~10s and more than that was just painful, 5k took
forever. This records things to keep a dict of nodes with a set of records so
that we can quickly "jump" to the point we're looking for without having to
search. 10k records now takes ~5s.
2017-07-02 18:23:45 -07:00
Ross McFarland
5e4d68094f Add meta record support with provider id to zone
Support replace=True in zone.add_record
2017-06-24 17:14:48 -07:00
Ross McFarland
615bc95976 CNAME cannot coexist with other records on a node 2017-06-23 09:49:25 -07:00
Ross McFarland
ff2fec72d8 Add support for ignored records.
```yaml
ignored:
  octodns:
    ignored: true
  type: A
  value: 1.2.3.4
```
2017-06-04 19:03:38 -07:00
Ross McFarland
7957a4c018 Initial import of OSS OctoDNS 2017-03-15 15:38:10 -07:00