use of com.vip.saturn.job.console.marathon.entity.WrapperApp in project Saturn by vipshop.
the class MarathonRestClient method getContainerStatus.
public static ContainerStatus getContainerStatus(String userName, String password, String appId) throws SaturnJobConsoleException {
String urlStr = SaturnEnvProperties.VIP_SATURN_DCOS_REST_URI + "/v2/apps/" + appId;
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
HttpGet httpGet = new HttpGet(urlStr);
httpGet.setHeader("Authorization", "Basic " + Base64.encodeBase64String((userName + ":" + password).getBytes("UTF-8")));
CloseableHttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity entity = httpResponse.getEntity();
if (entity != null) {
String entityContent = getEntityContent(entity);
StatusLine statusLine = httpResponse.getStatusLine();
if (statusLine != null && statusLine.getStatusCode() == 200) {
WrapperApp app = JSON.parseObject(entityContent, WrapperApp.class);
ContainerStatus containerStatus = new ContainerStatus();
containerStatus.setHealthyCount(app.getApp().getTasksHealthy());
containerStatus.setUnhealthyCount(app.getApp().getTasksUnhealthy());
containerStatus.setRunningCount(app.getApp().getTasksRunning());
containerStatus.setStagedCount(app.getApp().getTasksStaged());
containerStatus.setTotalCount(app.getApp().getInstances());
return containerStatus;
} else {
throw new SaturnJobConsoleException(entityContent);
}
} else {
throw new SaturnJobConsoleException("Not data returned, url is " + urlStr);
}
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
throw new SaturnJobConsoleException(e);
} finally {
try {
httpClient.close();
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
}
}
Aggregations