Matt Cholick
2bb2d5643b
Add zone specific threshold config
2024-04-10 11:44:37 -07:00
Ross McFarland
0332b34f72
deprecation.deprecated, use official mechinism for deprecations
2023-11-22 18:06:10 -08:00
Ross McFarland
857d5e2a61
Record's carry context, Zone exceptions make use of it to help with error messages
2023-08-18 20:24:26 -07:00
Ross McFarland
c649a9c999
Formally deprecate Zone._remove_record in favor of Zone.remove_record
2023-07-29 17:58:28 -07:00
Ross McFarland
4a7df31445
handle a couple zone.owns edge cases
2023-06-30 14:59:09 -07:00
Ross McFarland
49233e2da6
Add owns method to Zone
2023-06-30 14:31:06 -07:00
Ross McFarland
cfa7abaee5
Validations to ensure Record.name and Zone.name have no whitespace
2023-05-19 09:57:56 -07:00
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