Search in sources :

Example 1 with FileReader

use of com.qasymphony.ci.plugin.store.file.FileReader 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);
}
Also used : FilePath(hudson.FilePath) SubmittedResult(com.qasymphony.ci.plugin.model.SubmittedResult) Configuration(com.qasymphony.ci.plugin.model.Configuration) StoreResultException(com.qasymphony.ci.plugin.exception.StoreResultException) IOException(java.io.IOException) FileReader(com.qasymphony.ci.plugin.store.file.FileReader)

Example 2 with FileReader

use of com.qasymphony.ci.plugin.store.file.FileReader 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);
}
Also used : VirtualChannel(hudson.remoting.VirtualChannel) RoleChecker(org.jenkinsci.remoting.RoleChecker) StoreResultException(com.qasymphony.ci.plugin.exception.StoreResultException) FileReader(com.qasymphony.ci.plugin.store.file.FileReader) File(java.io.File) IOException(java.io.IOException) StoreResultException(com.qasymphony.ci.plugin.exception.StoreResultException)

Aggregations

StoreResultException (com.qasymphony.ci.plugin.exception.StoreResultException)2 FileReader (com.qasymphony.ci.plugin.store.file.FileReader)2 IOException (java.io.IOException)2 Configuration (com.qasymphony.ci.plugin.model.Configuration)1 SubmittedResult (com.qasymphony.ci.plugin.model.SubmittedResult)1 FilePath (hudson.FilePath)1 VirtualChannel (hudson.remoting.VirtualChannel)1 File (java.io.File)1 RoleChecker (org.jenkinsci.remoting.RoleChecker)1