public void processResult(boolean result, Throwable e) { final HAConfig haConfig = getHaConfig(); final HAResourceCounter counter = haManager.getHACounter(haConfig.getResourceId(), haConfig.getResourceType()); if (result) { haManager.transitionHAState(HAConfig.Event.HealthCheckPassed, haConfig); if (haConfig.getState() == HAConfig.HAState.Fenced) { haManager.disableHA(haConfig.getResourceId(), haConfig.getResourceType()); } counter.resetSuspectTimestamp(); counter.resetActivityCounter(); counter.resetRecoveryCounter(); } else { haManager.transitionHAState(HAConfig.Event.HealthCheckFailed, haConfig); counter.markResourceSuspected(); } } }
@Override public boolean isVmAlive(com.cloud.vm.VirtualMachine vm, Host host) throws UnknownVM { if (haManager.isHAEligible(host)) { return haManager.isVMAliveOnHost(host); } Status status = isAgentAlive(host); s_logger.debug("HA: HOST is ineligible legacy state " + status + " for host " + host.getId()); if (status == null) { throw new UnknownVM(); } if (status == Status.Up) { return true; } else { throw new UnknownVM(); } }
public synchronized void processResult(boolean result, Throwable t) { final HAConfig haConfig = getHaConfig(); final HAResourceCounter counter = haManager.getHACounter(haConfig.getResourceId(), haConfig.getResourceType()); if (t != null && t instanceof HACheckerException) { haManager.transitionHAState(HAConfig.Event.Ineligible, getHaConfig()); counter.resetActivityCounter(); return; } counter.incrActivityCounter(!result); if (counter.getActivityCheckCounter() < maxActivityChecks) { haManager.transitionHAState(HAConfig.Event.TooFewActivityCheckSamples, haConfig); return; } if (counter.hasActivityThresholdExceeded(activityCheckFailureRatio)) { haManager.transitionHAState(HAConfig.Event.ActivityCheckFailureOverThresholdRatio, haConfig); } else { if (haManager.transitionHAState(HAConfig.Event.ActivityCheckFailureUnderThresholdRatio, haConfig)) { counter.markResourceDegraded(); } } counter.resetActivityCounter(); } }
if (haManager.isHAEligible(agent)) { return haManager.getHostStatus(agent);
public void processResult(boolean result, Throwable e) { final HAConfig haConfig = getHaConfig(); final HAResourceCounter counter = haManager.getHACounter(haConfig.getResourceId(), haConfig.getResourceType()); counter.incrRecoveryCounter(); counter.resetActivityCounter(); if (result) { haManager.transitionHAState(HAConfig.Event.Recovered, haConfig); getHaProvider().fenceSubResources(getResource()); } getHaProvider().sendAlert(getResource(), HAConfig.HAState.Recovering); } }
public void processResult(boolean result, Throwable e) { final HAConfig haConfig = getHaConfig(); final HAResourceCounter counter = haManager.getHACounter(haConfig.getResourceId(), haConfig.getResourceType()); if (result) { counter.resetRecoveryCounter(); haManager.transitionHAState(HAConfig.Event.Fenced, haConfig); getHaProvider().fenceSubResources(getResource()); getHaProvider().enableMaintenance(getResource()); } getHaProvider().sendAlert(getResource(), HAConfig.HAState.Fencing); } }