def handle(self, *zonefiles, **options): overwrite = options.get('overwrite') verbosity = int(options.get('verbosity', 1)) # Determine owner User = get_user_model() try: owner = User.objects.get(username=options.get('username')) except User.DoesNotExist: owner = None # Process zonefiles for zonefile in zonefiles: if os.path.isfile(zonefile): f = open(zonefile, 'r') data = f.read() f.close() try: process_zone_file(None, data, owner, overwrite=overwrite) except Exception as e: sys.stderr.write('error: %s: %s\n' % (str(e), zonefile)) sys.stderr.flush() else: if verbosity: sys.stdout.write('success: %s\n' % zonefile) sys.stdout.flush()
def import_zone_view(request): if request.method == 'POST': # If the form has been submitted... form = ZoneImportForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass # Process the data in form.cleaned_data origin = form.cleaned_data['origin'] zonetext = form.cleaned_data['zonetext'] overwrite = form.cleaned_data['overwrite'] try: process_zone_file(origin, zonetext, overwrite) except Exception as e: info_dict = { 'strerror': mark_safe(str(e)), } return render_to_response('powerdns_manager/import/error.html', info_dict, mimetype='text/html') return render_to_response('powerdns_manager/import/success.html', {}, mimetype='text/html') else: form = ZoneImportForm() # An unbound form info_dict = { 'form': form, } return render_to_response('powerdns_manager/import/zone.html', info_dict, context_instance=RequestContext(request), mimetype='text/html')
def import_zone_view(request): if request.method == 'POST': # If the form has been submitted... form = ZoneImportForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass # Process the data in form.cleaned_data origin = form.cleaned_data['origin'] zonetext = form.cleaned_data['zonetext'] overwrite = form.cleaned_data['overwrite'] try: process_zone_file(origin, zonetext, request.user, overwrite) except Exception as e: info_dict = { 'strerror': mark_safe(str(e)), } return render_to_response('powerdns_manager/zone/import/error.html', info_dict) return render_to_response('powerdns_manager/zone/import/success.html', {}) else: form = ZoneImportForm() # An unbound form info_dict = { 'form': form, } return render_to_response( 'powerdns_manager/zone/import/zonefile.html', info_dict, context_instance=RequestContext(request))
def template_create_zone_view(request, template_id): """Create zone from template. Accepts a template ID. An intermediate page asking for the origin of the new zone is used. """ # Permission check on models. if not request.user.has_perms([ 'powerdns_manager.add_domain', ]): messages.error(request, 'Insufficient permissions for this action.') return HttpResponseRedirect(reverse('admin:powerdns_manager_zonetemplate_changelist')) if request.method == 'POST': origin = request.POST.get('origin') # Get the models ZoneTemplate = cache.get_model('powerdns_manager', 'ZoneTemplate') Domain = cache.get_model('powerdns_manager', 'Domain') template_obj = ZoneTemplate.objects.get(id=template_id) template_obj_display = force_unicode(template_obj) # Check template ownership. if request.user != template_obj.created_by: messages.error(request, 'Permission denied for template: %s' % template_obj_display) return HttpResponseRedirect(reverse('admin:powerdns_manager_zonetemplate_changelist')) else: # Replace placeholder with origin in the template content. zonetext = template_obj.content.replace('#origin#', origin) process_zone_file(origin, zonetext, request.user) messages.info(request, "Successfully created zone '%s' from template '%s'." % (origin, template_obj.name)) # Redirect to the new zone's change form. domain_obj = Domain.objects.get(name=origin) return HttpResponseRedirect(reverse('admin:powerdns_manager_domain_change', args=(domain_obj.id,))) # Create log entry # LogEntry.objects.log_action( # user_id = request.user.pk, # content_type_id = ContentType.objects.get_for_model(obj).pk, # object_id = obj.pk, # object_repr = obj_display, # action_flag = CHANGE # ) else: form = TemplateOriginForm() info_dict = { 'form': form, 'template_id': template_id, } return render_to_response( 'powerdns_manager/template/create_zone.html', info_dict, context_instance=RequestContext(request))
def template_create_zone_view(request, template_id): """Create zone from template. Accepts a template ID. An intermediate page asking for the origin of the new zone is used. """ # Permission check on models. if not request.user.has_perms([ 'powerdns_manager.add_domain', ]): messages.error(request, 'Insufficient permissions for this action.') return HttpResponseRedirect(reverse('admin:powerdns_manager_zonetemplate_changelist')) if request.method == 'POST': origin = request.POST.get('origin') # Get the models ZoneTemplate = get_model('powerdns_manager', 'ZoneTemplate') Domain = get_model('powerdns_manager', 'Domain') template_obj = ZoneTemplate.objects.get(id=template_id) template_obj_display = force_text(template_obj) # Check template ownership. if request.user != template_obj.created_by: messages.error(request, 'Permission denied for template: %s' % template_obj_display) return HttpResponseRedirect(reverse('admin:powerdns_manager_zonetemplate_changelist')) else: # Replace placeholder with origin in the template content. zonetext = template_obj.content.replace('#origin#', origin) process_zone_file(origin, zonetext, request.user) messages.info(request, "Successfully created zone '%s' from template '%s'." % (origin, template_obj.name)) # Redirect to the new zone's change form. domain_obj = Domain.objects.get(name=origin) return HttpResponseRedirect(reverse('admin:powerdns_manager_domain_change', args=(domain_obj.id,))) # Create log entry # LogEntry.objects.log_action( # user_id = request.user.pk, # content_type_id = ContentType.objects.get_for_model(obj).pk, # object_id = obj.pk, # object_repr = obj_display, # action_flag = CHANGE # ) else: form = TemplateOriginForm() info_dict = { 'form': form, 'template_id': template_id, } return render_to_response( 'powerdns_manager/template/create_zone.html', info_dict, context_instance=RequestContext(request))
def import_zone_view(request): if request.method == 'POST': # If the form has been submitted... form = ZoneImportForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass # Process the data in form.cleaned_data origin = form.cleaned_data['origin'] zonetext = form.cleaned_data['zonetext'] overwrite = form.cleaned_data['overwrite'] try: process_zone_file(origin, zonetext, overwrite) except Exception, e: info_dict = { 'strerror': mark_safe(str(e)), } return render_to_response('powerdns_manager/import/error.html', info_dict, mimetype='text/html') return render_to_response('powerdns_manager/import/success.html', {}, mimetype='text/html')
def handle(self, *zonefiles, **options): overwrite = options.get('overwrite') verbosity = int(options.get('verbosity', 1)) for zonefile in zonefiles: if os.path.isfile(zonefile): f = open(zonefile, 'r') data = f.read() f.close() try: process_zone_file(None, data, overwrite=overwrite) except Exception, e: sys.stderr.write('error: %s: %s\n' % (str(e), zonefile)) sys.stderr.flush() else: if verbosity: sys.stdout.write('success: %s\n' % zonefile) sys.stdout.flush()
def handle(self, *zonefiles, **options): overwrite = options.get('overwrite') verbosity = int(options.get('verbosity', 1)) for zonefile in zonefiles: if os.path.isfile(zonefile): f = open(zonefile, 'r') data = f.read() f.close() try: process_zone_file(None, data, overwrite=overwrite) except Exception as e: sys.stderr.write('error: %s: %s\n' % (str(e), zonefile)) sys.stderr.flush() else: if verbosity: sys.stdout.write('success: %s\n' % zonefile) sys.stdout.flush()
def import_zone_view(request): if request.method == 'POST': # If the form has been submitted... form = ZoneImportForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass # Process the data in form.cleaned_data origin = form.cleaned_data['origin'] zonetext = form.cleaned_data['zonetext'] overwrite = form.cleaned_data['overwrite'] try: process_zone_file(origin, zonetext, request.user, overwrite) except Exception, e: info_dict = { 'strerror': mark_safe(str(e)), } return render_to_response( 'powerdns_manager/zone/import/error.html', info_dict) return render_to_response( 'powerdns_manager/zone/import/success.html', {})