def disk_wipe(request, devname): form = forms.DiskWipeForm() if request.method == "POST": form = forms.DiskWipeForm(request.POST) if form.is_valid(): mounted = [] for geom in notifier().disk_get_consumers(devname): gname = geom.xpathEval("./name")[0].content dev = "/dev/%s" % (gname, ) if dev not in mounted and is_mounted(device=dev): mounted.append(dev) for vol in models.Volume.objects.filter(vol_fstype='ZFS'): if devname in vol.get_disks(): mounted.append(vol.vol_name) if mounted: form._errors['__all__'] = form.error_class([ "Umount the following mount points before proceeding:" "<br /> %s" % ('<br /> '.join(mounted), ) ]) else: notifier().disk_wipe(devname, form.cleaned_data['method']) return JsonResp(request, message=_("Disk successfully wiped")) return JsonResp(request, form=form) return render(request, "storage/disk_wipe.html", { 'devname': devname, 'form': form, })
def disk_wipe(request, devname): form = forms.DiskWipeForm() if request.method == "POST": form = forms.DiskWipeForm(request.POST) if form.is_valid(): mounted = [] for geom in notifier().disk_get_consumers(devname): gname = geom.xpathEval("./name")[0].content dev = "/dev/%s" % (gname, ) if dev not in mounted and is_mounted(device=dev): mounted.append(dev) for vol in models.Volume.objects.filter( vol_fstype='ZFS' ): if devname in vol.get_disks(): mounted.append(vol.vol_name) if mounted: form._errors['__all__'] = form.error_class([ "Umount the following mount points before proceeding:" "<br /> %s" % ( '<br /> '.join(mounted), ) ]) else: notifier().disk_wipe(devname, form.cleaned_data['method']) return JsonResp(request, message=_("Disk successfully wiped") ) return JsonResp(request, form=form) return render(request, "storage/disk_wipe.html", { 'devname': devname, 'form': form, })
def mounted(self): return is_mounted(device=self.source, path=self.destination_jail)