use of com.webank.wedatasphere.qualitis.response.GeneralResponse in project Qualitis by WeBankFinTech.
the class ApplicationServiceImpl method getDataSource.
@Override
public GeneralResponse<?> getDataSource(PageRequest request) throws UnExpectedRequestException {
// Check arguments
PageRequest.checkRequest(request);
Long userId = HttpUtils.getUserId(httpServletRequest);
User user = userDao.findById(userId);
long total;
// Find datasource by user
List<Map<String, String>> taskDataSourceMap = taskDataSourceDao.findByUser(user.getUserName());
total = taskDataSourceMap.size();
List<ApplicationClusterResponse> response = new ArrayList<>();
Map<String, ApplicationClusterResponse> map = new HashMap<>(2);
for (Map<String, String> currentMap : taskDataSourceMap) {
putIntoCluster(response, currentMap, map);
}
LOGGER.info("Succeed to find dataSources. size: {}, id of dataSources: {}", total, response);
return new GeneralResponse<>("200", "{&SUCCEED_TO_GET_APPLICATION_DATASOURCE}", response);
}
use of com.webank.wedatasphere.qualitis.response.GeneralResponse in project Qualitis by WeBankFinTech.
the class Filter1AuthorizationFilter method writeRedirectHome.
private void writeRedirectHome(ServletResponse response) throws IOException {
((HttpServletResponse) response).setStatus(Response.Status.UNAUTHORIZED.getStatusCode());
ServletOutputStream out = response.getOutputStream();
GeneralResponse generalResponse = new GeneralResponse<>("401", "please login", null);
out.write(objectMapper.writeValueAsBytes(generalResponse));
out.flush();
}
use of com.webank.wedatasphere.qualitis.response.GeneralResponse in project Qualitis by WeBankFinTech.
the class ApplicationServiceImpl method uploadDataSourceAnalysisResult.
@Override
public GeneralResponse<?> uploadDataSourceAnalysisResult(UploadResultRequest request) throws UnExpectedRequestException, IOException {
// Login user permission.
Long userId = HttpUtils.getUserId(httpServletRequest);
User user = userDao.findById(userId);
if (user == null) {
throw new UnExpectedRequestException("User {&DOES_NOT_EXIST}");
}
UploadResultRequest.checkRequest(request);
List<ApplicationClusterResponse> responses = (List<ApplicationClusterResponse>) getDataSource(new PageRequest(0, Integer.MAX_VALUE)).getData();
List<String> tables = responses.stream().filter(cluster -> cluster.getClusterName().equals(request.getClusterName())).map(ApplicationClusterResponse::getDatabase).flatMap(database -> database.stream()).filter(databaseResponse -> databaseResponse.getDatabaseName().equals(request.getDatabaseName())).map(ApplicationDatabaseResponse::getTable).flatMap(table -> table.stream()).distinct().collect(Collectors.toList());
if (StringUtils.isNotBlank(request.getTableName())) {
tables.clear();
tables.add(request.getTableName());
}
LOGGER.info("Start to write excel");
StringBuffer fileName = new StringBuffer();
fileName.append(linkisConfig.getUploadTmpPath()).append(File.separator).append(user.getUserName()).append("_").append(request.getClusterName()).append("_").append(request.getDatabaseName()).append("_").append(UUID.randomUUID().toString()).append(ExcelTypeEnum.XLSX.getValue());
File tmpFile = new File(fileName.toString());
writeExcelFile(tmpFile, tables, request);
// Upload to HDFS
ClusterInfo clusterInfo = clusterInfoDao.findByClusterName(request.getClusterName());
if (clusterInfo == null) {
throw new UnExpectedRequestException("Cluster info " + "[" + request.getClusterName() + "]" + "{&DOES_NOT_EXIST}");
}
// send request to get dbs
String url = UriBuilder.fromUri(clusterInfo.getLinkisAddress()).path(linkisConfig.getPrefix()).path(linkisConfig.getUpload()).toString();
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url);
MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
multipartEntityBuilder.setContentType(ContentType.MULTIPART_FORM_DATA);
multipartEntityBuilder.setCharset(Charset.forName("UTF-8"));
if (clusterInfo.getClusterType().endsWith(LINKIS_ONE_VERSION)) {
multipartEntityBuilder.addTextBody("path", linkisConfig.getUploadPrefix() + LINKIS_ONE_UPLOAD_PREFIX + request.getHdfsPath());
} else {
multipartEntityBuilder.addTextBody("path", linkisConfig.getUploadPrefix() + request.getHdfsPath());
}
multipartEntityBuilder.addBinaryBody("file", tmpFile);
httppost.addHeader("Token-User", user.getUserName());
httppost.addHeader("Token-Code", clusterInfo.getLinkisToken());
httppost.setEntity(multipartEntityBuilder.build());
CloseableHttpResponse response = null;
try {
response = httpclient.execute(httppost);
} catch (IOException e) {
throw new UnExpectedRequestException("{&FAILED_TO_CALL_UPLOAD_API}");
}
int code = response.getStatusLine().getStatusCode();
response.close();
if (code != HttpStatus.SC_OK) {
throw new UnExpectedRequestException("{&FAILED_TO_CALL_UPLOAD_API}");
}
boolean tmpDeleteFlag = tmpFile.delete();
LOGGER.info("Delete tmp excel: " + tmpDeleteFlag);
return new GeneralResponse<>(code + "", "{&SUCCESS_TO_UPLOAD_ANALYSIS_EXCEL}", code);
}
use of com.webank.wedatasphere.qualitis.response.GeneralResponse in project Qualitis by WeBankFinTech.
the class ApplicationServiceImpl method filterApplicationId.
/**
* Find application by applicationId
* @param applicationId
* @return
*/
@Override
public GeneralResponse<?> filterApplicationId(String applicationId) {
Long userId = HttpUtils.getUserId(httpServletRequest);
// Find applications by user
User user = userDao.findById(userId);
List<Application> applicationList;
applicationList = applicationDao.findByCreateUserAndId(user.getUserName(), applicationId);
if (applicationList == null) {
LOGGER.info("User: {} , Not find applications with applicationId: {}", user.getUserName(), applicationId);
return new GeneralResponse<>("200", "{&SUCCEED_TO_GET_APPLICATIONS_BUT_FIND_NO_RESULTS}", null);
}
GetAllResponse<ApplicationResponse> getAllResponse = new GetAllResponse<>();
List<ApplicationResponse> applicationResponses = new ArrayList<>();
for (Application application : applicationList) {
List<Task> tasks = taskDao.findByApplication(application);
ApplicationResponse response = new ApplicationResponse(application, tasks, httpServletRequest.getHeader("Content-Language"));
if (application.getCreateUser().equals(user.getUserName()) || application.getExecuteUser().equals(user.getUserName())) {
response.setKillOption(true);
} else {
response.setKillOption(false);
}
applicationResponses.add(response);
}
getAllResponse.setData(applicationResponses);
getAllResponse.setTotal(applicationList.size());
List<String> applicationIdList = getAllResponse.getData().stream().map(ApplicationResponse::getApplicationId).collect(Collectors.toList());
LOGGER.info("User: {}, find {} applications with like applicationId : {},Id of applications: {}", user.getUserName(), applicationList.size(), applicationId, applicationIdList);
return new GeneralResponse<>("200", "{&SUCCEED_TO_GET_APPLICATIONS}", getAllResponse);
}
use of com.webank.wedatasphere.qualitis.response.GeneralResponse in project Qualitis by WeBankFinTech.
the class ApplicationServiceImpl method filterAdvanceApplication.
@Override
public GeneralResponse<?> filterAdvanceApplication(FilterAdvanceRequest request) {
Long userId = HttpUtils.getUserId(httpServletRequest);
// Find applications by user
User user = userDao.findById(userId);
List<Application> applicationList;
long total = 0;
// If application ID is not empty, just return application which ID like the input string.
if (StringUtils.isNotBlank(request.getApplicationId())) {
applicationList = applicationDao.findByCreateUserAndId(user.getUserName(), request.getApplicationId());
total = applicationList.size();
} else if (StringUtils.isNotBlank(request.getClusterName())) {
if (request.getStatus() != null) {
if (request.getStatus().equals(ApplicationStatusEnum.FINISHED.getCode())) {
request.setStatus(TaskStatusEnum.PASS_CHECKOUT.getCode());
} else if (request.getStatus().equals(ApplicationStatusEnum.NOT_PASS.getCode())) {
request.setStatus(TaskStatusEnum.FAIL_CHECKOUT.getCode());
} else if (request.getStatus().equals(ApplicationStatusEnum.SUCCESSFUL_CREATE_APPLICATION.getCode())) {
request.setStatus(TaskStatusEnum.INITED.getCode());
} else if (request.getStatus().equals(ApplicationStatusEnum.RUNNING.getCode())) {
request.setStatus(TaskStatusEnum.RUNNING.getCode());
} else if (request.getStatus() == 0) {
request.setStatus(null);
}
}
// If data source is not empty, it will be used as the basic filter.
applicationList = applicationDao.findApplicationByAdavnceConditionsWithDatasource(user.getUserName(), request.getClusterName(), request.getDatabaseName(), request.getTableName(), request.getProjectId(), request.getStatus(), request.getCommentType(), request.getStartTime(), request.getEndTime(), request.getPage(), request.getSize());
total = applicationDao.countApplicationByAdavnceConditionsWithDatasource(user.getUserName(), request.getClusterName(), request.getDatabaseName(), request.getTableName(), request.getProjectId(), request.getStatus(), request.getCommentType(), request.getStartTime(), request.getEndTime());
} else {
applicationList = applicationDao.findApplicationByAdavnceConditions(user.getUserName(), request.getProjectId(), request.getStatus(), request.getCommentType(), request.getStartTime(), request.getEndTime(), request.getPage(), request.getSize());
total = applicationDao.countApplicationByAdavnceConditions(user.getUserName(), request.getProjectId(), request.getStatus(), request.getCommentType(), request.getStartTime(), request.getEndTime());
}
GetAllResponse<ApplicationResponse> getAllResponse = new GetAllResponse<>();
List<ApplicationResponse> applicationResponses = new ArrayList<>();
for (Application application : applicationList) {
List<Task> tasks = taskDao.findByApplication(application);
ApplicationResponse response = new ApplicationResponse(application, tasks, httpServletRequest.getHeader("Content-Language"));
if (application.getCreateUser().equals(user.getUserName()) || application.getExecuteUser().equals(user.getUserName())) {
response.setKillOption(true);
} else {
response.setKillOption(false);
}
applicationResponses.add(response);
}
getAllResponse.setData(applicationResponses);
getAllResponse.setTotal(total);
return new GeneralResponse<>("200", "{&SUCCEED_TO_GET_APPLICATIONS}", getAllResponse);
}
Aggregations