Add +/- signs back to diff output for clarity

- Add '-' prefix to deleted/changed-from records in before section
- Add '+' prefix to added/changed-to records in after section
- Adjust column width from 35 to 34 to accommodate the +/- sign
- Makes it clear which records are being removed, added, or modified
This commit is contained in:
Daniel Akulenok
2026-01-29 22:20:22 +01:00
parent cd40a4ede8
commit c46a17748a

View File

@@ -876,25 +876,25 @@ class DNSZoneManager:
before_lines = [] before_lines = []
after_lines = [] after_lines = []
# Process deletes - records being removed (appear in before) # Process deletes - records being removed (appear in before with -)
for record in sorted(changes['deletes'], key=lambda r: (r['name'].to_text(), r['type'])): for record in sorted(changes['deletes'], key=lambda r: (r['name'].to_text(), r['type'])):
record_name = record['name'].to_text().rstrip('.') record_name = record['name'].to_text().rstrip('.')
record_type = record['type'] record_type = record['type']
ttl = record.get('ttl', self.soa_minimum_ttl) ttl = record.get('ttl', self.soa_minimum_ttl)
values = sorted(str(v) for v in record['values']) values = sorted(str(v) for v in record['values'])
for value in values: for value in values:
before_lines.append(f"{record_name:<35} {ttl:<10} {record_type:<10} {value}") before_lines.append(f"-{record_name:<34} {ttl:<10} {record_type:<10} {value}")
# Process adds - records being added (appear in after) # Process adds - records being added (appear in after with +)
for record in sorted(changes['adds'], key=lambda r: (r['name'].to_text(), r['type'])): for record in sorted(changes['adds'], key=lambda r: (r['name'].to_text(), r['type'])):
record_name = record['name'].to_text().rstrip('.') record_name = record['name'].to_text().rstrip('.')
record_type = record['type'] record_type = record['type']
ttl = record.get('ttl', self.soa_minimum_ttl) ttl = record.get('ttl', self.soa_minimum_ttl)
values = sorted(str(v) for v in record['values']) values = sorted(str(v) for v in record['values'])
for value in values: for value in values:
after_lines.append(f"{record_name:<35} {ttl:<10} {record_type:<10} {value}") after_lines.append(f"+{record_name:<34} {ttl:<10} {record_type:<10} {value}")
# Process updates - records being changed # Process updates - records being changed (show - in before, + in after)
for record in sorted(changes['updates'], key=lambda r: (r['name'].to_text(), r['type'])): for record in sorted(changes['updates'], key=lambda r: (r['name'].to_text(), r['type'])):
record_name = record['name'].to_text().rstrip('.') record_name = record['name'].to_text().rstrip('.')
record_type = record['type'] record_type = record['type']
@@ -903,12 +903,12 @@ class DNSZoneManager:
old_values = sorted(str(v) for v in record['old_values']) old_values = sorted(str(v) for v in record['old_values'])
new_values = sorted(str(v) for v in record['new_values']) new_values = sorted(str(v) for v in record['new_values'])
# Show old values in before # Show old values in before with -
for value in old_values: for value in old_values:
before_lines.append(f"{record_name:<35} {old_ttl:<10} {record_type:<10} {value}") before_lines.append(f"-{record_name:<34} {old_ttl:<10} {record_type:<10} {value}")
# Show new values in after # Show new values in after with +
for value in new_values: for value in new_values:
after_lines.append(f"{record_name:<35} {new_ttl:<10} {record_type:<10} {value}") after_lines.append(f"+{record_name:<34} {new_ttl:<10} {record_type:<10} {value}")
# Return diff with before/after as lists - Ansible will display these properly # Return diff with before/after as lists - Ansible will display these properly
return { return {