@Override void handle(DeleteVolumeOnPrimaryStorageMsg msg, final ReturnValueCompletion<DeleteVolumeOnPrimaryStorageReply> completion) { deleteBits(msg.getVolume().getInstallPath(), new Completion(completion) { @Override public void success() { DeleteVolumeOnPrimaryStorageReply reply = new DeleteVolumeOnPrimaryStorageReply(); completion.success(reply); } @Override public void fail(ErrorCode errorCode) { completion.fail(errorCode); } }); }
@Override protected void handle(DeleteVolumeOnPrimaryStorageMsg msg) { DeleteVolumeOnPrimaryStorageReply reply = new DeleteVolumeOnPrimaryStorageReply(); logger.debug(String.format("Successfully deleted volume[uuid:%s] from primary storage[uuid:%s]", msg.getVolume().getUuid(), msg.getUuid())); bus.reply(msg, reply); }
@Override protected void handle(final DeleteVolumeOnPrimaryStorageMsg msg) { HypervisorType type = findHypervisorTypeByImageFormatAndPrimaryStorageUuid(msg.getVolume().getFormat(), msg.getPrimaryStorageUuid()); HypervisorFactory f = getHypervisorFactoryByHypervisorType(type.toString()); final HypervisorBackend bkd = f.getHypervisorBackend(self); bkd.handle(msg, new ReturnValueCompletion<DeleteVolumeOnPrimaryStorageReply>(msg) { @Override public void success(DeleteVolumeOnPrimaryStorageReply reply) { logger.debug( String.format("successfully delete volume[uuid:%s]", msg.getVolume().getUuid())); bus.reply(msg, reply); } @Override public void fail(ErrorCode errorCode) { logger.debug( String.format("can't delete volume[uuid:%s] right now, add a GC job", msg.getVolume().getUuid())); SMPDeleteVolumeGC gc = new SMPDeleteVolumeGC(); gc.NAME = String.format("gc-smp-%s-volume-%s", self.getUuid(), msg.getVolume()); gc.primaryStorageUuid = self.getUuid(); gc.hypervisorType = type.toString(); gc.volume = msg.getVolume(); gc.submit(SMPPrimaryStorageGlobalConfig.GC_INTERVAL.value(Long.class), TimeUnit.SECONDS); DeleteVolumeOnPrimaryStorageReply reply = new DeleteVolumeOnPrimaryStorageReply(); bus.reply(msg, reply); } }); }
DeleteVolumeOnPrimaryStorageMsg dmsg = new DeleteVolumeOnPrimaryStorageMsg(); dmsg.setVolume(getSelfInventory()); dmsg.setUuid(self.getPrimaryStorageUuid()); bus.makeTargetServiceIdByResourceUuid(dmsg, PrimaryStorageConstant.SERVICE_ID, self.getPrimaryStorageUuid()); bus.send(dmsg, new CloudBusCallBack(completion) {
@Override public String getPrimaryStorageUuid() { return getUuid(); }
public void rollback(FlowRollback trigger, Map data) { if (success) { DeleteVolumeOnPrimaryStorageMsg dmsg = new DeleteVolumeOnPrimaryStorageMsg(); dmsg.setUuid(msg.getPrimaryStorageUuid()); dmsg.setVolume(getSelfInventory());
public void run(final FlowTrigger trigger, Map data) { if (self.getStatus() == VolumeStatus.Ready) { DeleteVolumeOnPrimaryStorageMsg dmsg = new DeleteVolumeOnPrimaryStorageMsg(); dmsg.setVolume(getSelfInventory()); dmsg.setUuid(self.getPrimaryStorageUuid());
@Override public void success(DeleteVolumeOnPrimaryStorageReply reply) { logger.debug( String.format("successfully delete volume[uuid:%s]", msg.getVolume().getUuid())); bus.reply(msg, reply); }
@Override void handle(final DeleteVolumeOnPrimaryStorageMsg msg, final ReturnValueCompletion<DeleteVolumeOnPrimaryStorageReply> completion) { final DeleteVolumeOnPrimaryStorageReply dreply = new DeleteVolumeOnPrimaryStorageReply(); final String hostUuid = getHostUuidByResourceUuid(msg.getVolume().getUuid(), VolumeVO.class.getSimpleName()); deleteBits(msg.getVolume().getInstallPath(), hostUuid, new Completion(completion) { @Override public void success() { completion.success(dreply); } @Override public void fail(ErrorCode errorCode) { completion.fail(errorCode); } }); }
@Override public void fail(ErrorCode errorCode) { logger.debug( String.format("can't delete volume[uuid:%s] right now, add a GC job", msg.getVolume().getUuid())); SMPDeleteVolumeGC gc = new SMPDeleteVolumeGC(); gc.NAME = String.format("gc-smp-%s-volume-%s", self.getUuid(), msg.getVolume()); gc.primaryStorageUuid = self.getUuid(); gc.hypervisorType = type.toString(); gc.volume = msg.getVolume(); gc.submit(SMPPrimaryStorageGlobalConfig.GC_INTERVAL.value(Long.class), TimeUnit.SECONDS); DeleteVolumeOnPrimaryStorageReply reply = new DeleteVolumeOnPrimaryStorageReply(); bus.reply(msg, reply); } });
@Override protected void handle(final DeleteVolumeOnPrimaryStorageMsg msg) { DeleteCmd cmd = new DeleteCmd(); cmd.installPath = msg.getVolume().getInstallPath(); final DeleteVolumeOnPrimaryStorageReply reply = new DeleteVolumeOnPrimaryStorageReply(); httpCall(DELETE_PATH, cmd, DeleteRsp.class, new ReturnValueCompletion<DeleteRsp>(msg) { @Override public void fail(ErrorCode err) { reply.setError(err); bus.reply(msg, reply); } @Override public void success(DeleteRsp ret) { bus.reply(msg, reply); } }); }
@Override protected void handle(final DeleteVolumeOnPrimaryStorageMsg msg) { DeleteCmd cmd = new DeleteCmd(); cmd.installPath = msg.getVolume().getInstallPath(); final DeleteVolumeOnPrimaryStorageReply reply = new DeleteVolumeOnPrimaryStorageReply(); httpCall(DELETE_PATH, cmd, DeleteRsp.class, new ReturnValueCompletion<DeleteRsp>(msg) { @Override public void fail(ErrorCode err) { CephDeleteVolumeGC gc = new CephDeleteVolumeGC(); gc.NAME = String.format("gc-ceph-%s-volume-%s", self.getUuid(), msg.getVolume()); gc.primaryStorageUuid = self.getUuid(); gc.volume = msg.getVolume(); gc.submit(CephGlobalConfig.GC_INTERVAL.value(Long.class), TimeUnit.SECONDS); bus.reply(msg, reply); } @Override public void success(DeleteRsp ret) { bus.reply(msg, reply); } }); }
@Override protected void handle(final DeleteVolumeOnPrimaryStorageMsg msg) { SimpleQuery<LocalStorageResourceRefVO> q = dbf.createQuery(LocalStorageResourceRefVO.class); q.add(LocalStorageResourceRefVO_.resourceUuid, Op.EQ, msg.getVolume().getUuid()); q.add(LocalStorageResourceRefVO_.resourceType, Op.EQ, VolumeVO.class.getSimpleName()); if (!q.isExists()) { logger.debug(String.format("volume[uuid:%s] is not on the local storage[uuid:%s, name:%s]," + "the host the volume is on may have been deleted", msg.getVolume().getUuid(), self.getUuid(), self.getName())); chain.setName(String.format("delete-volume-%s-local-primary-storage-%s", msg.getVolume().getUuid(), self.getUuid())); chain.then(new ShareFlow() { DeleteVolumeOnPrimaryStorageReply reply;
@Override protected void handle(final DeleteVolumeOnPrimaryStorageMsg msg) { final DeleteVolumeOnPrimaryStorageReply reply = new DeleteVolumeOnPrimaryStorageReply(); final VolumeInventory vol = msg.getVolume(); final NfsPrimaryStorageBackend backend = getBackend(nfsMgr.findHypervisorTypeByImageFormatAndPrimaryStorageUuid(vol.getFormat(), self.getUuid())); backend.delete(getSelfInventory(), vol.getInstallPath(), new Completion(msg) { @Override public void success() { logger.debug(String.format("successfully delete volume[uuid:%s, installPath:%s] on nfs primary storage[uuid:%s]", vol.getUuid(), vol.getInstallPath(), self.getUuid())); bus.reply(msg, reply); } @Override public void fail(ErrorCode errorCode) { NfsDeleteVolumeGC gc = new NfsDeleteVolumeGC(); gc.NAME = String.format("gc-nfs-%s-volume-%s", self.getUuid(), vol.getUuid()); gc.primaryStorageUuid = self.getUuid(); gc.hypervisorType = backend.getHypervisorType().toString(); gc.volume = vol; gc.submit(NfsPrimaryStorageGlobalConfig.GC_INTERVAL.value(Long.class), TimeUnit.SECONDS); bus.reply(msg, reply); } }); }