Search in sources :

Example 1 with LicenseNotGrantedException

use of jetbrains.buildServer.LicenseNotGrantedException in project teamcity-rest by JetBrains.

the class Mutation method unauthorizeAgent.

@Used("graphql")
@NotNull
public DataFetcherResult<UnauthorizeAgentPayload> unauthorizeAgent(@NotNull UnauthorizeAgentInput input, @NotNull DataFetchingEnvironment dfe) {
    return runWithAgent(input.getAgentRawId(), agent -> {
        DataFetcherResult.Builder<UnauthorizeAgentPayload> result = DataFetcherResult.newResult();
        GraphQLContext context = dfe.getContext();
        String authReason = input.getReason() == null ? "" : input.getReason();
        try {
            agent.setAuthorized(false, context.getUser(), authReason);
        } catch (LicenseNotGrantedException e) {
            return result.error(new OperationFailedGraphQLError(e.getMessage())).build();
        }
        Agent agentModel = new Agent(agent);
        return result.data(new UnauthorizeAgentPayload(agentModel)).build();
    });
}
Also used : DataFetcherResult(graphql.execution.DataFetcherResult) LicenseNotGrantedException(jetbrains.buildServer.LicenseNotGrantedException) OperationFailedGraphQLError(jetbrains.buildServer.server.graphql.util.OperationFailedGraphQLError) GraphQLContext(jetbrains.buildServer.server.graphql.GraphQLContext) Used(jetbrains.buildServer.Used) NotNull(org.jetbrains.annotations.NotNull)

Example 2 with LicenseNotGrantedException

use of jetbrains.buildServer.LicenseNotGrantedException in project teamcity-rest by JetBrains.

the class Mutation method bulkAuthorizeAgents.

@Used("graphql")
@NotNull
public DataFetcherResult<BulkAuthorizeAgentsPayload> bulkAuthorizeAgents(@NotNull BulkAuthorizeAgentsInput input, @NotNull DataFetchingEnvironment dfe) {
    DataFetcherResult.Builder<BulkAuthorizeAgentsPayload> result = DataFetcherResult.newResult();
    GraphQLContext context = dfe.getContext();
    String authReason = input.getReason() == null ? "" : input.getReason();
    Set<Integer> agentTypeIds = new HashSet<>(input.getAgentRawIds().size());
    List<BuildAgentEx> agents = new ArrayList<>();
    for (int agentId : input.getAgentRawIds()) {
        BuildAgentEx agent = myBuildAgentManager.findAgentById(agentId, true);
        if (agent == null) {
            return result.error(new EntityNotFoundGraphQLError(String.format("Agent with id=%d is not found.", agentId))).build();
        }
        agentTypeIds.add(agent.getAgentTypeId());
        agents.add(agent);
    }
    if (input.getTargetAgentPoolRawId() != null) {
        try {
            myAgentPoolManager.moveAgentTypesToPool(input.getTargetAgentPoolRawId(), agentTypeIds);
        } catch (NoSuchAgentPoolException e) {
            return result.error(new EntityNotFoundGraphQLError("Agent pool is not found.")).build();
        } catch (AgentTypeCannotBeMovedException e) {
            LOG.debug(e.getMessage());
            return result.error(new OperationFailedGraphQLError("One of the given agents can't be moved.")).build();
        } catch (PoolQuotaExceededException e) {
            LOG.debug(e.getMessage());
            return result.error(new OperationFailedGraphQLError(String.format("Agent pool can't accept %d agents.", agentTypeIds.size()))).build();
        }
    }
    AbstractAgentPool poolModel = null;
    if (input.getTargetAgentPoolRawId() != null) {
        AgentPool targetRealPool = myAgentPoolManager.findAgentPoolById(input.getTargetAgentPoolRawId());
        if (targetRealPool != null) {
            poolModel = myAgentPoolFactory.produce(targetRealPool);
        } else {
            result.error(new EntityNotFoundGraphQLError("Agent pool is not found after successfully moving agents to it. Possibly it was deleted already."));
        }
    }
    List<Agent> agentModels = new ArrayList<>();
    for (BuildAgentEx agent : agents) {
        try {
            agent.setAuthorized(true, context.getUser(), authReason);
        } catch (LicenseNotGrantedException e) {
            result.error(new OperationFailedGraphQLError(e.getMessage()));
        }
        agentModels.add(new Agent(agent));
    }
    return result.data(new BulkAuthorizeAgentsPayload(agentModels, poolModel)).build();
}
Also used : ArrayList(java.util.ArrayList) AbstractAgentPool(jetbrains.buildServer.server.graphql.model.agentPool.AbstractAgentPool) AbstractAgentPool(jetbrains.buildServer.server.graphql.model.agentPool.AbstractAgentPool) DataFetcherResult(graphql.execution.DataFetcherResult) LicenseNotGrantedException(jetbrains.buildServer.LicenseNotGrantedException) OperationFailedGraphQLError(jetbrains.buildServer.server.graphql.util.OperationFailedGraphQLError) GraphQLContext(jetbrains.buildServer.server.graphql.GraphQLContext) EntityNotFoundGraphQLError(jetbrains.buildServer.server.graphql.util.EntityNotFoundGraphQLError) HashSet(java.util.HashSet) Used(jetbrains.buildServer.Used) NotNull(org.jetbrains.annotations.NotNull)

Aggregations

DataFetcherResult (graphql.execution.DataFetcherResult)2 LicenseNotGrantedException (jetbrains.buildServer.LicenseNotGrantedException)2 Used (jetbrains.buildServer.Used)2 GraphQLContext (jetbrains.buildServer.server.graphql.GraphQLContext)2 OperationFailedGraphQLError (jetbrains.buildServer.server.graphql.util.OperationFailedGraphQLError)2 NotNull (org.jetbrains.annotations.NotNull)2 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 AbstractAgentPool (jetbrains.buildServer.server.graphql.model.agentPool.AbstractAgentPool)1 EntityNotFoundGraphQLError (jetbrains.buildServer.server.graphql.util.EntityNotFoundGraphQLError)1