Browse Source

Change in the way templating parameters are handled when trailing_dots is disabled

pull/1278/head
Jonathan Leroy 5 months ago
parent
commit
fad8c03986
No known key found for this signature in database GPG Key ID: CF226DF21118649E
5 changed files with 24 additions and 31 deletions
  1. +2
    -2
      .changelog/3e57e696039c4f37a3062043be81199c.md
  2. +0
    -4
      .changelog/6c6407b8ddf345ecb2e850e34d1ce328.md
  3. +0
    -4
      .changelog/7e0022f1507d44d69422e92ce4d0a1c1.md
  4. +21
    -20
      octodns/processor/templating.py
  5. +1
    -1
      tests/test_octodns_processor_templating.py

+ 2
- 2
.changelog/3e57e696039c4f37a3062043be81199c.md View File

@ -1,4 +1,4 @@
---
type: patch
type: minor
---
Add trailing_dots parameter to templating processor
Add trailing_dots parameter to templating processor

+ 0
- 4
.changelog/6c6407b8ddf345ecb2e850e34d1ce328.md View File

@ -1,4 +0,0 @@
---
type: patch
---
Removes the final dot from zone_*name and record_*fqdn templating variables

+ 0
- 4
.changelog/7e0022f1507d44d69422e92ce4d0a1c1.md View File

@ -1,4 +0,0 @@
---
type: none
---
Revert: Fix Templating processor not working on alias zones

+ 21
- 20
octodns/processor/templating.py View File

@ -66,10 +66,17 @@ class Templating(BaseProcessor):
def process_source_zone(self, desired, sources):
sources = sources or []
zone_name = desired.decoded_name
zone_decoded_name = desired.decoded_name
zone_encoded_name = desired.name
if not self.trailing_dots:
zone_name = zone_name[:-1]
zone_decoded_name = zone_decoded_name[:-1]
zone_encoded_name = zone_encoded_name[:-1]
zone_params = {
'zone_name': desired.decoded_name,
'zone_decoded_name': desired.decoded_name,
'zone_encoded_name': desired.name,
'zone_name': zone_name,
'zone_decoded_name': zone_decoded_name,
'zone_encoded_name': zone_encoded_name,
'zone_num_records': len(desired.records),
'zone_source_ids': ', '.join(s.id for s in sources),
# add any extra context provided to us, if the value is a callable
@ -80,33 +87,27 @@ class Templating(BaseProcessor):
for k, v in self.context.items()
},
}
if not self.trailing_dots:
zone_params = zone_params | {
'zone_name': desired.decoded_name[:-1],
'zone_decoded_name': desired.decoded_name[:-1],
'zone_encoded_name': desired.name[:-1],
}
def params(record):
record_params = {
record_fqdn = record.decoded_fqdn
record_decoded_fqdn = record.decoded_fqdn
record_encoded_fqdn = record.fqdn
if not self.trailing_dots:
record_fqdn = record_fqdn[:-1]
record_decoded_fqdn = record_decoded_fqdn[:-1]
record_encoded_fqdn = record_encoded_fqdn[:-1]
return {
'record_name': record.decoded_name,
'record_decoded_name': record.decoded_name,
'record_encoded_name': record.name,
'record_fqdn': record.decoded_fqdn,
'record_decoded_fqdn': record.decoded_fqdn,
'record_encoded_fqdn': record.fqdn,
'record_fqdn': record_fqdn,
'record_decoded_fqdn': record_decoded_fqdn,
'record_encoded_fqdn': record_encoded_fqdn,
'record_type': record._type,
'record_ttl': record.ttl,
'record_source_id': record.source.id if record.source else None,
**zone_params,
}
if not self.trailing_dots:
record_params = record_params | {
'record_fqdn': record.decoded_fqdn[:-1],
'record_decoded_fqdn': record.decoded_fqdn[:-1],
'record_encoded_fqdn': record.fqdn[:-1],
}
return record_params
for record in desired.records:
if hasattr(record, 'values'):


+ 1
- 1
tests/test_octodns_processor_templating.py View File

@ -156,7 +156,7 @@ class TemplatingTest(TestCase):
{
'type': 'TXT',
'ttl': 42,
'value': 'There are {zone_num_records} record(s) in {zone_name}.',
'value': 'There are {zone_num_records} record(s) in {zone_name}',
},
source=record_source,
)


Loading…
Cancel
Save