HealthcheckInstance.class, healthInstance.getId()); List<? extends Host> availableActiveHosts = allocatorDao.getActiveHosts(healthInstance.getAccountId());
protected String determineNewHealthState(HealthcheckInstance hcInstance, HealthcheckInstanceHostMap hcihm, String healthState) { List<HealthcheckInstanceHostMap> others = objectManager.find(HealthcheckInstanceHostMap.class, HEALTHCHECK_INSTANCE_HOST_MAP.HEALTHCHECK_INSTANCE_ID, hcInstance.getId(), HEALTHCHECK_INSTANCE_HOST_MAP.STATE, CommonStatesConstants.ACTIVE);
@Override public void healthCheckReconcile(final HealthcheckInstanceHostMap hcihm, final String healthState) { final HealthcheckInstance hcInstance = objectManager.loadResource(HealthcheckInstance.class, hcihm.getHealthcheckInstanceId()); lockManager.lock(new HealthcheckInstanceLock(hcInstance.getId()), new LockCallbackNoReturn() { @Override public void doWithLockNoResult() { processHealthcheckInstance(hcihm, healthState); } }); }
protected void createHealthCheckHostMaps(HealthcheckInstanceType instanceType, long id, Long accountId, HealthcheckInstance healthInstance) { Long inferiorHostId = getInstanceHostId(instanceType, id); List<Long> healthCheckHostIds = getHealthCheckHostIds(healthInstance, inferiorHostId); List<HealthcheckInstanceHostMap> healthHostMaps = objectManager.find(HealthcheckInstanceHostMap.class, HEALTHCHECK_INSTANCE_HOST_MAP.HEALTHCHECK_INSTANCE_ID, healthInstance.getId(), HEALTHCHECK_INSTANCE_HOST_MAP.REMOVED, null); for (Long healthCheckHostId : healthCheckHostIds) { HealthcheckInstanceHostMap healthHostMap = null; for(HealthcheckInstanceHostMap hostMap : healthHostMaps) { if(!hostMap.getHostId().equals(healthCheckHostId)) { continue; } if (healthHostMap == null) { healthHostMap = hostMap; } else if (!hostMap.getState().equals(CommonStatesConstants.REMOVING)) { objectProcessManager.scheduleStandardProcess(StandardProcess.REMOVE, hostMap, null); } } Long instanceId = (instanceType == HealthcheckInstanceType.INSTANCE ? id : null); if (healthHostMap == null) { resourceDao.createAndSchedule(HealthcheckInstanceHostMap.class, HEALTHCHECK_INSTANCE_HOST_MAP.HOST_ID, healthCheckHostId, HEALTHCHECK_INSTANCE_HOST_MAP.HEALTHCHECK_INSTANCE_ID, healthInstance.getId(), HEALTHCHECK_INSTANCE_HOST_MAP.ACCOUNT_ID, accountId, HEALTHCHECK_INSTANCE_HOST_MAP.INSTANCE_ID, instanceId); } } }
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Instance instance = (Instance) state.getResource(); HealthcheckInstance hi = objectManager.findAny(HealthcheckInstance.class, HEALTHCHECK_INSTANCE.INSTANCE_ID, instance.getId(), HEALTHCHECK_INSTANCE.REMOVED, null); if (hi == null) { return null; } List<? extends HealthcheckInstanceHostMap> hostMaps = objectManager.find(HealthcheckInstanceHostMap.class, HEALTHCHECK_INSTANCE_HOST_MAP.HEALTHCHECK_INSTANCE_ID, hi.getId(), HEALTHCHECK_INSTANCE_HOST_MAP.REMOVED, null); for (HealthcheckInstanceHostMap hostMap : hostMaps) { objectProcessManager.scheduleStandardProcess(StandardProcess.REMOVE, hostMap, null); } objectProcessManager.scheduleStandardProcess(StandardProcess.REMOVE, hi, null); return null; }
event.setHealthcheckInstanceId(healthcheckInstance.getId()); event.setHostId(healthcheckInstanceHostMap.getHostId());
/** * {@inheritDoc} */ @Override public void from(io.cattle.platform.core.model.HealthcheckInstance from) { setId(from.getId()); setName(from.getName()); setAccountId(from.getAccountId()); setKind(from.getKind()); setUuid(from.getUuid()); setDescription(from.getDescription()); setState(from.getState()); setCreated(from.getCreated()); setRemoved(from.getRemoved()); setRemoveTime(from.getRemoveTime()); setData(from.getData()); setInstanceId(from.getInstanceId()); }