Search in sources :

Example 1 with YarnClientException

use of com.sequenceiq.cloudbreak.cloud.yarn.client.exception.YarnClientException in project cloudbreak by hortonworks.

the class YarnHttpClient method validateApiEndpoint.

@Override
public void validateApiEndpoint() throws YarnClientException, MalformedURLException {
    YarnEndpoint dashEndpoint = new YarnEndpoint(apiEndpoint, YarnResourceConstants.APPLICATIONS_PATH);
    ClientConfig clientConfig = new DefaultClientConfig();
    Client client = Client.create(clientConfig);
    WebResource webResource = client.resource(dashEndpoint.getFullEndpointUrl().toString());
    ClientResponse response = webResource.accept("application/json").type("application/json").get(ClientResponse.class);
    // Validate HTTP 200 status code
    if (response.getStatus() != YarnResourceConstants.HTTP_SUCCESS) {
        String msg = String.format("Received %d status code from url %s, reason: %s", response.getStatus(), dashEndpoint.getFullEndpointUrl().toString(), response.getEntity(String.class));
        LOGGER.debug(msg);
        throw new YarnClientException(msg);
    }
}
Also used : ClientResponse(com.sun.jersey.api.client.ClientResponse) DefaultClientConfig(com.sun.jersey.api.client.config.DefaultClientConfig) YarnClientException(com.sequenceiq.cloudbreak.cloud.yarn.client.exception.YarnClientException) WebResource(com.sun.jersey.api.client.WebResource) DefaultClientConfig(com.sun.jersey.api.client.config.DefaultClientConfig) ClientConfig(com.sun.jersey.api.client.config.ClientConfig) Client(com.sun.jersey.api.client.Client) YarnEndpoint(com.sequenceiq.cloudbreak.cloud.yarn.client.api.YarnEndpoint)

Example 2 with YarnClientException

use of com.sequenceiq.cloudbreak.cloud.yarn.client.exception.YarnClientException in project cloudbreak by hortonworks.

the class YarnResourceConnector method terminate.

@Override
public List<CloudResourceStatus> terminate(AuthenticatedContext authenticatedContext, CloudStack stack, List<CloudResource> cloudResources) {
    for (CloudResource resource : cloudResources) {
        switch(resource.getType()) {
            case YARN_APPLICATION:
                YarnClient yarnClient = yarnClientUtil.createYarnClient(authenticatedContext);
                String yarnApplicationName = resource.getName();
                String stackName = authenticatedContext.getCloudContext().getName();
                LOGGER.info("Terminate stack: {}", stackName);
                try {
                    DeleteApplicationRequest deleteApplicationRequest = new DeleteApplicationRequest();
                    deleteApplicationRequest.setName(yarnApplicationName);
                    yarnClient.deleteApplication(deleteApplicationRequest);
                    LOGGER.info("Yarn Applicatin has been deleted");
                } catch (MalformedURLException | YarnClientException e) {
                    throw new CloudConnectorException("Stack cannot be deleted", e);
                }
                break;
            default:
                throw new CloudConnectorException(String.format("Invalid resource type: %s", resource.getType()));
        }
    }
    return check(authenticatedContext, cloudResources);
}
Also used : MalformedURLException(java.net.MalformedURLException) YarnClientException(com.sequenceiq.cloudbreak.cloud.yarn.client.exception.YarnClientException) CloudConnectorException(com.sequenceiq.cloudbreak.cloud.exception.CloudConnectorException) DeleteApplicationRequest(com.sequenceiq.cloudbreak.cloud.yarn.client.model.request.DeleteApplicationRequest) CloudResource(com.sequenceiq.cloudbreak.cloud.model.CloudResource) YarnClient(com.sequenceiq.cloudbreak.cloud.yarn.client.YarnClient)

Example 3 with YarnClientException

use of com.sequenceiq.cloudbreak.cloud.yarn.client.exception.YarnClientException in project cloudbreak by hortonworks.

the class YarnHttpClient method deleteApplication.

@Override
public void deleteApplication(DeleteApplicationRequest deleteApplicationRequest) throws YarnClientException, MalformedURLException {
    // Add the application name to the URL
    YarnEndpoint dashEndpoint = new YarnEndpoint(apiEndpoint, YarnResourceConstants.APPLICATIONS_PATH + '/' + deleteApplicationRequest.getName());
    ClientConfig clientConfig = new DefaultClientConfig();
    Client client = Client.create(clientConfig);
    // Delete the application
    WebResource webResource = client.resource(dashEndpoint.getFullEndpointUrl().toString());
    ClientResponse response = webResource.accept("application/json").type("application/json").delete(ClientResponse.class);
    // Validate HTTP 204 return
    String msg;
    switch(response.getStatus()) {
        case YarnResourceConstants.HTTP_NO_CONTENT:
            msg = String.format("Successfully deleted application %s", deleteApplicationRequest.getName());
            LOGGER.debug(msg);
            break;
        case YarnResourceConstants.HTTP_NOT_FOUND:
            msg = String.format("Application %s not found, already deleted?", deleteApplicationRequest.getName());
            LOGGER.debug(msg);
            break;
        default:
            msg = String.format("Received %d status code from url %s, reason: %s", response.getStatus(), dashEndpoint.getFullEndpointUrl().toString(), response.getEntity(String.class));
            LOGGER.debug(msg);
            throw new YarnClientException(msg);
    }
}
Also used : ClientResponse(com.sun.jersey.api.client.ClientResponse) DefaultClientConfig(com.sun.jersey.api.client.config.DefaultClientConfig) YarnClientException(com.sequenceiq.cloudbreak.cloud.yarn.client.exception.YarnClientException) WebResource(com.sun.jersey.api.client.WebResource) DefaultClientConfig(com.sun.jersey.api.client.config.DefaultClientConfig) ClientConfig(com.sun.jersey.api.client.config.ClientConfig) Client(com.sun.jersey.api.client.Client) YarnEndpoint(com.sequenceiq.cloudbreak.cloud.yarn.client.api.YarnEndpoint)

Aggregations

YarnClientException (com.sequenceiq.cloudbreak.cloud.yarn.client.exception.YarnClientException)3 YarnEndpoint (com.sequenceiq.cloudbreak.cloud.yarn.client.api.YarnEndpoint)2 Client (com.sun.jersey.api.client.Client)2 ClientResponse (com.sun.jersey.api.client.ClientResponse)2 WebResource (com.sun.jersey.api.client.WebResource)2 ClientConfig (com.sun.jersey.api.client.config.ClientConfig)2 DefaultClientConfig (com.sun.jersey.api.client.config.DefaultClientConfig)2 CloudConnectorException (com.sequenceiq.cloudbreak.cloud.exception.CloudConnectorException)1 CloudResource (com.sequenceiq.cloudbreak.cloud.model.CloudResource)1 YarnClient (com.sequenceiq.cloudbreak.cloud.yarn.client.YarnClient)1 DeleteApplicationRequest (com.sequenceiq.cloudbreak.cloud.yarn.client.model.request.DeleteApplicationRequest)1 MalformedURLException (java.net.MalformedURLException)1