diff --git a/binder/helpers.py b/binder/helpers.py
index 34d013e..7605e1c 100644
--- a/binder/helpers.py
+++ b/binder/helpers.py
@@ -75,8 +75,7 @@ def add_record(form_data):
keyring = None
response = []
- response.append({ "type" : "Forward Record: %s.%s" % (str(form_data["record_name"]),
- str(form_data["zone_name"])),
+ response.append({ "description" : "Forward Record Added: %(record_name)s.%(zone_name)s" % form_data,
"output" : add_forward_record(str(form_data["dns_server"]),
str(form_data["zone_name"]),
str(form_data["record_name"]),
@@ -86,7 +85,7 @@ def add_record(form_data):
keyring)})
if form_data["create_reverse"]:
- response.append({ "type" : "Reverse Record: %s" % form_data["record_data"],
+ response.append({ "description" : "Reverse Record Added: %(record_data)s" % form_data,
"output" : add_reverse_record(str(form_data["dns_server"]),
str(form_data["zone_name"]),
str(form_data["record_name"]),
@@ -108,7 +107,9 @@ def add_cname_record(dns_server, zone_name, originating_record, cname, ttl, key_
update.replace(cname, int(ttl), 'CNAME', originating_record + ".")
response = dns.query.tcp(update, dns_server)
- return response
+ return [{ "description" : "CNAME %s.%s points to %s" % (cname, zone_name, originating_record),
+ "output" : response}]
+
def delete_record(form_data, rr_items):
"""Delete a list of DNS records passed as strings in rr_items."""
@@ -127,6 +128,6 @@ def delete_record(form_data, rr_items):
dns_update = dns.update.Update(domain, keyring = keyring)
dns_update.delete(record)
output = dns.query.tcp(dns_update, dns_server)
- delete_response.append({ "rr_item" : current_rr_item, "output" : output })
+ delete_response.append({ "description" : "Delete record %s" % current_rr_item, "output" : output })
return delete_response
diff --git a/binder/templates/bcommon/add_cname_record_form.htm b/binder/templates/bcommon/add_cname_record_form.htm
index 4bf0a4c..789d6bd 100644
--- a/binder/templates/bcommon/add_cname_record_form.htm
+++ b/binder/templates/bcommon/add_cname_record_form.htm
@@ -1,7 +1,7 @@
{% extends "base.htm" %}
{% block pageheader %}
-Add cname record for {{record_name}}.{{zone_name}}
+Add CNAME record for {{ originating_record }}
{% endblock pageheader %}
{% block body %}
@@ -18,8 +18,8 @@ Add cname record for {{record_name}}.{{zone_name}}
- {{record_name}}.{{zone_name}}
-
+ {{originating_record}}
+
@@ -27,9 +27,14 @@ Add cname record for {{record_name}}.{{zone_name}}
diff --git a/binder/templates/bcommon/add_cname_result.htm b/binder/templates/bcommon/add_cname_result.htm
deleted file mode 100644
index 494a46e..0000000
--- a/binder/templates/bcommon/add_cname_result.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-{% extends "base.htm" %}
-
-
-{% block pageheader %}
-Add CNAME Record Result
-{% endblock pageheader %}
-
-{% block body %}
-
-
- CNAME |
- Add CNAME Result |
-
-
- {{ rr_data.cname }}.{{rr_data.zone_name }} points to {{ rr_data.originating_record }} |
- {{ response }} |
-
-
-
-{% endblock body %}
diff --git a/binder/templates/bcommon/delete_record_result.htm b/binder/templates/bcommon/delete_record_result.htm
deleted file mode 100644
index ab2c805..0000000
--- a/binder/templates/bcommon/delete_record_result.htm
+++ /dev/null
@@ -1,23 +0,0 @@
-{% extends "base.htm" %}
-
-
-{% block pageheader %}
-Delete Record(s) Result
-{% endblock pageheader %}
-
-{% block body %}
-
-
-{% for current_response in delete_result %}
-
- Record |
- Delete Result |
-
-
- {{ current_response.rr_item }} |
- {{ current_response.output }} |
-
-{% endfor %}
-
-
-{% endblock body %}
diff --git a/binder/templates/bcommon/add_record_result.htm b/binder/templates/bcommon/response_result.htm
similarity index 78%
rename from binder/templates/bcommon/add_record_result.htm
rename to binder/templates/bcommon/response_result.htm
index ece1aa3..78af437 100644
--- a/binder/templates/bcommon/add_record_result.htm
+++ b/binder/templates/bcommon/response_result.htm
@@ -2,18 +2,18 @@
{% block pageheader %}
-Add Record Result
+Record Result
{% endblock pageheader %}
{% block body %}
{% for current_response in response %}
- Record: |
+ Record |
Output |
- {{ current_response.type }} |
+ {{ current_response.description }} |
{{ current_response.output }} |
{% endfor %}
diff --git a/binder/views.py b/binder/views.py
index 5c27fb7..2ff7e11 100644
--- a/binder/views.py
+++ b/binder/views.py
@@ -6,6 +6,9 @@ import re
RE_UNICODEARRAY = re.compile(r"u'(.*?)'")
+class BinderException(Exception):
+ pass
+
def home_index(request):
return render(request, 'index.htm')
@@ -52,11 +55,11 @@ def view_add_record(request, dns_server, zone_name):
""" View to provide form to add a DNS record. """
return render(request, 'bcommon/add_record_form.htm',
{ "dns_server" : dns_server,
- "zone_name" : zone_name })
+ "zone_name" : zone_name,
+ "tsig_keys" : models.Key.objects.all() })
def view_add_record_result(request):
""" Process the input given to add a DNS record. """
- errors = None
if request.method == "GET":
return redirect('/')
@@ -65,10 +68,10 @@ def view_add_record_result(request):
cd = form.cleaned_data
try:
add_record_response = helpers.add_record(cd)
- except BinderException, errors:
+ except BinderException, error:
pass
- return render(request, 'bcommon/add_record_result.htm',
- { "errors" : errors,
+ return render(request, 'bcommon/response_result.htm',
+ { "errors" : error,
"response" : add_record_response })
return render(request, 'bcommon/add_record_form.htm',
@@ -81,38 +84,41 @@ def view_add_cname_record(request, dns_server, zone_name, record_name):
""" Process given input to add a CNAME pointer."""
return render(request, "bcommon/add_cname_record_form.htm",
{ "dns_server" : dns_server,
+ "originating_record" : "%s.%s" % (record_name, zone_name),
"zone_name" : zone_name,
- "record_name" : record_name,
"tsig_keys" : models.Key.objects.all() })
def view_add_cname_result(request):
if request.method == "GET":
- # Return home. You shouldn't trying to directly access
- # the url for deleting records.
return redirect('/')
form = forms.FormAddCnameRecord(request.POST)
if form.is_valid():
cd = form.cleaned_data
- else:
- return "bad form" # TODO: Send back the form pre-populated with the error
+ try:
+ add_cname_response = helpers.add_cname_record(
+ str(cd["dns_server"]),
+ str(cd["zone_name"]),
+ str(cd["originating_record"]),
+ str(cd["cname"]),
+ str(cd["ttl"]),
+ str(cd["key_name"]))
+ except BinderException, error:
+ pass
- try:
- add_cname_response = helpers.add_cname_record(
- str(cd["dns_server"]),
- str(cd["zone_name"]),
- str(cd["originating_record"]),
- str(cd["cname"]),
- str(cd["ttl"]),
- str(cd["key_name"]))
- except Exception, err:
- return render(request, 'bcommon/add_cname_result.htm',
- { 'errors' : err,
- 'rr_data' : cd })
+ return render(request, 'bcommon/response_result.htm',
+ { 'errors' : error,
+ 'response' : add_cname_response })
+
+ return render(request, "bcommon/add_cname_record_form.htm",
+ { "dns_server" : request.POST["dns_server"],
+ "zone_name" : request.POST["zone_name"],
+ "record_name" : request.POST["cname"],
+ "originating_record" : request.POST["originating_record"],
+ "form_data" : request.POST,
+ "form_errors" : form.errors,
+ "tsig_keys" : models.Key.objects.all() })
- return render(request, 'bcommon/add_cname_result.htm',
- { 'response' : add_cname_response,
- 'rr_data' : cd })
def view_delete_record(request):
if request.method == "GET":
@@ -145,8 +151,8 @@ def view_delete_result(request):
try:
delete_result = helpers.delete_record(request.POST, rr_items)
except Exception, err:
- return render(request, 'bcommon/delete_record_result.htm',
- { "errors" : err }),
+ return render(request, 'bcommon/response_result.htm.htm',
+ { "errors" : err })
- return render(request, 'bcommon/delete_record_result.htm',
- { 'delete_result' : delete_result })
+ return render(request, 'bcommon/response_result.htm',
+ { 'response' : delete_result })