mirror of
https://github.com/saltstack-formulas/bind-formula.git
synced 2025-04-10 14:51:42 +00:00
24 lines
1.3 KiB
Django/Jinja
24 lines
1.3 KiB
Django/Jinja
{%- macro generate_reverse(zone_records, net, for_zones, available_zones) %}
|
|
{%- set res = {} %}
|
|
{%- set net = salt['network.calc_net'](net) %}
|
|
{% set for_zones = [ for_zones ] if for_zones is string else for_zones %}
|
|
{% set for_zones = available_zones.keys() if for_zones|length == 1 and for_zones[0] == 'any' else for_zones %}
|
|
{%- for zone in for_zones %}
|
|
{%- set A_records = available_zones.get(zone, {}).get('records', {}).get('A', {}) %}
|
|
{%- for name, addr_list in A_records|dictsort %}
|
|
{%- set addr_list = [ addr_list ] if addr_list is string or addr_list is number else addr_list %}
|
|
{%- for addr in addr_list %}
|
|
{%- if salt['network.ip_in_subnet'](addr, net) %}
|
|
{%- if name.endswith('.') %}
|
|
{%- set full_name = name %}
|
|
{%- else %}
|
|
{%- set full_name = name + '.' + zone + '.' %}
|
|
{%- endif %}
|
|
{%- set rev_ip = '.'.join(addr.split('.')[::-1]) %}
|
|
{%- do res.update({rev_ip + '.in-addr.arpa.': full_name}) %}
|
|
{%- endif %}
|
|
{%- endfor %}
|
|
{%- endfor %}
|
|
{%- endfor %}
|
|
{%- do zone_records.update({'PTR': res }) %}
|
|
{%- endmacro %}
|