def _delete_snapshot(self, request, sname, id=None, snap_name=None): share = self._validate_share(sname, request) try: snapshot = None if (id is not None): snapshot = Snapshot.objects.get(id=id) elif (snap_name is not None): snapshot = Snapshot.objects.get(share=share, name=snap_name) else: return True except: e_msg = '' if (id is not None): e_msg = ('Snapshot(%s) does not exist.' % id) else: e_msg = ('Snapshot(%s) does not exist.' % snap_name) handle_exception(Exception(e_msg), request) if (snapshot.uvisible): self._toggle_visibility(share, snapshot.real_name, on=False) toggle_sftp_visibility(share, snapshot.real_name, on=False) remove_snap(share.pool, sname, snapshot.name) snapshot.delete() return Response()
def _delete_snapshot(self, request, sid, id=None, snap_name=None): share = self._validate_share(sid, request) try: snapshot = None if (id is not None): snapshot = Snapshot.objects.get(id=id) elif (snap_name is not None): snapshot = Snapshot.objects.get(share=share, name=snap_name) else: return True except: e_msg = '' if (id is not None): e_msg = 'Snapshot id ({}) does not exist.'.format(id) else: # Note e_msg consumed by replication/util.py update_repclone() # and delete_snapshot() e_msg = 'Snapshot name ({}) does not exist.'.format(snap_name) handle_exception(Exception(e_msg), request) if (snapshot.uvisible): self._toggle_visibility(share, snapshot.real_name, snapshot.qgroup, on=False) toggle_sftp_visibility(share, snapshot.real_name, snapshot.qgroup, on=False) remove_snap(share.pool, share.name, snapshot.name, snapshot.qgroup) snapshot.delete() return Response()
def delete(self, request, sname, snap_name): """ deletes a snapshot """ share = Share.objects.get(name=sname) if (Snapshot.objects.filter(share=share, name=snap_name).exists()): snapshot = Snapshot.objects.get(share=share, name=snap_name) pool_device = Disk.objects.filter(pool=share.pool)[0].name remove_snap(share.pool.name, pool_device, snap_name) snapshot.delete() return Response()
try: self._toggle_visibility(share, snapshot.real_name, on=False) except Exception, e: logger.error(e_msg) logger.exception(e) handle_exception(Exception(e_msg), request) try: toggle_sftp_visibility(share, snapshot.real_name, on=False) except Exception, e: logger.error(e_msg) logger.exception(e) handle_exception(Exception(e_msg), request) try: remove_snap(share.pool, pool_device, sname, snapshot.name) snapshot.delete() return Response() except Exception, e: e_msg = ('Unable to delete snapshot due to a system error. Try ' 'again later.') logger.error(e_msg) logger.exception(e) handle_exception(Exception(e_msg), request) def delete(self, request, sname, snap_name=None): """ deletes a snapshot """ with self._handle_exception(request): if (snap_name is None):
try: self._toggle_visibility(share, snapshot.real_name, on=False) except Exception, e: logger.error(e_msg) logger.exception(e) handle_exception(Exception(e_msg), request) try: toggle_sftp_visibility(share, snapshot.real_name, on=False) except Exception, e: logger.error(e_msg) logger.exception(e) handle_exception(Exception(e_msg), request) try: remove_snap(share.pool.name, pool_device, sname, snapshot.name) snapshot.delete() return Response() except Exception, e: e_msg = ('Unable to delete snapshot due to a system error. Try ' 'again later.') logger.error(e_msg) logger.exception(e) handle_exception(Exception(e_msg), request) def delete(self, request, sname, snap_name=None): """ deletes a snapshot """ if (snap_name is None): snap_qp = self.request.QUERY_PARAMS.get('id', None)
deletes a snapshot """ share = self._validate_share(sname, request) try: snapshot = Snapshot.objects.get(share=share, name=snap_name) except: e_msg = ('Snapshot with name: %s does not exist' % snap_name) handle_exception(Exception(e_msg), request) pool_device = Disk.objects.filter(pool=share.pool)[0].name try: if (snapshot.uvisible): self._toggle_visibility(share, snap_name, on=False) except Exception, e: e_msg = ('Unable to nfs unexport the snapshot, requirement for ' 'deletion. Try again later') logger.error(e_msg) logger.exception(e) handle_exception(Exception(e_msg), request) try: remove_snap(share.pool.name, pool_device, sname, snap_name) snapshot.delete() return Response() except Exception, e: e_msg = ('Unable to delete snapshot due to a system error. Try ' 'again later.') logger.error(e_msg) logger.exception(e) handle_exception(Exception(e_msg), request)