Search in sources :

Example 36 with AgentInstance

use of com.thoughtworks.go.domain.AgentInstance in project gocd by gocd.

the class AgentServiceIntegrationTest method shouldRegisterLocalAgentWithNonLoopbackIpAddress.

@Test
public void shouldRegisterLocalAgentWithNonLoopbackIpAddress() throws Exception {
    String nonLoopbackIp = SystemUtil.getFirstLocalNonLoopbackIpAddress();
    InetAddress inetAddress = InetAddress.getByName(nonLoopbackIp);
    assertThat(SystemUtil.isLocalIpAddress(nonLoopbackIp), is(true));
    AgentConfig agentConfig = new AgentConfig("uuid", inetAddress.getHostName(), nonLoopbackIp);
    AgentRuntimeInfo agentRuntimeInfo = AgentRuntimeInfo.fromServer(agentConfig, false, "/var/lib", 0L, "linux", false);
    agentService.requestRegistration(new Username("bob"), agentRuntimeInfo);
    AgentInstance agentInstance = agentService.findRegisteredAgents().findAgentAndRefreshStatus("uuid");
    assertThat(agentInstance.agentConfig().getIpAddress(), is(nonLoopbackIp));
    assertThat(agentInstance.getStatus(), is(AgentStatus.Idle));
}
Also used : AgentInstance(com.thoughtworks.go.domain.AgentInstance) Username(com.thoughtworks.go.server.domain.Username) InetAddress(java.net.InetAddress) Test(org.junit.Test)

Example 37 with AgentInstance

use of com.thoughtworks.go.domain.AgentInstance in project gocd by gocd.

the class JobAssignmentTest method setupRemoteAgent.

private AgentInstance setupRemoteAgent() {
    AgentConfig agentConfig = AgentMother.remoteAgent();
    configHelper.addAgent(agentConfig);
    AgentInstance instance = AgentInstance.createFromConfig(agentConfig, systemEnvironment, agentStatusChangeListener());
    instance.enable();
    return instance;
}
Also used : AgentInstance(com.thoughtworks.go.domain.AgentInstance) AgentConfig(com.thoughtworks.go.config.AgentConfig)

Example 38 with AgentInstance

use of com.thoughtworks.go.domain.AgentInstance in project gocd by gocd.

the class JobAssignmentTest method shouldAssignJobToLocalAgentEvenReachedLimit.

@Test
public void shouldAssignJobToLocalAgentEvenReachedLimit() throws UnknownHostException {
    AgentInstance local = setupLocalAgent();
    AgentInstance remote = setupRemoteAgent();
    fixture.createPipelineWithFirstStageScheduled();
    assignmentService.onTimer();
    assignmentService.assignWorkToAgent(remote);
    Work work = assignmentService.assignWorkToAgent(local);
    assertThat(work, instanceOf(BuildWork.class));
}
Also used : AgentInstance(com.thoughtworks.go.domain.AgentInstance) Work(com.thoughtworks.go.remote.work.Work) BuildWork(com.thoughtworks.go.remote.work.BuildWork) NoWork(com.thoughtworks.go.remote.work.NoWork) BuildWork(com.thoughtworks.go.remote.work.BuildWork) Test(org.junit.Test)

Example 39 with AgentInstance

use of com.thoughtworks.go.domain.AgentInstance in project gocd by gocd.

the class JobAssignmentTest method shouldNotAssignJobToRemoteAgentIfReachedLimit.

@Test
public void shouldNotAssignJobToRemoteAgentIfReachedLimit() throws UnknownHostException {
    AgentInstance local = setupLocalAgent();
    AgentInstance remote = setupRemoteAgent();
    AgentInstance remote2 = setupRemoteAgent();
    fixture.createPipelineWithFirstStageScheduled();
    assignmentService.onConfigChange(null);
    assignmentService.assignWorkToAgent(local);
    assignmentService.assignWorkToAgent(remote);
    Work work = assignmentService.assignWorkToAgent(remote2);
    assertThat(work, instanceOf(NoWork.class));
}
Also used : AgentInstance(com.thoughtworks.go.domain.AgentInstance) Work(com.thoughtworks.go.remote.work.Work) BuildWork(com.thoughtworks.go.remote.work.BuildWork) NoWork(com.thoughtworks.go.remote.work.NoWork) NoWork(com.thoughtworks.go.remote.work.NoWork) Test(org.junit.Test)

Example 40 with AgentInstance

