use of jetbrains.buildServer.serverSide.impl.MockBuildAgent in project teamcity-rest by JetBrains.
the class AgentFinderTest method testLocatorCompatible.
@Test
public void testLocatorCompatible() throws Exception {
ProjectEx project10 = createProject("project10", "project 10");
BuildTypeEx bt10 = project10.createBuildType("bt10", "bt 10");
bt10.addRequirement(myFixture.findSingletonService(RequirementFactory.class).createRequirement("a", null, RequirementType.EXISTS));
BuildTypeEx bt20 = project10.createBuildType("bt20", "bt 20");
BuildTypeEx bt30 = project10.createBuildType("bt30", "bt 30");
bt30.addRequirement(myFixture.findSingletonService(RequirementFactory.class).createRequirement("x", "1", RequirementType.EQUALS));
myAgent1.addConfigParameter("x", "1");
myAgent1.pushAgentTypeData();
MockBuildAgent agent10 = myFixture.createEnabledAgent("agent10", "Ant");
agent10.addConfigParameter("a", "b");
agent10.addConfigParameter("x", "1");
agent10.pushAgentTypeData();
if (myServer.getLicensingPolicy().getMaxNumberOfAuthorizedAgents() < 4) {
throw new SkipException("Cannot execute test logic when there is not enough agent licenses (only works in internal dev environment tests)");
}
MockBuildAgent agent15 = myFixture.createEnabledAgent("agent15", "Ant");
agent15.addConfigParameter("a", "b");
agent15.pushAgentTypeData();
MockBuildAgent agent20 = myFixture.createEnabledAgent("agent20", "Ant");
agent20.addConfigParameter("a", "b");
agent20.pushAgentTypeData();
final int poolId1 = myFixture.getAgentPoolManager().createNewAgentPool("pool1").getAgentPoolId();
myFixture.getAgentPoolManager().moveAgentTypesToPool(poolId1, createSet(agent20.getId()));
MockBuildAgent agent30 = myFixture.createEnabledAgent("agent30", "Ant");
agent30.addConfigParameter("a", "b");
agent30.pushAgentTypeData();
myFixture.getAgentTypeManager().setRunConfigurationPolicy(agent30.getAgentTypeId(), BuildAgentManager.RunConfigurationPolicy.SELECTED_COMPATIBLE_CONFIGURATIONS);
myFixture.getAgentTypeManager().excludeRunConfigurationsFromAllowed(agent30.getAgentTypeId(), new String[] { bt10.getInternalId(), bt20.getInternalId() });
MockBuildAgent agent40 = myFixture.createEnabledAgent("agent40", "Ant");
MockBuildAgent agent50 = myFixture.createEnabledAgent("agent50", "Ant");
agent50.addConfigParameter("a", "b");
agent50.pushAgentTypeData();
agent50.setEnabled(false, null, "");
checkAgents("defaultFilter:false", myAgent1, myAgent2, myAgent3, myAgent4, agent10, agent15, agent20, agent30, agent40, agent50);
checkAgents(null, myAgent1, myAgent2, agent10, agent15, agent20, agent30, agent40, agent50);
checkAgents("compatible:(buildType:(id:" + bt10.getExternalId() + "))", agent10, agent15);
checkAgents("enabled:any,compatible:(buildType:(id:" + bt10.getExternalId() + "))", agent10, agent15, agent50);
checkAgents("compatible:(buildType:(id:" + bt30.getExternalId() + "))", myAgent1, agent10);
checkAgents("compatible:(buildType:(item:(id:" + bt10.getExternalId() + "),item:(id:" + bt30.getExternalId() + ")))", myAgent1, agent10, agent15);
checkAgents("enabled:any,compatible:(buildType:(item:(id:" + bt10.getExternalId() + "),item:(id:" + bt30.getExternalId() + ")))", myAgent1, agent10, agent15, agent50);
// checkAgents("compatible:(buildType:(id:" + bt10.getExternalId() + ")),compatible:(buildType:(id:" + bt30.getExternalId() + "))", agent10);
checkAgents("incompatible:(buildType:(id:" + bt10.getExternalId() + "))", myAgent1, myAgent2, agent20, agent30, agent40);
checkAgents("incompatible:(buildType:(item:(id:" + bt10.getExternalId() + "),item:(id:" + bt30.getExternalId() + ")))", myAgent1, myAgent2, agent15, agent20, agent30, agent40, agent50);
checkAgents("compatible:(buildType:(id:" + bt30.getExternalId() + ")),incompatible:(buildType:(id:" + bt10.getExternalId() + "))", myAgent1);
}
use of jetbrains.buildServer.serverSide.impl.MockBuildAgent in project teamcity-rest by JetBrains.
the class AgentFinderTest method testLocatorCompatible3AgentLimit.
@Test
public void testLocatorCompatible3AgentLimit() throws Exception {
ProjectEx project10 = createProject("project10", "project 10");
BuildTypeEx bt10 = project10.createBuildType("bt10", "bt 10");
bt10.addRequirement(myFixture.findSingletonService(RequirementFactory.class).createRequirement("a", null, RequirementType.EXISTS));
BuildTypeEx bt20 = project10.createBuildType("bt20", "bt 20");
BuildTypeEx bt30 = project10.createBuildType("bt30", "bt 30");
bt30.addRequirement(myFixture.findSingletonService(RequirementFactory.class).createRequirement("x", "1", RequirementType.EQUALS));
myAgent1.addConfigParameter("x", "1");
myAgent1.pushAgentTypeData();
myAgent1.setAuthorized(false, null, "");
myAgent2.setAuthorized(false, null, "");
MockBuildAgent agent10 = myFixture.createEnabledAgent("agent10", "Ant");
agent10.addConfigParameter("a", "b");
agent10.addConfigParameter("x", "1");
agent10.pushAgentTypeData();
MockBuildAgent agent15 = myFixture.createEnabledAgent("agent15", "Ant");
agent15.addConfigParameter("a", "b");
agent15.pushAgentTypeData();
MockBuildAgent agent20 = myFixture.createEnabledAgent("agent20", "Ant");
agent20.addConfigParameter("a", "b");
agent20.pushAgentTypeData();
agent20.setAuthorized(false, null, "");
final int poolId1 = myFixture.getAgentPoolManager().createNewAgentPool("pool1").getAgentPoolId();
myFixture.getAgentPoolManager().moveAgentTypesToPool(poolId1, createSet(agent20.getId()));
MockBuildAgent agent30 = myFixture.createEnabledAgent("agent30", "Ant");
agent30.addConfigParameter("a", "b");
agent30.pushAgentTypeData();
agent30.setAuthorized(false, null, "");
myFixture.getAgentTypeManager().setRunConfigurationPolicy(agent30.getAgentTypeId(), BuildAgentManager.RunConfigurationPolicy.SELECTED_COMPATIBLE_CONFIGURATIONS);
myFixture.getAgentTypeManager().excludeRunConfigurationsFromAllowed(agent30.getAgentTypeId(), new String[] { bt10.getInternalId(), bt20.getInternalId() });
MockBuildAgent agent40 = myFixture.createEnabledAgent("agent40", "Ant");
agent40.setAuthorized(false, null, "");
checkAgents("defaultFilter:false", myAgent1, myAgent2, myAgent3, myAgent4, agent10, agent15, agent20, agent30, agent40);
checkAgents(null, agent10, agent15);
checkAgents("authorized:any", myAgent1, myAgent2, myAgent3, myAgent4, agent10, agent15, agent20, agent30, agent40);
checkAgents("compatible:(buildType:(id:" + bt10.getExternalId() + ")),authorized:any", agent10, agent15);
checkAgents("compatible:(buildType:(id:" + bt30.getExternalId() + ")),authorized:any", myAgent1, agent10);
checkAgents("compatible:(buildType:(item:(id:" + bt10.getExternalId() + "),item:(id:" + bt30.getExternalId() + "))),authorized:any", myAgent1, agent10, agent15);
checkAgents("incompatible:(buildType:(id:" + bt10.getExternalId() + ")),authorized:any", myAgent1, myAgent2, myAgent3, myAgent4, agent20, agent30, agent40);
checkAgents("incompatible:(buildType:(item:(id:" + bt10.getExternalId() + "),item:(id:" + bt30.getExternalId() + "))),authorized:any", myAgent1, myAgent2, myAgent3, myAgent4, agent15, agent20, agent30, agent40);
checkAgents("compatible:(buildType:(id:" + bt30.getExternalId() + ")),incompatible:(buildType:(id:" + bt10.getExternalId() + ")),authorized:any", myAgent1);
}
use of jetbrains.buildServer.serverSide.impl.MockBuildAgent in project teamcity-rest by JetBrains.
the class AgentFinderTest method testLocatorCompatibleForBuild.
@Test
public void testLocatorCompatibleForBuild() throws Exception {
ProjectEx project10 = createProject("project10", "project 10");
BuildTypeEx bt10 = project10.createBuildType("bt10", "bt 10");
bt10.addRequirement(myFixture.findSingletonService(RequirementFactory.class).createRequirement("a", null, RequirementType.EXISTS));
BuildTypeEx bt20 = project10.createBuildType("bt20", "bt 20");
MockBuildAgent agent10 = myFixture.createEnabledAgent("agent10", "Ant");
agent10.addConfigParameter("a", "b");
agent10.pushAgentTypeData();
if (myServer.getLicensingPolicy().getMaxNumberOfAuthorizedAgents() < 4) {
throw new SkipException("Cannot execute test logic when there is not enough agent licenses (only works in internal dev environment tests)");
}
MockBuildAgent agent20 = myFixture.createEnabledAgent("agent20", "Ant");
agent20.addConfigParameter("a", "b");
agent20.pushAgentTypeData();
final int poolId1 = myFixture.getAgentPoolManager().createNewAgentPool("pool1").getAgentPoolId();
myFixture.getAgentPoolManager().moveAgentTypesToPool(poolId1, createSet(agent20.getId()));
MockBuildAgent agent30 = myFixture.createEnabledAgent("agent30", "Ant");
agent30.addConfigParameter("a", "b");
agent30.pushAgentTypeData();
myFixture.getAgentTypeManager().setRunConfigurationPolicy(agent30.getAgentTypeId(), BuildAgentManager.RunConfigurationPolicy.SELECTED_COMPATIBLE_CONFIGURATIONS);
myFixture.getAgentTypeManager().excludeRunConfigurationsFromAllowed(agent30.getAgentTypeId(), new String[] { bt20.getInternalId() });
MockBuildAgent agent40 = myFixture.createEnabledAgent("agent40", "Ant");
MockBuildAgent agent50 = myFixture.createEnabledAgent("agent50", "Ant");
agent50.addConfigParameter("a", "b");
agent50.pushAgentTypeData();
agent50.setEnabled(false, null, "");
checkAgents("defaultFilter:false,connected:true,authorized:true,enabled:true", myAgent1, agent10, agent20, agent30, agent40);
SQueuedBuild build1 = build().in(bt10).addToQueue();
checkAgents("compatible:(build:(id:" + build1.getBuildPromotion().getId() + "))", agent10);
SQueuedBuild build2 = build().in(bt20).addToQueue();
checkAgents("compatible:(build:(id:" + build2.getBuildPromotion().getId() + "))", myAgent1, agent10, agent40);
checkAgents("compatible:(build:(item:(id:" + build2.getBuildPromotion().getId() + "),item:(id:" + build1.getBuildPromotion().getId() + ")))", myAgent1, agent10, agent40);
SFinishedBuild build3 = build().in(bt10).finish();
// agent50 should probably not be here
checkAgents("compatible:(build:(id:" + build3.getBuildPromotion().getId() + "))", agent10, agent50);
SFinishedBuild build4 = build().in(bt20).finish();
// agent50 should probably not be here
checkAgents("compatible:(build:(id:" + build4.getBuildPromotion().getId() + "))", myAgent1, agent10, agent40, agent50);
}
Aggregations