Search in sources :

Example 1 with ValidationException

use of io.gravitee.gateway.handlers.api.validator.ValidationException in project gravitee-gateway by gravitee-io.

the class ApiManagerTest method add_simpleApi_validationError.

@Test
public void add_simpleApi_validationError() {
    Api api = new ApiDefinitionBuilder().name("api-test").proxy(new ProxyDefinitionBuilder().contextPath("/team").target("default", "http://localhost/target").build()).build();
    doThrow(new ValidationException()).when(validator).validate(api);
    apiManager.deploy(api);
    verify(eventManager, never()).publishEvent(ReactorEvent.DEPLOY, api);
}
Also used : ProxyDefinitionBuilder(io.gravitee.gateway.handlers.api.builders.ProxyDefinitionBuilder) ValidationException(io.gravitee.gateway.handlers.api.validator.ValidationException) ApiDefinitionBuilder(io.gravitee.gateway.handlers.api.builders.ApiDefinitionBuilder) Api(io.gravitee.gateway.handlers.api.definition.Api) Test(org.junit.Test)

Example 2 with ValidationException

use of io.gravitee.gateway.handlers.api.validator.ValidationException in project gravitee-gateway by gravitee-io.

the class ApiManagerImpl method deploy.

@Override
public void deploy(Api api) {
    MDC.put("api", api.getId());
    logger.info("Deployment of {}", api);
    // Deploy the API only if there is at least one plan
    if (!api.getPlans().isEmpty()) {
        logger.info("Deploying {} plan(s) for API {}:", api.getPlans().size(), api.getId());
        for (Plan plan : api.getPlans()) {
            logger.info("\t- {}", plan.getName());
        }
        try {
            validator.validate(api);
            apis.put(api.getId(), api);
            if (api.isEnabled()) {
                eventManager.publishEvent(ReactorEvent.DEPLOY, api);
            } else {
                logger.debug("{} is not enabled. Skip deployment.", api);
            }
        } catch (ValidationException ve) {
            logger.error("API {} can't be deployed because of validation errors", api, ve);
        }
    } else {
        logger.warn("There is no published plan associated to this API, skipping deployment...");
    }
    MDC.remove("api");
}
Also used : ValidationException(io.gravitee.gateway.handlers.api.validator.ValidationException) Plan(io.gravitee.gateway.handlers.api.definition.Plan)

Example 3 with ValidationException

use of io.gravitee.gateway.handlers.api.validator.ValidationException in project gravitee-gateway by gravitee-io.

the class ApiManagerImpl method update.

@Override
public void update(Api api) {
    MDC.put("api", api.getId());
    logger.info("Updating {}", api);
    if (!api.getPlans().isEmpty()) {
        logger.info("Deploying {} plan(s) for API {}:", api.getPlans().size(), api.getId());
        for (Plan plan : api.getPlans()) {
            logger.info("\t- {}", plan.getName());
        }
        try {
            validator.validate(api);
            apis.put(api.getId(), api);
            eventManager.publishEvent(ReactorEvent.UPDATE, api);
        } catch (ValidationException ve) {
            logger.error("API {} can't be updated because of validation errors", api, ve);
        }
    } else {
        logger.warn("There is no published plan associated to this API, undeploy it...");
        undeploy(api.getId());
    }
    MDC.remove("api");
}
Also used : ValidationException(io.gravitee.gateway.handlers.api.validator.ValidationException) Plan(io.gravitee.gateway.handlers.api.definition.Plan)

Aggregations

ValidationException (io.gravitee.gateway.handlers.api.validator.ValidationException)3 Plan (io.gravitee.gateway.handlers.api.definition.Plan)2 ApiDefinitionBuilder (io.gravitee.gateway.handlers.api.builders.ApiDefinitionBuilder)1 ProxyDefinitionBuilder (io.gravitee.gateway.handlers.api.builders.ProxyDefinitionBuilder)1 Api (io.gravitee.gateway.handlers.api.definition.Api)1 Test (org.junit.Test)1