public AgentIdentifier getAgentIdentifier() { return new AgentIdentifier(this.getHostname(), getIpAddress(), getUuid()); }
public void disable() { disable(Boolean.TRUE); }
public static AgentInstance createFromConfig(AgentConfig agentInConfig, SystemEnvironment systemEnvironment, AgentStatusChangeListener agentStatusChangeListener) { AgentType type = agentInConfig.isFromLocalHost() ? AgentType.LOCAL : AgentType.REMOTE; AgentInstance result = new AgentInstance(agentInConfig, type, systemEnvironment, agentStatusChangeListener); result.agentConfigStatus = agentInConfig.isDisabled() ? AgentConfigStatus.Disabled : AgentConfigStatus.Enabled; result.errors.addAll(agentInConfig.errors()); for (ResourceConfig resourceConfig : agentInConfig.getResourceConfigs()) { result.errors.addAll(resourceConfig.errors()); } return result; }
public static Agent fromConfig(AgentConfig config) { return new Agent(config.getUuid(), "None", config.getHostNameForDisplay(), config.getIpAddress()); }
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; }
@Test public void shouldDenyAgentWhenAgentIsDeniedInConfigFile() throws Exception { AgentInstance original = AgentInstance.createFromConfig(agentConfig, systemEnvironment, mock(AgentStatusChangeListener.class)); original.update(buildingRuntimeInfo()); AgentConfig newAgentConfig = new AgentConfig(agentConfig.getUuid(), agentConfig.getHostname(), agentConfig.getIpAddress()); newAgentConfig.disable(); original.syncConfig(newAgentConfig); assertThat(original.getStatus(), is(AgentStatus.Disabled)); }
public static AgentInstance updateHostname(AgentInstance agentInstance, String hostname) { AgentConfig original = agentInstance.agentConfig(); agentInstance.syncConfig(new AgentConfig(original.getUuid(), hostname, original.getIpAddress(), original.getResourceConfigs())); return agentInstance; }
private List<String> getPendingAgentUuids(List<AgentConfig> pendingAgents) { List<String> pendingAgentUuids = new ArrayList<>(); for (AgentConfig pendingAgent : pendingAgents) { pendingAgentUuids.add(pendingAgent.getUuid()); } return pendingAgentUuids; }
@Test public void shouldNotAllowResourcesElasticAgents() throws Exception { BasicCruiseConfig cruiseConfig = GoConfigMother.configWithPipelines("dev", "qa"); AgentConfig agentConfig = new AgentConfig("uuid", "hostname", "10.10.10.10"); cruiseConfig.agents().add(agentConfig); agentConfig.setElasticPluginId("com.example.foo"); agentConfig.setElasticAgentId("foobar"); agentConfig.addResourceConfig(new ResourceConfig("foo")); assertThat(cruiseConfig.validateAfterPreprocess().isEmpty(), is(false)); assertEquals(1, agentConfig.errors().size()); assertThat(agentConfig.errors().on("elasticAgentId"), is("Elastic agents cannot have resources.")); }
@Test public void shouldFailValidationWhenUUidIsBlank() { AgentConfig agentConfig = new AgentConfig(""); agentConfig.validate(ConfigSaveValidationContext.forChain(agentConfig)); assertThat(agentConfig.errors().on(AgentConfig.UUID), is("UUID cannot be empty")); agentConfig = new AgentConfig(null); agentConfig.validate(ConfigSaveValidationContext.forChain(agentConfig)); assertThat(agentConfig.errors().on(AgentConfig.UUID), is("UUID cannot be empty")); }
public static AgentConfig elasticAgent() { AgentConfig agentConfig = new AgentConfig(UUID.randomUUID().toString(), UUID.randomUUID().toString(), "127.0.0.1"); agentConfig.setElasticAgentId(UUID.randomUUID().toString()); agentConfig.setElasticPluginId(UUID.randomUUID().toString()); return agentConfig; }
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); }
@Test public void shouldNotBeEqualIfUuidIsNotEqual() throws Exception { AgentInstance agentA = new AgentInstance(new AgentConfig("UUID", "A", "127.0.0.1"), LOCAL, systemEnvironment, null); AgentInstance copyOfAgentA = new AgentInstance(new AgentConfig("UUID", "A", "127.0.0.1"), LOCAL, systemEnvironment, null); AgentInstance agentB = new AgentInstance(new AgentConfig("UUID", "B", "127.0.0.2"), LOCAL, systemEnvironment, null); assertThat(agentA, is(not(agentB))); assertThat(agentB, is(not(agentA))); assertThat(agentA, is(copyOfAgentA)); }
private void shouldBeValid(String ipAddress) throws Exception { AgentConfig agentConfig = new AgentConfig(); agentConfig.setIpAddress(ipAddress); agentConfig.validate(ConfigSaveValidationContext.forChain(agentConfig)); assertThat(agentConfig.errors().on(AgentConfig.IP_ADDRESS), is(nullValue())); } }
for (AgentConfig agentConfig : agents) { if (state.isFalse()) { agentConfig.disable(); agentConfig.enable(); agentConfig.addResourceConfig(new ResourceConfig(r)); agentConfig.removeResource(new ResourceConfig(r)); EnvironmentConfig environmentConfig = modifiedConfig.getEnvironments().find(new CaseInsensitiveString(environment)); if (environmentConfig != null) { environmentConfig.addAgentIfNew(agentConfig.getUuid()); EnvironmentConfig environmentConfig = modifiedConfig.getEnvironments().find(new CaseInsensitiveString(environment)); if (environmentConfig != null) { environmentConfig.removeAgent(agentConfig.getUuid());
public void saveOrUpdateAgent(AgentInstance agentInstance, Username currentUser) { AgentConfig agentConfig = agentInstance.agentConfig(); if (goConfigService.hasAgent(agentConfig.getUuid())) { this.updateAgentApprovalStatus(agentConfig.getUuid(), agentConfig.isDisabled(), currentUser); } else { this.addAgent(agentConfig, currentUser); } }
private void syncIp(AgentRuntimeInfo info) { String ipAddress = (agentType == AgentType.LOCAL || agentType == AgentType.REMOTE) ? info.getIpAdress() : agentConfig.getIpAddress(); this.agentConfig.setIpAddress(ipAddress); }
public static AgentConfig deniedAgent() { AgentConfig agentConfig = new AgentConfig("uuid", "deniedAgent", "192.168.0.1"); agentConfig.disable(); return agentConfig; }
public String getHostname() { return agentConfig().getHostname(); }
@Test public void shouldValidateTree() { ResourceConfig resourceConfig = new ResourceConfig("junk%"); AgentConfig agentConfig = new AgentConfig("uuid", "junk", "junk", new ResourceConfigs(resourceConfig)); boolean isValid = agentConfig.validateTree(ConfigSaveValidationContext.forChain(agentConfig)); assertThat(agentConfig.errors().on(AgentConfig.IP_ADDRESS), is("'junk' is an invalid IP address.")); assertThat(resourceConfig.errors().on(JobConfig.RESOURCES), contains("Resource name 'junk%' is not valid.")); assertThat(isValid, is(false)); }