private boolean validateDuplicateElasticAgentIds() { HashMap<String, String> elasticAgentIdToUUIDMap = new HashMap<>(); for (AgentConfig agentConfig : this) { if (!agentConfig.isElastic()) { continue; } if (elasticAgentIdToUUIDMap.containsKey(agentConfig.getElasticAgentId())) { AgentConfig duplicatedAgentConfig = this.getAgentByUuid(elasticAgentIdToUUIDMap.get(agentConfig.getElasticAgentId())); String error = String.format("Duplicate ElasticAgentId found for agents [%s, %s]", duplicatedAgentConfig.getUuid(), agentConfig.getUuid()); agentConfig.addError(elasticAgentId, error); duplicatedAgentConfig.addError("elasticAgentId", error); return false; } elasticAgentIdToUUIDMap.put(agentConfig.getElasticAgentId(), agentConfig.getUuid()); } return true; }
public static AgentRuntimeInfo initialState(AgentConfig agentConfig) { AgentRuntimeInfo agentRuntimeInfo = new AgentRuntimeInfo(agentConfig.getAgentIdentifier(), AgentStatus.fromRuntime(AgentRuntimeStatus.Missing).getRuntimeStatus(), "", null, false); if (agentConfig.isElastic()) { agentRuntimeInfo = ElasticAgentRuntimeInfo.fromServer(agentRuntimeInfo, agentConfig.getElasticAgentId(), agentConfig.getElasticPluginId()); } return agentRuntimeInfo; }
public void syncConfig(AgentConfig agentConfig) { this.agentConfig = agentConfig; if (agentConfig.isElastic()) { agentRuntimeInfo = ElasticAgentRuntimeInfo.fromServer(agentRuntimeInfo, agentConfig.getElasticAgentId(), agentConfig.getElasticPluginId()); } if (agentRuntimeInfo.getRuntimeStatus() == AgentRuntimeStatus.Unknown) { agentRuntimeInfo.idle(); } updateConfigStatus(agentConfig.isDisabled() ? AgentConfigStatus.Disabled : AgentConfigStatus.Enabled); }
private void addElasticAgentInfo(JobInstance jobInstance, Map data) { if (!jobInstance.currentStatus().isActive()) { return; } final JobAgentMetadata jobAgentMetadata = jobAgentMetadataDao.load(jobInstance.getId()); if (jobAgentMetadata == null) { return; } final String pluginId = jobAgentMetadata.elasticProfile().getPluginId(); final ElasticAgentPluginInfo pluginInfo = elasticAgentMetadataStore.getPluginInfo(pluginId); if (pluginInfo != null && pluginInfo.getCapabilities().supportsAgentStatusReport()) { final AgentConfig agentConfig = goConfigService.agentByUuid(jobInstance.getAgentUuid()); if (agentConfig != null && agentConfig.isElastic()) { data.put("elasticAgentPluginId", agentConfig.getElasticPluginId()); data.put("elasticAgentId", agentConfig.getElasticAgentId()); return; } data.put("elasticAgentPluginId", pluginId); } }