def teardown_wrapper(export_pt, request, logger): try: nfs4_mount_teardown(export_pt) except Exception, e: e_msg = "Unable to delete the export(%s) because it is " "in use" % (export_pt) logger.exception(e) handle_exception(Exception(e_msg), request)
def teardown_wrapper(export_pt, request, logger): try: nfs4_mount_teardown(export_pt) except Exception, e: e_msg = ('Unable to delete the export(%s) because it is ' 'in use' % (export_pt)) logger.exception(e) handle_exception(Exception(e_msg), request)
def delete(self, request, export_id): with self._handle_exception(request): eg = self.validate_export_group(export_id, request) cur_exports = list(NFSExport.objects.all()) for e in NFSExport.objects.filter(export_group=eg): export_pt = ('%s%s' % (settings.NFS_EXPORT_ROOT, e.share.name)) if (e.export_group.nohide): snap_name = e.mount.split(e.share.name + '_')[-1] export_pt = ('%s/%s' % (export_pt, snap_name)) nfs4_mount_teardown(export_pt) cur_exports.remove(e) e.delete() eg.delete() exports = self.create_nfs_export_input(cur_exports) adv_entries = [e.export_str for e in AdvancedNFSExport.objects.all()] exports_d = self.create_adv_nfs_export_input(adv_entries, request) exports.update(exports_d) self.refresh_wrapper(exports, request, logger) return Response()
def delete(self, request, export_id): with self._handle_exception(request): eg = self.validate_export_group(export_id, request) cur_exports = list(NFSExport.objects.all()) for e in NFSExport.objects.filter(export_group=eg): export_pt = ('%s%s' % (settings.NFS_EXPORT_ROOT, e.share.name)) if (e.export_group.nohide): snap_name = e.mount.split(e.share.name + '_')[-1] export_pt = ('%s/%s' % (export_pt, snap_name)) nfs4_mount_teardown(export_pt) cur_exports.remove(e) e.delete() eg.delete() exports = self.create_nfs_export_input(cur_exports) adv_entries = [e.export_str for e in AdvancedNFSExport.objects.all()] exports_d = self.create_adv_nfs_export_input(adv_entries, request) exports.update(exports_d) self.refresh_wrapper(exports, request, logger) return Response()
def delete(self, request, sname, export_id): with self._handle_exception(request): share = validate_share(sname, request) eg = validate_export_group(export_id, request) cur_exports = list(NFSExport.objects.all()) export = NFSExport.objects.get(export_group=eg, share=share) for e in NFSExport.objects.filter(share=share): if e.export_group.host_str == eg.host_str: export_pt = "%s%s" % (settings.NFS_EXPORT_ROOT, share.name) if e.export_group.nohide: snap_name = e.mount.split(e.share.name + "_")[-1] export_pt = "%s%s/%s" % (settings.NFS_EXPORT_ROOT, e.share.name, snap_name) nfs4_mount_teardown(export_pt) cur_exports.remove(e) exports = create_nfs_export_input(cur_exports) export.delete() if NFSExport.objects.filter(export_group=eg).count() == 0: # delete only when this is the only share in the group eg.delete() refresh_wrapper(exports, request, logger) return Response()
def delete(self, request, sname, export_id): with self._handle_exception(request): share = validate_share(sname, request) eg = validate_export_group(export_id, request) cur_exports = list(NFSExport.objects.all()) export = NFSExport.objects.get(export_group=eg, share=share) for e in NFSExport.objects.filter(share=share): if (e.export_group.host_str == eg.host_str): export_pt = ('%s%s' % (settings.NFS_EXPORT_ROOT, share.name)) if (e.export_group.nohide): snap_name = e.mount.split(e.share.name + '_')[-1] export_pt = ('%s%s/%s' % (settings.NFS_EXPORT_ROOT, e.share.name, snap_name)) nfs4_mount_teardown(export_pt) cur_exports.remove(e) exports = create_nfs_export_input(cur_exports) export.delete() if (NFSExport.objects.filter(export_group=eg).count() == 0): #delete only when this is the only share in the group eg.delete() refresh_wrapper(exports, request, logger) return Response()
def delete(self, request, export_id): with self._handle_exception(request): eg = self.validate_export_group(export_id, request) cur_exports = list(NFSExport.objects.all()) for e in NFSExport.objects.filter(export_group=eg): export_pt = "%s%s" % (settings.NFS_EXPORT_ROOT, e.share.name) if e.export_group.nohide: snap_name = e.mount.split(e.share.name + "_")[-1] export_pt = "%s/%s" % (export_pt, snap_name) nfs4_mount_teardown(export_pt) cur_exports.remove(e) e.delete() # Following conditional delete was informed by test_nfs_export.py: if eg.id is not None: eg.delete() exports = self.create_nfs_export_input(cur_exports) adv_entries = [ e.export_str for e in AdvancedNFSExport.objects.all() ] exports_d = self.create_adv_nfs_export_input(adv_entries, request) exports.update(exports_d) self.refresh_wrapper(exports, request, logger) return Response()