@Override public void run(FlowTrigger trigger, Map data) { DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setHypervisorType(hvtype.toString()); msg.setPrimaryStorageUuid(paramIn.getPrimaryStorageUuid()); msg.setInstallPath(ctx.tempInstallPath); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, paramIn.getPrimaryStorageUuid()); bus.send(msg); trigger.next(); } });
@Override void handle(DeleteVolumeBitsOnPrimaryStorageMsg msg, final ReturnValueCompletion<DeleteVolumeBitsOnPrimaryStorageReply> completion) { deleteBits(msg.getInstallPath(), msg.isFolder(), new Completion(completion) { @Override public void success() { DeleteVolumeBitsOnPrimaryStorageReply reply = new DeleteVolumeBitsOnPrimaryStorageReply(); completion.success(reply); } @Override public void fail(ErrorCode errorCode) { completion.fail(errorCode); } }); }
@Override void handle(DeleteVolumeBitsOnPrimaryStorageMsg msg, final ReturnValueCompletion<DeleteVolumeBitsOnPrimaryStorageReply> completion) { String hostUuid = getHostUuidByResourceUuid(msg.getBitsUuid(), msg.getBitsType()); deleteBits(msg.getInstallPath(), hostUuid, true, new Completion(completion) { @Override public void success() { DeleteVolumeBitsOnPrimaryStorageReply reply = new DeleteVolumeBitsOnPrimaryStorageReply(); completion.success(reply); } @Override public void fail(ErrorCode errorCode) { completion.fail(errorCode); } }); }
@Override public void run(FlowTrigger trigger, Map data) { DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setPrimaryStorageUuid(self.getUuid()); msg.setInstallPath(spec.getInstallPath()); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, self.getUuid()); bus.send(msg, new CloudBusCallBack(trigger) { @Override public void run(MessageReply reply) { if (reply.isSuccess()) { logger.info(String.format("Deleted volume %s in Trash.", spec.getInstallPath())); } else { logger.warn(String.format("Failed to delete volume %s in Trash.", spec.getInstallPath())); } trigger.next(); } }); } });
DeleteVolumeBitsOnPrimaryStorageMsg delMsg = new DeleteVolumeBitsOnPrimaryStorageMsg(); delMsg.setInstallPath(primaryStorageInstallPath); delMsg.setBitsUuid(volume.getUuid()); delMsg.setBitsType(VolumeVO.class.getSimpleName()); delMsg.setPrimaryStorageUuid(primaryStorageUuid); delMsg.setHypervisorType(VolumeFormat.getMasterHypervisorTypeByVolumeFormat(volume.getFormat()).toString()); bus.makeTargetServiceIdByResourceUuid(delMsg, PrimaryStorageConstant.SERVICE_ID, primaryStorageUuid); bus.send(delMsg, new CloudBusCallBack(completion) {
@Override protected void handle(final DeleteVolumeBitsOnPrimaryStorageMsg msg) { final DeleteVolumeBitsOnPrimaryStorageReply reply = new DeleteVolumeBitsOnPrimaryStorageReply(); NfsPrimaryStorageBackend bkd = getBackend(HypervisorType.valueOf(msg.getHypervisorType())); if (msg.isFolder()) { bkd.deleteFolder(getSelfInventory(), msg.getInstallPath(), new Completion(msg) { @Override public void success() { bus.reply(msg, reply); } @Override public void fail(ErrorCode errorCode) { reply.setError(errorCode); bus.reply(msg, reply); } }); } else { bkd.delete(getSelfInventory(), msg.getInstallPath(), new Completion(msg) { @Override public void success() { bus.reply(msg, reply); } @Override public void fail(ErrorCode errorCode) { reply.setError(errorCode); bus.reply(msg, reply); } }); } }
@Override protected void handle(final DeleteVolumeBitsOnPrimaryStorageMsg msg) { DeleteCmd cmd = new DeleteCmd(); cmd.installPath = msg.getInstallPath(); final DeleteVolumeBitsOnPrimaryStorageReply reply = new DeleteVolumeBitsOnPrimaryStorageReply(); 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 DeleteVolumeBitsOnPrimaryStorageMsg msg) { HypervisorFactory f = getHypervisorFactoryByHypervisorType(msg.getHypervisorType()); HypervisorBackend bkd = f.getHypervisorBackend(self); bkd.handle(msg, new ReturnValueCompletion<DeleteVolumeBitsOnPrimaryStorageReply>(msg) { @Override public void success(DeleteVolumeBitsOnPrimaryStorageReply reply) { bus.reply(msg, reply); } @Override public void fail(ErrorCode errorCode) { DeleteVolumeBitsOnPrimaryStorageReply reply = new DeleteVolumeBitsOnPrimaryStorageReply(); reply.setError(errorCode); bus.reply(msg, reply); } }); }
@Override protected void triggerNow(GCCompletion completion) { if (!dbf.isExist(primaryStorageUuid, PrimaryStorageVO.class)) { completion.cancel(); return; } DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setPrimaryStorageUuid(primaryStorageUuid); msg.setInstallPath(volume.getInstallPath()); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, primaryStorageUuid); bus.send(msg, new CloudBusCallBack(completion) { @Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); return; } completion.success(); } }); } }
@Override protected void handle(final DeleteVolumeBitsOnPrimaryStorageMsg msg) { DeleteCmd cmd = new DeleteCmd(); cmd.installPath = msg.getInstallPath(); final DeleteVolumeBitsOnPrimaryStorageReply reply = new DeleteVolumeBitsOnPrimaryStorageReply(); 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 public void run(FlowTrigger trigger, Map data) { DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setInstallPath(ctx.temporaryInstallPath); msg.setPrimaryStorageUuid(paramIn.getPrimaryStorageUuid()); msg.setHypervisorType(hvType.toString()); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, paramIn.getPrimaryStorageUuid()); bus.send(msg); trigger.next(); } });
@Override public void run() { List<ImageCacheVO> staleCache = getStaleCache(); if (staleCache == null || staleCache.isEmpty()) { return; } for (final ImageCacheVO c : staleCache) { DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setInstallPath(c.getInstallUrl().split("@")[0]); msg.setPrimaryStorageUuid(c.getPrimaryStorageUuid()); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, c.getPrimaryStorageUuid()); bus.send(msg, new CloudBusCallBack(null) { @Override public void run(MessageReply reply) { if (reply.isSuccess()) { logger.debug(String.format("successfully cleanup a stale image cache[path:%s, primary storage uuid:%s]", c.getInstallUrl(), c.getPrimaryStorageUuid())); dbf.remove(c); } else { logger.warn(String.format("failed to cleanup a stale image cache[path:%s, primary storage uuid:%s], %s", c.getInstallUrl(), c.getPrimaryStorageUuid(), reply.getError())); } } }); } }
@Override public void rollback(FlowRollback trigger, Map data) { if (ctx.temporaryInstallPath != null) { DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setHypervisorType(hvType.toString()); msg.setPrimaryStorageUuid(paramIn.getPrimaryStorageUuid()); msg.setInstallPath(ctx.temporaryInstallPath); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, paramIn.getPrimaryStorageUuid()); bus.send(msg); } trigger.rollback(); } });
@Override public void rollback(FlowRollback trigger, Map data) { if (ctx.tempInstallPath != null) { DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setPrimaryStorageUuid(paramIn.getPrimaryStorageUuid()); msg.setInstallPath(ctx.tempInstallPath); msg.setHypervisorType(hvtype.toString()); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, paramIn.getPrimaryStorageUuid()); bus.send(msg); } trigger.rollback(); } });
@Override public void run(FlowTrigger trigger, Map data) { DeleteVolumeBitsOnPrimaryStorageMsg dmsg = new DeleteVolumeBitsOnPrimaryStorageMsg(); dmsg.setFolder(true); dmsg.setHypervisorType(bkd.getHypervisorType().toString()); dmsg.setInstallPath(new File(msg.getInstallPath()).getParent()); dmsg.setPrimaryStorageUuid(msg.getPrimaryStorageUuid()); bus.makeTargetServiceIdByResourceUuid(dmsg, PrimaryStorageConstant.SERVICE_ID, msg.getPrimaryStorageUuid()); bus.send(dmsg, new CloudBusCallBack(trigger) { @Override public void run(MessageReply reply) { if (reply.isSuccess()) { trigger.next(); } else { trigger.fail(reply.getError()); } } }); } }).done(new FlowDoneHandler(msg) {
@Override protected void triggerNow(GCCompletion completion) { if (!dbf.isExist(primaryStorageUuid, PrimaryStorageVO.class)) { completion.cancel(); return; } DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setInstallPath(volume.getInstallPath()); msg.setPrimaryStorageUuid(primaryStorageUuid); msg.setHypervisorType(hypervisorType); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, primaryStorageUuid); bus.send(msg, new CloudBusCallBack(completion) { @Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); } else { completion.success(); } } }); } }
@Override protected void triggerNow(GCCompletion completion) { if (!dbf.isExist(primaryStorageUuid, PrimaryStorageVO.class)) { completion.cancel(); return; } DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setInstallPath(volume.getInstallPath()); msg.setPrimaryStorageUuid(primaryStorageUuid); msg.setHypervisorType(hypervisorType); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, primaryStorageUuid); bus.send(msg, new CloudBusCallBack(completion) { @Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); } else { completion.success(); } } }); } }
@Override protected void triggerNow(GCCompletion completion) { if (!dbf.isExist(primaryStorageUuid, PrimaryStorageVO.class)) { completion.cancel(); return; } DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setInstallPath(snapshot.getPrimaryStorageInstallPath()); msg.setPrimaryStorageUuid(primaryStorageUuid); msg.setHypervisorType(hypervisorType); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, primaryStorageUuid); bus.send(msg, new CloudBusCallBack(completion) { @Override public void run(MessageReply reply) { if (!reply.isSuccess()) { completion.fail(reply.getError()); } else { completion.success(); } } }); } }
@Override public void run(FlowTrigger trigger, Map data) { String hostUuid = getAvailableHostUuidForOperation(); if (hostUuid == null) { trigger.next(); return; } HostVO hvo = dbf.findByUuid(hostUuid, HostVO.class); DeleteVolumeBitsOnPrimaryStorageMsg dmsg = new DeleteVolumeBitsOnPrimaryStorageMsg(); dmsg.setFolder(true); dmsg.setHypervisorType(hvo.getHypervisorType()); dmsg.setInstallPath(new File(msg.getInstallPath()).getParent()); dmsg.setPrimaryStorageUuid(msg.getPrimaryStorageUuid()); bus.makeTargetServiceIdByResourceUuid(dmsg, PrimaryStorageConstant.SERVICE_ID, msg.getPrimaryStorageUuid()); bus.send(dmsg, new CloudBusCallBack(trigger) { @Override public void run(MessageReply reply) { if (reply.isSuccess()) { trigger.next(); } else { trigger.fail(reply.getError()); } } }); } }).done(new FlowDoneHandler(msg) {
return; DeleteVolumeBitsOnPrimaryStorageMsg msg = new DeleteVolumeBitsOnPrimaryStorageMsg(); msg.setPrimaryStorageUuid(self.getUuid()); msg.setInstallPath(spec.getInstallPath()); msg.setHypervisorType(spec.getHypervisorType()); msg.setFolder(spec.isFolder()); bus.makeTargetServiceIdByResourceUuid(msg, PrimaryStorageConstant.SERVICE_ID, self.getUuid()); bus.send(msg, new CloudBusCallBack(msg) {