def dataset_delete(request, name): datasets = zfs.list_datasets(path=name, recursive=True) if request.method == 'POST': form = forms.Dataset_Destroy(request.POST, fs=name, datasets=datasets) if form.is_valid(): if form.hold: proc = subprocess.Popen( 'zfs release freenas:repl %s' % form.hold, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, ) proc.communicate() retval = notifier().destroy_zfs_dataset(path=name, recursive=True) if retval == '': notifier().restart("collectd") return JsonResp(request, message=_("Dataset successfully destroyed.")) else: return JsonResp(request, error=True, message=retval) else: form = forms.Dataset_Destroy(fs=name, datasets=datasets) return render(request, 'storage/dataset_confirm_delete.html', { 'name': name, 'form': form, 'datasets': datasets, })
def dataset_delete(request, name): with client as c: datasets = c.call("pool.dataset.query", [["name", "=", name]], {"get": True})["children"] if request.method == 'POST': form = forms.Dataset_Destroy(request.POST, fs=name, datasets=datasets) if not form.is_valid() or form.done() is False: return JsonResp(request, form=form) return JsonResp(request, message=_("Dataset successfully destroyed.")) else: form = forms.Dataset_Destroy(fs=name, datasets=datasets) return render(request, 'storage/dataset_confirm_delete.html', { 'name': name, 'form': form, 'datasets': datasets, })
def dataset_delete(request, name): datasets = zfs.list_datasets(path=name, recursive=True) if request.method == 'POST': form = forms.Dataset_Destroy(request.POST, fs=name, datasets=datasets) if form.is_valid(): retval = notifier().destroy_zfs_dataset(path=name, recursive=True) if retval == '': return JsonResp(request, message=_("Dataset successfully destroyed.")) else: return JsonResp(request, error=True, message=retval) else: form = forms.Dataset_Destroy(fs=name, datasets=datasets) return render(request, 'storage/dataset_confirm_delete.html', { 'name': name, 'form': form, 'datasets': datasets, })
def dataset_delete(request, name): with client as c: datasets = c.call("pool.dataset.query", [["name", "=", name]], {"get": True})["children"] if request.method == 'POST': form = forms.Dataset_Destroy(request.POST, fs=name, datasets=datasets) if form.is_valid(): with client as c: try: c.call("pool.dataset.delete", name, True) return JsonResp( request, message=_("Dataset successfully destroyed.")) except ClientException as e: return JsonResp(request, error=True, message=e.error) else: form = forms.Dataset_Destroy(fs=name, datasets=datasets) return render(request, 'storage/dataset_confirm_delete.html', { 'name': name, 'form': form, 'datasets': datasets, })