- Show each record with clear before/after versions
- Display TTL changes when values are updated (old_ttl -> new_ttl)
- Organize output into DELETED, ADDED, and UPDATED sections
- Use visual indicators (-, +, ~) for record operations
- Format with proper indentation and alignment for readability
- Show full record details including all values and TTLs
- Store both old and new values in updates for proper diff reporting
- Show before/after states for updated records in diff mode
- Improve exception handling with better error messages and traceback logging
- Include full exception type if string representation is empty
- Add debug-level traceback output for troubleshooting
- Extend ignore_dnssec_records to include CDNSKEY, CDS, and TYPE65534
- These are DNSSEC-related record types that are often managed by DNS servers
- Update documentation to reflect all ignored DNSSEC types
- Remove 'options' from zones and records in argument_spec
- This prevents Ansible from pre-validating structure before module code runs
- Module now accepts any dict structure and filters to known keys in code
- Add proper validation of required fields in _filter_zone_config()
- Now truly allows arbitrary extra keys like 'comment', 'type', etc. without errors
- Add _filter_zone_config() function to extract only known keys from zone config
- Remove options_ignore_list from argument_spec as it's unreliable across Ansible versions
- Filter zones in main() before processing to allow any extra keys in YAML
- More reliable approach for ignoring extra metadata keys (comment, type, etc.)
- Add ignore_ns_records flag (default: true) to automatically ignore NS records
- Add options_ignore_list to zones and records to allow extra keys (e.g., comment, type)
- Update documentation to reflect NS records are now ignored by default
- Add changelog entry for v1.3.3 release
- AnsibleModule.__init__() does not accept supports_diff or supports_diff_mode
- Diff mode support is declared via attributes in DOCUMENTATION
- This was the actual root cause of the error
- Bump version to 1.3.2
- Correct supports_diff_mode to supports_diff in nsupdate_zone.py
- This fixes: AnsibleModule.__init__() got an unexpected keyword argument 'supports_diff_mode'
- Bump version to 1.3.1
Refactored verbose output to use standard Ansible logging patterns:
- Removed: from ansible.utils.display import Display
- Changed: self.display.vvv() → self.module.debug()
- Maintains verbosity levels with self.module._verbosity checks
- Reduces external dependencies
- Improves compatibility with standard Ansible execution
The module now logs zone changes (Added, Removed, Changed, Skipped)
using self.module.debug() which works with -v and -vv flags.
- Display specific record changes when --diff flag is used
- Add 'or self.module._diff' condition to all change logging
- Shows Added, Removed, Changed records with --diff (same as -v)
- Skipped records still only shown with -vv
- Provides detailed diff output without requiring -v flag
- Users can now see what changed with just --diff flag
- Import Display class from ansible.utils.display
- Initialize display instance in DNSZoneManager
- Replace all module.log() calls with display.vvv() and display.vvvv()
- Use display.vvv() for important actions (-v verbosity)
- Use display.vvvv() for skipped records (-vv verbosity)
- Follows Ansible Developer Guide standards for verbosity-based output
- Aligns with ansible-creator agents.md specification
- Replace verbose_actions in result dict with module.log() calls
- Log per-record actions directly when verbosity >= 1:
- Added, Removed, Changed actions logged with -v
- Skipped (unchanged) records logged with -vv
- Remove verbose key from result['changes'] dict
- Simplify _format_diff() to work directly with changes dict
- Follows Ansible conventions for verbose output
- Output now goes to Ansible's logging system instead of result payload
- Remove custom 'verbose' parameter from module
- Use Ansible's built-in verbosity setting (module._verbosity)
- Verbose output now shown with -v, -vv, -vvv flags
- Add notes to DOCUMENTATION explaining -v flag usage
- Update all examples to remove verbose: true parameter
- Update all documentation to mention -v flag instead
- Simplifies module interface by leveraging Ansible conventions
- Update all examples to show new defaults (ignore_dnssec_records, ignore_soa_records, validate_records)
- Add verbose output examples throughout documentation
- Show global dns_server parameter usage
- Remove all references to deprecated parallel_zones parameter
- Update QUICK_START.md with new best practices
- Update README.md with new feature descriptions
- Update module EXAMPLES with verbose flag and current defaults
- Update all example playbooks (nsupdate_zone_example.yml, sample_zone_format.yml)
- Simplify examples by relying on sensible defaults
- Add ignore_soa_records flag (default: true) to automatically ignore SOA records
- Add ignore_dnssec_records flag with default changed to true
- Add validate_records flag (default: true) with record value validation
- Implement _validate_record_values() method supporting:
- IPv4/IPv6 address validation for A/AAAA records
- FQDN validation for CNAME/MX/NS/PTR/SRV records
- Text record acceptance for TXT/SPF records
- Add global dns_server parameter for shared server configuration
- Add verbose output with per-record action tracking
- Add diff mode support for --diff flag