public HostHAResponse(final HAConfig config) { this(); if (config == null) { this.enabled = false; this.haState = HAConfig.HAState.Disabled; return; } setProvider(config.getHaProvider()); setEnabled(config.isEnabled()); setHaState(config.getState()); }
private boolean isHAEligibleForResource(final HAResource resource) { if (resource == null || resource.getId() < 1L) { return false; } HAResource.ResourceType resourceType = null; if (resource instanceof Host) { resourceType = HAResource.ResourceType.Host; } if (resourceType == null) { return false; } final HAConfig haConfig = haConfigDao.findHAResource(resource.getId(), resourceType); return haConfig != null && haConfig.isEnabled() && haConfig.getState() != HAConfig.HAState.Disabled && haConfig.getState() != HAConfig.HAState.Ineligible; }
private void setupResponse(final List<HAConfig> hostHAConfigList) { final ListResponse<HostHAResponse> response = new ListResponse<>(); final List<HostHAResponse> hostHAResponses = new ArrayList<>(); for (final HAConfig config : hostHAConfigList) { final Host host = _resourceService.getHost(config.getResourceId()); if (host == null) { continue; } final HostHAResponse hostHAResponse = new HostHAResponse(); hostHAResponse.setId(host.getUuid()); hostHAResponse.setEnabled(config.isEnabled()); hostHAResponse.setHaState(config.getState()); hostHAResponse.setProvider(config.getHaProvider()); hostHAResponses.add(hostHAResponse); } response.setResponses(hostHAResponses); response.setResponseName(getCommandName()); setResponseObject(response); }
private HAResource validateAndFindHAResource(final HAConfig haConfig) { HAResource resource = null; if (haConfig == null) { return null; } if (haConfig.getResourceType() == HAResource.ResourceType.Host) { final Host host = hostDao.findById(haConfig.getResourceId()); if (host != null && host.getRemoved() != null) { return null; } resource = host; if (haConfig.getState() == null || (resource == null && haConfig.getState() != HAConfig.HAState.Disabled)) { disableHA(haConfig.getResourceId(), haConfig.getResourceType()); return null; } } if (!haConfig.isEnabled() || !isHAEnabledForZone(resource) || !isHAEnabledForCluster(resource)) { if (haConfig.getState() != HAConfig.HAState.Disabled) { if (transitionHAState(HAConfig.Event.Disabled, haConfig) ) { purgeHACounter(haConfig.getResourceId(), haConfig.getResourceType()); } } return null; } else if (haConfig.getState() == HAConfig.HAState.Disabled) { transitionHAState(HAConfig.Event.Enabled, haConfig); } return resource; }