use of com.microsoft.azure.hdinsight.sdk.cluster.IClusterDetail in project azure-tools-for-java by Microsoft.
the class JobViewDummyHttpServer method initlize.
public static synchronized void initlize() {
if (isEnabled) {
return;
}
try {
server = HttpServer.create(new InetSocketAddress(PORT), 10);
server.createContext("/clusters/", new HttpHandler() {
@Override
public void handle(final HttpExchange httpExchange) throws IOException {
requestDetail = RequestDetail.getRequestDetail(httpExchange.getRequestURI());
if (requestDetail == null) {
return;
}
IClusterDetail clusterDetail = requestDetail.getClusterDetail();
final String queryUrl = requestDetail.getQueryUrl();
if (requestDetail.getApiType() == HttpRequestType.YarnHistory) {
TaskExecutor.submit(new YarnHistoryTask(clusterDetail, queryUrl, new HttpFutureCallback(httpExchange) {
@Override
public void onSuccess(String str) {
httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
try {
// work around of get job result
// TODO: get job result by REST API
Document doc = Jsoup.parse(str);
Elements contentElements = doc.getElementsByClass("content");
if (contentElements.size() == 1) {
Elements elements = contentElements.get(0).getElementsByTag("pre");
if (elements.size() == 1) {
str = elements.get(0).html();
}
}
httpExchange.sendResponseHeaders(200, str.length());
OutputStream stream = httpExchange.getResponseBody();
stream.write(str.getBytes());
stream.close();
} catch (IOException e) {
int a = 1;
// LOGGER.error("Get job history error", e);
}
}
}));
} else if (requestDetail.getApiType() == HttpRequestType.LivyBatchesRest) {
TaskExecutor.submit(new LivyTask(clusterDetail, queryUrl, new HttpFutureCallback(httpExchange) {
@Override
public void onSuccess(String str) {
httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
try {
String applicationId = requestDetail.getProperty("applicationId");
if (applicationId != null) {
str = JobUtils.getJobInformation(str, applicationId);
}
httpExchange.sendResponseHeaders(200, str.length());
OutputStream stream = httpExchange.getResponseBody();
stream.write(str.getBytes());
stream.close();
} catch (IOException e) {
// LOGGER.error("Get job history error", e);
}
}
}));
} else if (requestDetail.getApiType() == HttpRequestType.MultiTask) {
TaskExecutor.submit(new MultiRestTask(clusterDetail, requestDetail.getQueryUrls(), new MultiHttpFutureCallback(httpExchange) {
public void onSuccess(List<String> strs) {
httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
try {
String str = tasksDetailsConvert(strs);
httpExchange.sendResponseHeaders(200, str.length());
OutputStream stream = httpExchange.getResponseBody();
stream.write(str.getBytes());
stream.close();
} catch (IOException e) {
// LOGGER.error("Get job history error", e);
}
}
}));
} else {
TaskExecutor.submit(new RestTask(clusterDetail, queryUrl, new HttpFutureCallback(httpExchange) {
@Override
public void onSuccess(@NotNull String str) {
httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");
try {
httpExchange.sendResponseHeaders(200, str.length());
OutputStream stream = httpExchange.getResponseBody();
stream.write(str.getBytes());
stream.close();
} catch (IOException e) {
// LOGGER.error("Get job history error", e);
}
}
}));
}
}
});
executorService = Executors.newFixedThreadPool(NO_OF_THREADS);
server.setExecutor(executorService);
server.start();
isEnabled = true;
} catch (IOException e) {
// LOGGER.error("Get job history error", e);
// DefaultLoader.getUIHelper().showError(e.getClass().getName(), e.getMessage());
}
}
use of com.microsoft.azure.hdinsight.sdk.cluster.IClusterDetail in project azure-tools-for-java by Microsoft.
the class SparkRestUtil method getSparkApplications.
@NotNull
public static List<Application> getSparkApplications(@NotNull IClusterDetail clusterDetail) throws HDIException, IOException {
HttpEntity entity = getSparkRestEntity(clusterDetail, "");
Optional<List<Application>> apps = ObjectConvertUtils.convertEntityToList(entity, Application.class);
// spark job has at least one attempt
return apps.orElse(RestUtil.getEmptyList(Application.class)).stream().filter(app -> app.getAttempts().size() != 0 && app.getAttempts().get(0).getAttemptId() != null).collect(Collectors.toList());
}
Aggregations