Add missing reverse DNS fields to prefix forms and to CSV exporting

This commit is contained in:
rdujardin 2016-07-27 13:11:33 +02:00
parent c11cadec53
commit 705690edda
7 changed files with 112 additions and 5 deletions

View File

@ -36,7 +36,7 @@ class ZoneForm(forms.ModelForm, BootstrapMixin):
'soa_refresh': "Refresh time, in seconds",
'soa_retry': "Retry time, in seconds",
'soa_expire': "Expire time, in seconds",
'soa_minimum': "Negative result TTL, in seconds"
'soa_minimum': "Negative result TTL, in seconds",
}
class ZoneFromCSVForm(forms.ModelForm):

View File

@ -149,7 +149,16 @@ class PrefixForm(forms.ModelForm, BootstrapMixin):
class Meta:
model = Prefix
fields = ['prefix', 'vrf', 'site', 'vlan', 'status', 'role', 'description']
fields = ['prefix', 'vrf', 'site', 'vlan', 'status', 'role', 'description', 'ttl', 'soa_name', 'soa_contact', 'soa_refresh', 'soa_retry', 'soa_expire', 'soa_minimum']
labels = {
'ttl': 'Rev. DNS - TTL',
'soa_name': 'Rev. DNS - SOA Name',
'soa_contact': 'Rev. DNS - SOA Contact',
'soa_refresh': 'Rev. DNS - SOA Refresh',
'soa_retry': 'Rev. DNS - SOA Retry',
'soa_expire': 'Rev. DNS - SOA Expire',
'soa_minimum': 'Rev. DNS - SOA Minimum',
}
help_texts = {
'prefix': "IPv4 or IPv6 network",
'vrf': "VRF (if applicable)",
@ -157,6 +166,13 @@ class PrefixForm(forms.ModelForm, BootstrapMixin):
'vlan': "The VLAN to which this prefix is assigned (if applicable)",
'status': "Operational status of this prefix",
'role': "The primary function of this prefix",
'ttl': "Time to live, in seconds",
'soa_name': "The primary name server for the domain, @ for origin",
'soa_contact': "The responsible party for the zone (e.g. ns.foo.net. noc.foo.net.)",
'soa_refresh': "Refresh time, in seconds",
'soa_retry': "Retry time, in seconds",
'soa_expire': "Expire time, in seconds",
'soa_minimum': "Negative result TTL, in seconds",
}
def __init__(self, *args, **kwargs):
@ -200,7 +216,7 @@ class PrefixFromCSVForm(forms.ModelForm):
class Meta:
model = Prefix
fields = ['prefix', 'vrf', 'site', 'vlan_group_name', 'vlan_vid', 'status_name', 'role', 'description']
fields = ['prefix', 'vrf', 'site', 'vlan_group_name', 'vlan_vid', 'status_name', 'role', 'description', 'ttl', 'soa_name', 'soa_contact', 'soa_refresh', 'soa_retry', 'soa_expire', 'soa_minimum']
def clean(self):
@ -253,6 +269,14 @@ class PrefixBulkEditForm(forms.Form, BootstrapMixin):
role = forms.ModelChoiceField(queryset=Role.objects.all(), required=False)
description = forms.CharField(max_length=50, required=False)
ttl = forms.IntegerField(required=False, label='Reverse DNS - TTL')
soa_name = forms.CharField(max_length=100, required=False, label='Reverse DNS - SOA Name')
soa_contact = forms.CharField(max_length=100, required=False, label='Reverse DNS - SOA Contact')
soa_refresh = forms.IntegerField(required=False, label='Reverse DNS - SOA Refresh')
soa_retry = forms.IntegerField(required=False, label='Reverse DNS - SOA Retry')
soa_expire = forms.IntegerField(required=False, label='Reverse DNS - SOA Expire')
soa_minimum = forms.IntegerField(required=False, label='Reverse DNS - SOA Minimum')
class PrefixBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Prefix.objects.all(), widget=forms.MultipleHiddenInput)

View File

