use of com.hubspot.mesos.json.MesosMasterStateObject in project Singularity by HubSpot.
the class SingularityMachineStatesTest method getMasterState.
private MesosMasterStateObject getMasterState(int numSlaves) {
long now = System.currentTimeMillis();
Map<String, Object> resources = new HashMap<>();
resources.put("cpus", 10);
resources.put("mem", 2000);
Map<String, String> attributes = new HashMap<>();
attributes.put("testKey", "testValue");
List<MesosMasterSlaveObject> slaves = new ArrayList<>();
for (Integer i = 0; i < numSlaves; i++) {
slaves.add(new MesosMasterSlaveObject(i.toString(), i.toString(), String.format("localhost:505%s", i), now, new MesosResourcesObject(resources), attributes, new MesosResourcesObject(resources), new MesosResourcesObject(resources), new MesosResourcesObject(resources), new MesosResourcesObject(resources), "", true));
}
MesosFrameworkObject framework = new MesosFrameworkObject("", "", "", "", "", "", "", now, now, now, true, true, new MesosResourcesObject(resources), new MesosResourcesObject(resources), new MesosResourcesObject(resources), Collections.emptyList());
return new MesosMasterStateObject("", "", "", "", now, "", now, now, "", "", "", 0, 0, "", "", "", Collections.emptyMap(), slaves, Collections.singletonList(framework));
}
use of com.hubspot.mesos.json.MesosMasterStateObject in project Singularity by HubSpot.
the class SingularityMachinesTest method testReconcileSlavesOnStartup.
@Test
public void testReconcileSlavesOnStartup() {
// Load 3 agents on startup
MesosMasterStateObject state = getMasterState(3);
singularityAgentAndRackManager.loadAgentsAndRacksFromMaster(state, true);
// Load 2 agents on startup
// 2 agents, third has died
MesosMasterStateObject newState = getMasterState(2);
singularityAgentAndRackManager.loadAgentsAndRacksFromMaster(newState, true);
List<SingularityAgent> agents = agentManager.getObjects();
Assertions.assertEquals(3, agents.size());
for (SingularityAgent agent : agents) {
if (agent.getId().equals("2")) {
Assertions.assertEquals(MachineState.MISSING_ON_STARTUP, agent.getCurrentState().getState());
} else {
Assertions.assertEquals(MachineState.ACTIVE, agent.getCurrentState().getState());
}
}
}
use of com.hubspot.mesos.json.MesosMasterStateObject in project Singularity by HubSpot.
the class SingularityMachinesTest method testLoadSlavesFromMasterDataOnStartup.
@Test
public void testLoadSlavesFromMasterDataOnStartup() {
MesosMasterStateObject state = getMasterState(3);
singularityAgentAndRackManager.loadAgentsAndRacksFromMaster(state, true);
List<SingularityAgent> agents = agentManager.getObjects();
Assertions.assertEquals(3, agents.size());
for (SingularityAgent agent : agents) {
Assertions.assertEquals(MachineState.ACTIVE, agent.getCurrentState().getState());
}
}
use of com.hubspot.mesos.json.MesosMasterStateObject in project Singularity by HubSpot.
the class SingularityMachinesTest method testReconcileSlaves.
@Test
public void testReconcileSlaves() {
// Load 3 agents on startup
MesosMasterStateObject state = getMasterState(3);
singularityAgentAndRackManager.loadAgentsAndRacksFromMaster(state, true);
// 2 agents, third has died
MesosMasterStateObject newState = getMasterState(2);
singularityAgentAndRackManager.loadAgentsAndRacksFromMaster(newState, false);
List<SingularityAgent> agents = agentManager.getObjects();
Assertions.assertEquals(3, agents.size());
for (SingularityAgent agent : agents) {
if (agent.getId().equals("2")) {
Assertions.assertEquals(MachineState.DEAD, agent.getCurrentState().getState());
} else {
Assertions.assertEquals(MachineState.ACTIVE, agent.getCurrentState().getState());
}
}
}
Aggregations