use of com.webank.wedatasphere.qualitis.metadata.response.db.DbInfoDetail in project Qualitis by WeBankFinTech.
the class MetaDataServiceImpl method getUserDbByCluster.
@Override
public GeneralResponse<GetAllResponse<DbInfoDetail>> getUserDbByCluster(GetUserDbByClusterRequest request) throws UnExpectedRequestException, MetaDataAcquireFailedException {
// Check Arguments
checkRequest(request);
// Get login user
String userName = HttpUtils.getUserName(httpServletRequest);
if (StringUtils.isNotBlank(request.getProxyUser())) {
userName = request.getProxyUser();
}
GetDbByUserAndClusterRequest getDbByUserAndClusterRequest = new GetDbByUserAndClusterRequest(userName, request.getStartIndex(), request.getPageSize(), request.getClusterName());
DataInfo<DbInfoDetail> response = metaDataClient.getDbByUserAndCluster(getDbByUserAndClusterRequest);
GetAllResponse<DbInfoDetail> result = new GetAllResponse<>();
result.setTotal(response.getTotalCount());
result.setData(response.getContent());
LOGGER.info("Succeed to get database by cluster, cluster: {}", request.getClusterName());
return new GeneralResponse<>("200", "{&GET_DB_SUCCESSFULLY}", result);
}
use of com.webank.wedatasphere.qualitis.metadata.response.db.DbInfoDetail in project Qualitis by WeBankFinTech.
the class MetaDataController method getDbsByDataSource.
@GET
@Path("data_source/dbs")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public GeneralResponse<GetAllResponse<DbInfoDetail>> getDbsByDataSource(@QueryParam("clusterName") String clusterName, @QueryParam("proxyUser") String proxyUser, @QueryParam("dataSourceId") Long dataSourceId) {
try {
if (dataSourceId == null || StringUtils.isBlank(clusterName)) {
throw new UnExpectedRequestException("Request " + "{&CAN_NOT_BE_NULL_OR_EMPTY}");
}
Map response = metaDataService.getDbsByDataSource(clusterName, proxyUser, dataSourceId);
GetAllResponse allResponse = new GetAllResponse();
List<String> dbs = (List<String>) response.get("dbs");
List<DbInfoDetail> dbInfoDetails = new ArrayList<>(CollectionUtils.isEmpty(dbs) ? 0 : dbs.size());
for (String db : dbs) {
DbInfoDetail dbInfoDetail = new DbInfoDetail(db);
dbInfoDetails.add(dbInfoDetail);
}
allResponse.setTotal(CollectionUtils.isEmpty(dbInfoDetails) ? 0 : dbInfoDetails.size());
allResponse.setData(dbInfoDetails);
return new GeneralResponse<>("200", "{&GET_DB_SUCCESSFULLY}", allResponse);
} catch (MetaDataAcquireFailedException e) {
LOGGER.error(e.getMessage(), e);
return new GeneralResponse<>("500", e.getMessage(), null);
} catch (UnExpectedRequestException e) {
LOGGER.error(e.getMessage(), e);
return new GeneralResponse<>("500", e.getMessage(), null);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
return new GeneralResponse<>("500", "{&FAILED_TO_GET_DATABASE_BY_CLUSTER}", null);
}
}
use of com.webank.wedatasphere.qualitis.metadata.response.db.DbInfoDetail in project Qualitis by WeBankFinTech.
the class MetaDataClientImpl method getDbByUserAndCluster.
@Override
public DataInfo<DbInfoDetail> getDbByUserAndCluster(GetDbByUserAndClusterRequest request) throws UnExpectedRequestException, MetaDataAcquireFailedException {
// Check existence of cluster name
ClusterInfo clusterInfo = checkClusterNameExists(request.getClusterName());
String authUser = request.getLoginUser();
// send request to get dbs
String url = getPath(clusterInfo.getLinkisAddress()).path(linkisConfig.getDbPath()).toString();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("Token-User", authUser);
headers.add("Token-Code", clusterInfo.getLinkisToken());
HttpEntity<Object> entity = new HttpEntity<>(headers);
LOGGER.info("Start to get db by user and cluster by linkis. url: {}, method: {}, body: {}", url, javax.ws.rs.HttpMethod.GET, entity);
Map<String, Object> response = restTemplate.exchange(url, HttpMethod.GET, entity, Map.class).getBody();
LOGGER.info("Start to get db by user and cluster by linkis. response: {}", response);
if (!checkResponse(response)) {
String message = (String) response.get("message");
LOGGER.error("Error! Can not get meta data from linkis, message: " + message);
throw new MetaDataAcquireFailedException("Error! Can not get meta data from linkis, message: " + message);
}
List<String> allDbs = ((List<Map<String, String>>) ((Map<String, Object>) response.get("data")).get("dbs")).stream().map(o -> o.get("dbName")).collect(Collectors.toList());
DataInfo<DbInfoDetail> dataInfo = new DataInfo<>(allDbs.size());
if (CollectionUtils.isEmpty(allDbs)) {
return dataInfo;
}
List<DbInfoDetail> details = new ArrayList<>();
for (String data : allDbs) {
DbInfoDetail detail = new DbInfoDetail(data);
details.add(detail);
}
dataInfo.setContent(details);
return dataInfo;
}
Aggregations