@ -306,6 +306,14 @@ class Prefix(CreatedUpdatedModel):
self.get_status_display(),
self.role.name if self.role else '',
self.description,
self.ttl if self.ttl else '',
self.soa_name if self.soa_name else '',
self.soa_contact if self.soa_contact else '',
self.soa_serial if self.soa_serial else '',
self.soa_refresh if self.soa_refresh else '',
self.soa_retry if self.soa_retry else '',
self.soa_expire if self.soa_expire else '',
self.soa_minimum if self.soa_minimum else '',
])
@property

View File

@ -126,7 +126,7 @@
</div>
<table class="table table-hover panel-body">
<tr>
<td><pre id="bind_export" style="overflow: auto; word-wrap: normal; white-space: pre;">{{ bind_export }}</pre></td>
<td><pre id="bind_export" style="max-width: 100%;">{{ bind_export }}</pre></td>
</tr>
</table>
</div>

View File

@ -80,6 +80,38 @@
<td>IP Addresses</td>
<td><a href="{% url 'ipam:prefix_ipaddresses' pk=prefix.pk %}">{{ ipaddress_count }}</a></td>
</tr>
<tr>
<td>Reverse DNS - TTL</td>
<td>{{ zone.ttl }}</td>
</tr>
<tr>
<td>Reverse DNS - SOA Name</td>
<td>{{ zone.soa_name }}</td>
</tr>
<tr>
<td>Reverse DNS - SOA Contact</td>
<td>{{ zone.soa_contact }}</td>
</tr>
<tr>
<td>Reverse DNS - SOA Serial</td>
<td>{{ zone.soa_serial }}</td>
</tr>
<tr>
<td>Reverse DNS - SOA Refresh</td>
<td>{{ zone.soa_refresh }}</td>
</tr>
<tr>
<td>Reverse DNS - SOA Retry</td>
<td>{{ zone.soa_retry }}</td>
</tr>
<tr>
<td>Reverse DNS - SOA Expire</td>
<td>{{ zone.soa_expire }}</td>
</tr>
<tr>
<td>Reverse DNS - SOA Minimum</td>
<td>{{ zone.soa_minimum }}</td>
</tr>
<tr>
<td>Created</td>
<td>{{ prefix.created }}</td>

View File

@ -12,6 +12,14 @@
<td>{{ prefix.status }}</td>
<td>{{ prefix.role }}</td>
<td>{{ prefix.description }}</td>
<td>{{ prefix.ttl }}</td>
<td>{{ prefix.soa_name }}</td>
<td>{{ prefix.soa_contact }}</td>
<td>{{ prefix.soa_refresh }}</td>
<td>{{ prefix.soa_retry }}</td>
<td>{{ prefix.soa_expire }}</td>
<td>{{ prefix.soa_minimum }}</td>
<td>{{ prefix.description }}</td>
</tr>
{% endfor %}
{% endblock %}

View File

@ -68,10 +68,45 @@
<td>Short description (optional)</td>
<td>7th floor WiFi</td>
</tr>
<tr>
<td>Reverse DNS - TTL</td>
<td>Time to live, in seconds</td>
<td>10800</td>
</tr>
<tr>
<td>Reverse DNS - SOA Name</td>
<td>The primary name server for the domain, @ for origin</td>
<td>@</td>
</tr>
<tr>
<td>Reverse DNS - SOA Contact</td>
<td>The responsible party for the domain</td>
<td>ns.foo.net. noc.foo.net.</td>
</tr>
<tr>
<td>Reverse DNS - SOA Refresh</td>
<td>Refresh time, in seconds</td>
<td>3600</td>
</tr>
<tr>
<td>Reverse DNS - SOA Retry</td>
<td>Retry time, in seconds</td>
<td>3600</td>
</tr>
<tr>
<td>Reverse DNS - SOA Expire</td>
<td>Expire time, in seconds</td>
<td>604800</td>
</tr>
<tr>
<td>Reverse DNS - SOA Minimum</td>
<td>Negative result TTL, in seconds</td>
<td>1800</td>
</tr>
</tbody>
</table>
<h4>Example</h4>
<pre>192.168.42.0/24,65000:123,HQ,Customers,801,Active,Customer,7th floor WiFi</pre>
<pre>192.168.42.0/24,65000:123,HQ,Customers,801,Active,Customer,7th floor WiFi,10800,@,ns.foo.net. noc.foo.net.,3600,3600,604800,1800</pre>
</div>
</div>
{% endblock %}