@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 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.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 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) {
@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(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(); } }); } });
@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 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 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 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(); } } }); } }
msg.setPrimaryStorageUuid(self.getUuid()); msg.setInstallPath(spec.getInstallPath()); msg.setHypervisorType(spec.getHypervisorType());
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);
msg.setPrimaryStorageUuid(self.getUuid()); msg.setInstallPath(spec.getInstallPath()); msg.setHypervisorType(spec.getHypervisorType());