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);
}
}
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);
}
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);
}
}
Aggregations