def zvol_edit(request, name): if request.method == 'POST': form = forms.ZVol_EditForm(request.POST, name=name) if form.is_valid() and form.save(): return JsonResp(request, message=_("Zvol successfully edited.")) else: return JsonResp(request, form=form) else: form = forms.ZVol_EditForm(name=name) return render(request, 'storage/volume_edit.html', { 'form': form, })
def zvol_edit(request, name): if request.method == 'POST': form = forms.ZVol_EditForm(request.POST, name=name) if form.is_valid(): _n = notifier() error, errors = False, {} for attr, formfield, can_inherit in ( ('org.freenas:description', 'zvol_comments', False), ('compression', None, True), ('dedup', None, True), ('volsize', None, True), ): if not formfield: formfield = 'zvol_%s' % attr if can_inherit and form.cleaned_data[formfield] == "inherit": success, err = _n.zfs_inherit_option( name, attr) else: success, err = _n.zfs_set_option( name, attr, form.cleaned_data[formfield]) if not success: error = True errors[formfield] = err if not error: extents = iSCSITargetExtent.objects.filter( iscsi_target_extent_type='ZVOL', iscsi_target_extent_path='zvol/' + name) if extents.exists(): _n.reload("iscsitarget") return JsonResp( request, message=_("Zvol successfully edited.")) else: for field, err in errors.items(): form._errors[field] = form.error_class([ err, ]) else: return JsonResp(request, form=form) else: form = forms.ZVol_EditForm(name=name) return render(request, 'storage/volume_edit.html', { 'form': form, })