Browse Source

Add MetaProcessor.include_extra

pull/1190/head
Ross McFarland 1 year ago
parent
commit
60704109de
No known key found for this signature in database GPG Key ID: 943B179E15D3B22A
3 changed files with 31 additions and 1 deletions
  1. +5
    -0
      CHANGELOG.md
  2. +12
    -1
      octodns/processor/meta.py
  3. +14
    -0
      tests/test_octodns_processor_meta.py

+ 5
- 0
CHANGELOG.md View File

@ -1,3 +1,8 @@
## v1.?.? - 2024-??-?? - ???
* MetaProcessor.include_extra to add support for arbitrary extra values to be
set on the meta record.
## v1.9.1 - 2024-06-21 - What's in a name
* Add `name` to Change.data, and thus PlanJson output


+ 12
- 1
octodns/processor/meta.py View File

@ -59,6 +59,12 @@ class MetaProcessor(BaseProcessor):
# Include the octoDNS version being used
# (default: false)
include_version: false
# Extra values to set on the records
# (default: None)
#include_extra:
# - key=val
# - foo=bar
# - arbitrary string
'''
@classmethod
@ -77,17 +83,19 @@ class MetaProcessor(BaseProcessor):
include_uuid=False,
include_version=False,
include_provider=False,
include_extra=None,
ttl=60,
):
self.log = getLogger(f'MetaSource[{id}]')
super().__init__(id)
self.log.info(
'__init__: record_name=%s, include_time=%s, include_uuid=%s, include_version=%s, include_provider=%s, ttl=%d',
'__init__: record_name=%s, include_time=%s, include_uuid=%s, include_version=%s, include_provider=%s, include_extra=%s, ttl=%d',
record_name,
include_time,
include_uuid,
include_version,
include_provider,
include_extra,
ttl,
)
self.record_name = record_name
@ -95,6 +103,7 @@ class MetaProcessor(BaseProcessor):
self.uuid = self.get_uuid() if include_uuid else None
self.include_version = include_version
self.include_provider = include_provider
self.include_extra = include_extra
self.ttl = ttl
def values(self, target_id):
@ -107,6 +116,8 @@ class MetaProcessor(BaseProcessor):
ret.append(f'time={self.time}')
if self.uuid:
ret.append(f'uuid={self.uuid}')
if self.include_extra is not None:
ret.extend(self.include_extra)
return ret
def process_source_and_target_zones(self, desired, existing, target):


+ 14
- 0
tests/test_octodns_processor_meta.py View File

@ -116,12 +116,26 @@ class TestMetaProcessor(TestCase):
self.assertFalse(proc.time)
self.assertFalse(proc.include_provider)
self.assertFalse(proc.include_version)
self.assertIsNone(proc.include_extra)
values = list(proc.values('dummy'))
self.assertEqual(1, len(values))
value = values[0]
self.assertEqual(f'uuid={proc.uuid}', value)
def test_extra(self):
extra = ['one', 'two=three', 'four', 'five six']
proc = MetaProcessor('test', include_time=False, include_extra=extra)
self.assertEqual(extra, proc.include_extra)
self.assertFalse(proc.include_provider)
self.assertFalse(proc.include_version)
self.assertFalse(proc.time)
self.assertFalse(proc.uuid)
values = list(proc.values('dummy'))
self.assertEqual(4, len(values))
self.assertEqual(extra, values)
def test_is_up_to_date_meta(self):
proc = MetaProcessor('test')


Loading…
Cancel
Save