use of com.thoughtworks.go.domain.AgentInstance in project gocd by gocd.

the class AgentServiceIntegrationTest method shouldSendLostContactEmailWhenAgentStateIsLostContact_FEATURE_HIDDEN.

@Test
public void shouldSendLostContactEmailWhenAgentStateIsLostContact_FEATURE_HIDDEN() throws Exception {
    new SystemEnvironment().setProperty("agent.connection.timeout", "-1");
    CONFIG_HELPER.addMailHost(new MailHost("ghost.name", 25, "loser", "boozer", true, false, "go@foo.mail.com", "admin@foo.mail.com"));
    Date date = new Date(70, 1, 1, 1, 1, 1);
    AgentInstance instance = AgentInstanceMother.idle(date, "CCeDev01");
    ((AgentRuntimeInfo) ReflectionUtil.getField(instance, "agentRuntimeInfo")).setOperatingSystem("Minix");
    EmailSender mailSender = mock(EmailSender.class);
    AgentService agentService = new AgentService(agentConfigService, new SystemEnvironment(), environmentConfigService, securityService, agentDao, new UuidGenerator(), serverHealthService, mailSender, agentStatusChangeNotifier());
    AgentInstances agentInstances = (AgentInstances) ReflectionUtil.getField(agentService, "agentInstances");
    agentInstances.add(instance);
    AgentInstances agents = agentService.findRegisteredAgents();
    assertThat(agents.size(), is(1));
    AgentInstance agentInstance = agents.findAgentAndRefreshStatus(instance.agentConfig().getUuid());
    assertThat(agentInstance.getStatus(), is(AgentStatus.LostContact));
    String body = String.format("The email has been sent out automatically by the Go server at (%s) to Go administrators.\n" + "\n" + "The Go server has lost contact with agent:\n" + "\n" + "Agent name: CCeDev01\n" + "Free Space: 10.0 KB\n" + "Sandbox: /var/lib/foo\n" + "IP Address: 10.18.5.1\n" + "OS: Minix\n" + "Resources: \n" + "Environments: \n" + "\n" + "Lost contact at: %s", SystemUtil.getFirstLocalNonLoopbackIpAddress(), date);
    // verify(mailSender).sendEmail(new SendEmailMessage("[Lost Contact] Go agent host: " + instance.getHostname(), body, "admin@foo.mail.com"));
    verify(mailSender, never()).sendEmail(new SendEmailMessage("[Lost Contact] Go agent host: " + instance.getHostname(), body, "admin@foo.mail.com"));
}
Also used : AgentInstance(com.thoughtworks.go.domain.AgentInstance) AgentInstances(com.thoughtworks.go.server.domain.AgentInstances) UuidGenerator(com.thoughtworks.go.server.util.UuidGenerator) SendEmailMessage(com.thoughtworks.go.server.messaging.SendEmailMessage) Test(org.junit.Test)

Aggregations

AgentInstance (com.thoughtworks.go.domain.AgentInstance)95 Test (org.junit.Test)68 SystemEnvironment (com.thoughtworks.go.util.SystemEnvironment)27 ArrayList (java.util.ArrayList)21 AgentConfig (com.thoughtworks.go.config.AgentConfig)20 HttpLocalizedOperationResult (com.thoughtworks.go.server.service.result.HttpLocalizedOperationResult)17 NullAgentInstance (com.thoughtworks.go.domain.NullAgentInstance)9 AgentStatusChangeListener (com.thoughtworks.go.listener.AgentStatusChangeListener)9 AgentInstances (com.thoughtworks.go.server.domain.AgentInstances)7 AgentRuntimeInfo (com.thoughtworks.go.server.service.AgentRuntimeInfo)7 Username (com.thoughtworks.go.server.domain.Username)6 AgentIdentifier (com.thoughtworks.go.remote.AgentIdentifier)5 ResponseEntity (org.springframework.http.ResponseEntity)4 GoConfigDao (com.thoughtworks.go.config.GoConfigDao)3 ResourceConfig (com.thoughtworks.go.config.ResourceConfig)3 BuildWork (com.thoughtworks.go.remote.work.BuildWork)3 NoWork (com.thoughtworks.go.remote.work.NoWork)3 Work (com.thoughtworks.go.remote.work.Work)3 HttpOperationResult (com.thoughtworks.go.server.service.result.HttpOperationResult)3 AgentViewModel (com.thoughtworks.go.server.ui.AgentViewModel)3