Search in sources :

Example 6 with MockBuildAgent

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);
}
Also used : ProjectEx(jetbrains.buildServer.serverSide.impl.ProjectEx) MockBuildAgent(jetbrains.buildServer.serverSide.impl.MockBuildAgent) SkipException(org.testng.SkipException) Test(org.testng.annotations.Test)

Example 7 with MockBuildAgent

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);
}
Also used : ProjectEx(jetbrains.buildServer.serverSide.impl.ProjectEx) MockBuildAgent(jetbrains.buildServer.serverSide.impl.MockBuildAgent) Test(org.testng.annotations.Test)

Example 8 with MockBuildAgent

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);
}
Also used : ProjectEx(jetbrains.buildServer.serverSide.impl.ProjectEx) MockBuildAgent(jetbrains.buildServer.serverSide.impl.MockBuildAgent) SkipException(org.testng.SkipException) Test(org.testng.annotations.Test)

Aggregations

MockBuildAgent (jetbrains.buildServer.serverSide.impl.MockBuildAgent)8 Test (org.testng.annotations.Test)7 ProjectEx (jetbrains.buildServer.serverSide.impl.ProjectEx)4 BaseFinderTest (jetbrains.buildServer.server.rest.data.BaseFinderTest)2 SkipException (org.testng.SkipException)2 SimpleDateFormat (java.text.SimpleDateFormat)1 Date (java.util.Date)1 AgentPool (jetbrains.buildServer.server.graphql.model.agentPool.AgentPool)1 AgentPoolAgentsConnection (jetbrains.buildServer.server.graphql.model.connections.agentPool.AgentPoolAgentsConnection)1 AgentEnabledInfo (jetbrains.buildServer.server.rest.model.agent.AgentEnabledInfo)1 BuildType (jetbrains.buildServer.server.rest.model.buildType.BuildType)1 AgentRequest (jetbrains.buildServer.server.rest.request.AgentRequest)1 ProjectRequestTest (jetbrains.buildServer.server.rest.request.ProjectRequestTest)1 BuildTypeOrTemplate (jetbrains.buildServer.server.rest.util.BuildTypeOrTemplate)1 jetbrains.buildServer.serverSide.agentPools (jetbrains.buildServer.serverSide.agentPools)1