Exemple #1
0
def view_add_cname_record(request, dns_server, zone_name, record_name):
    """View to allow to add CNAME records."""
    this_server = get_object_or_404(models.BindServer, hostname=dns_server)

    if request.method == 'POST':
        form = forms.FormAddCnameRecord(request.POST)
        if form.is_valid():
            form_cleaned = form.cleaned_data
            try:
                helpers.add_cname_record(
                    form_cleaned["dns_server"], str(form_cleaned["zone_name"]),
                    str(form_cleaned["cname"]),
                    '%s.%s' % (str(form_cleaned["originating_record"]),
                               str(form_cleaned["zone_name"])),
                    form_cleaned["ttl"], form_cleaned["key_name"])
            except (exceptions.KeyringException,
                    exceptions.RecordException) as exc:
                messages.error(
                    request, "Adding %s.%s failed: %s" %
                    (form_cleaned["cname"], zone_name, exc))
            else:
                messages.success(
                    request, "%s.%s was added successfully." %
                    (form_cleaned["cname"], zone_name))
                return redirect('zone_list',
                                dns_server=dns_server,
                                zone_name=zone_name)
    else:
        key_id = models.BindServer.objects.get(
            hostname=dns_server).default_transfer_key.id
        form = forms.FormAddCnameRecord(
            initial={
                'originating_record': record_name,
                'zone_name': zone_name,
                'key_name': key_id
            })

    return render(request, "bcommon/add_cname_record_form.html", {
        "dns_server": this_server,
        "form": form
    })
Exemple #2
0
 def test_MissingName_AddCnameForm(self):
     """Attempt to submit a cname add form missing the cname and tsig key."""
     form_dict = {"dns_server": "testserver1",
                  "zone_name": "domain1.local",
                  "originating_record": "record1.domain1.local",
                  "cname": "",
                  "ttl": 300}
     expected_form_errors = {"cname": [u"This field is required."],
                             "key_name": [u"This field is required."]}
     testform_1 = forms.FormAddCnameRecord(form_dict)
     testform_1.is_valid()
     self.assertTrue(testform_1.errors)
     self.assertEquals(testform_1.errors, expected_form_errors)