use of com.qasymphony.ci.plugin.exception.StoreResultException in project jenkin-qtest-plugin by QASymphony.
the class StoreResultServiceImpl method fetchAll.
@Override
public ReadSubmitLogResult fetchAll(ReadSubmitLogRequest request) throws StoreResultException {
FilePath resultPath = JobUtils.isPipelineJob(request.getJob()) == false ? getResultFolder(request.getProject()) : getResultFolder(request.getJob());
Map<Integer, SubmittedResult> buildResults = new HashMap<>();
int numOrder = request.getCurrentBuildNumber() / BREAK_FILE_BY;
// get saved configuration
Configuration configuration = null;
if (JobUtils.isFreeStyleProjectJob(request.getProject()) == true) {
configuration = ConfigService.getPluginConfiguration(request.getProject());
}
String qTestUrl = configuration == null ? "" : configuration.getUrl();
Long projectId = configuration == null ? 0L : configuration.getProjectId();
try {
if (numOrder <= 0) {
FilePath resultFile = getResultFile(resultPath, numOrder);
buildResults.putAll(readResult(resultFile, qTestUrl, projectId));
} else {
for (int i = 0; i < numOrder; i++) {
FilePath resultFile = getResultFile(resultPath, i);
buildResults.putAll(readResult(resultFile, qTestUrl, projectId));
}
}
} catch (Exception e) {
throw new StoreResultException(e);
}
return new ReadSubmitLogResult().setResults(buildResults).setTotal(buildResults.size());
}
use of com.qasymphony.ci.plugin.exception.StoreResultException in project jenkin-qtest-plugin by QASymphony.
the class StoreResultServiceImpl method fetch.
@Override
public ReadSubmitLogResult fetch(ReadSubmitLogRequest request) throws StoreResultException {
FilePath resultPath = getResultFolder(request.getProject());
int numOrder = request.getCurrentBuildNumber() / BREAK_FILE_BY;
List<FileReader> readerList = getReaderList(resultPath, numOrder);
// get saved configuration
Configuration configuration = ConfigService.getPluginConfiguration(request.getProject());
String qTestUrl = configuration == null ? "" : configuration.getUrl();
Long projectId = configuration == null ? 0L : configuration.getProjectId();
int total = 0;
Map<Integer, SubmittedResult> resultMap = new HashMap<>();
for (FileReader reader : readerList) {
total += reader.size();
try {
resultMap.putAll(buildSubmittedResult(reader.readAll(), qTestUrl, projectId));
} catch (IOException e) {
throw new StoreResultException(e.getMessage(), e);
} finally {
try {
reader.close();
} catch (IOException e) {
throw new StoreResultException(e.getMessage(), e);
}
}
}
return new ReadSubmitLogResult().setTotal(total).setResults(resultMap);
}
use of com.qasymphony.ci.plugin.exception.StoreResultException in project jenkin-qtest-plugin by QASymphony.
the class StoreResultServiceImpl method readResult.
private static Map<Integer, SubmittedResult> readResult(FilePath resultFile, String url, Long projectId) throws StoreResultException {
SortedMap<Integer, String> lines = null;
try {
lines = resultFile.act(new FilePath.FileCallable<SortedMap<Integer, String>>() {
@Override
public SortedMap<Integer, String> invoke(File file, VirtualChannel virtualChannel) throws IOException, InterruptedException {
FileReader fileReader = new FileReader(file);
SortedMap<Integer, String> lines;
try {
lines = fileReader.readAll();
} finally {
if (null != fileReader)
fileReader.close();
}
return lines;
}
@Override
public void checkRoles(RoleChecker roleChecker) throws SecurityException {
}
});
} catch (Exception e) {
throw new StoreResultException(String.format("Cannot read from result file:%s, %s", resultFile.getName(), e.getMessage()));
}
return buildSubmittedResult(lines, url, projectId);
}
use of com.qasymphony.ci.plugin.exception.StoreResultException in project jenkin-qtest-plugin by QASymphony.
the class StoreResultServiceImpl method store.
@Override
public Boolean store(Job job, final SubmittedResult result) throws StoreResultException {
FilePath resultFolder = getResultFolder(job);
try {
resultFolder.mkdirs();
} catch (Exception e) {
throw new StoreResultException(String.format("Cannot make result folder:%s, %s", resultFolder.getName(), e.getMessage()));
}
FilePath resultFile = getResultFile(resultFolder, result.getBuildNumber() / BREAK_FILE_BY);
try {
resultFile.act(new FilePath.FileCallable<String>() {
@Override
public String invoke(File file, VirtualChannel virtualChannel) throws IOException, InterruptedException {
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(file.getPath(), true));
writer.write(JsonUtils.toJson(result));
writer.newLine();
return null;
} finally {
if (null != writer)
writer.close();
}
}
@Override
public void checkRoles(RoleChecker roleChecker) throws SecurityException {
}
});
} catch (Exception e) {
throw new StoreResultException("Cannot store result to file:" + e.getMessage());
}
return true;
}
use of com.qasymphony.ci.plugin.exception.StoreResultException in project jenkin-qtest-plugin by QASymphony.
the class JunitQtestSubmitterImpl method storeSubmittedResult.
@Override
public SubmittedResult storeSubmittedResult(JunitSubmitterRequest junitSubmitterRequest, Run build, String buildResult, JunitSubmitterResult result) throws StoreResultException {
String qTestUrl = junitSubmitterRequest.getqTestURL();
Long projectId = junitSubmitterRequest.getProjectID();
SubmittedResult submitResult = new SubmittedResult().setUrl(qTestUrl).setProjectId(projectId).setBuildNumber(build.getNumber()).setStatusBuild(buildResult).setTestSuiteId(result.getTestSuiteId()).setTestSuiteName(result.getTestSuiteName()).setSubmitStatus(result.getSubmittedStatus()).setNumberTestLog(result.getNumberOfTestLog()).setNumberTestResult(result.getNumberOfTestResult());
try {
storeResultService.store(build.getParent(), submitResult);
return submitResult;
} catch (Exception e) {
LOG.log(Level.WARNING, e.getMessage(), e);
throw new StoreResultException("Cannot store result." + e.getMessage(), e);
}
}
Aggregations