use of javax.xml.ws.http.HTTPException in project hbase by apache.
the class RESTApiClusterManager method doRoleCommand.
/**
* Issues a command (e.g. starting or stopping a role).
* @return the commandId of a successfully submitted asynchronous command.
*/
private long doRoleCommand(String serviceName, String roleName, RoleCommand roleCommand) {
URI uri = UriBuilder.fromUri(serverHostname).path("api").path(API_VERSION).path("clusters").path(clusterName).path("services").path(serviceName).path("roleCommands").path(roleCommand.toString()).build();
String body = "{ \"items\": [ \"" + roleName + "\" ] }";
LOG.trace("Executing POST against {} with body {} ...", uri, body);
WebTarget webTarget = client.target(uri);
Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
Response response = invocationBuilder.post(Entity.json(body));
final int statusCode = response.getStatus();
final String responseBody = response.readEntity(String.class);
if (statusCode != Response.Status.OK.getStatusCode()) {
LOG.warn("RoleCommand failed with status code {} and response body {}", statusCode, responseBody);
throw new HTTPException(statusCode);
}
LOG.trace("POST against {} completed with status code {} and response body {}", uri, statusCode, responseBody);
return parser.parse(responseBody).getAsJsonObject().get("items").getAsJsonArray().get(0).getAsJsonObject().get("id").getAsLong();
}
use of javax.xml.ws.http.HTTPException in project hbase by apache.
the class RESTApiClusterManager method getFromURIGet.
private String getFromURIGet(URI uri) {
LOG.trace("Executing GET against {} ...", uri);
final Response response = client.target(uri).request(MediaType.APPLICATION_JSON_TYPE).get();
int statusCode = response.getStatus();
final String responseBody = response.readEntity(String.class);
if (statusCode != Response.Status.OK.getStatusCode()) {
LOG.warn("request failed with status code {} and response body {}", statusCode, responseBody);
throw new HTTPException(statusCode);
}
// This API folds information as the value to an "items" attribute.
LOG.trace("GET against {} completed with status code {} and response body {}", uri, statusCode, responseBody);
return responseBody;
}
Aggregations