Exemplo n.º 1
0
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,
    })
Exemplo n.º 2
0
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,
    })