Search in sources :

Example 1 with BlackDuckRequestBuilderEditor

use of com.synopsys.integration.blackduck.service.request.BlackDuckRequestBuilderEditor in project synopsys-detect by blackducksoftware.

the class RapidScanUploadService method uploadFiles.

private HttpUrl uploadFiles(UploadTarget uploadTarget, List<BdioFileContent> bdioFiles, RapidScanOptions rapidScanOptions, @Nullable NameVersion nameVersion, @Nullable File rapidScanConfig, @Nullable File rapidScanWorkingDirectory) throws IntegrationException, IOException {
    if (bdioFiles.isEmpty()) {
        throw new IllegalArgumentException("BDIO files cannot be empty.");
    }
    BdioFileContent header = bdioFiles.stream().filter(content -> content.getFileName().equals(FILE_NAME_BDIO_HEADER_JSONLD)).findFirst().orElseThrow(() -> new BlackDuckIntegrationException("Cannot find BDIO header file" + FILE_NAME_BDIO_HEADER_JSONLD + "."));
    List<BdioFileContent> remainingFiles = bdioFiles.stream().filter(content -> !content.getFileName().equals(FILE_NAME_BDIO_HEADER_JSONLD)).collect(Collectors.toList());
    int count = remainingFiles.size();
    logger.debug("BDIO upload file count = " + count);
    BlackDuckRequestBuilderEditor editor = builder -> {
        builder.addHeader(RapidCompareMode.HEADER_NAME, rapidScanOptions.getCompareMode().getHeaderValue());
        if (nameVersion != null) {
            builder.addHeader(Bdio2StreamUploader.PROJECT_NAME_HEADER, nameVersion.getName()).addHeader(Bdio2StreamUploader.VERSION_NAME_HEADER, nameVersion.getVersion());
        }
    };
    HttpUrl url;
    if (rapidScanConfig != null) {
        url = bdio2Uploader.startWithConfig(zip(uploadTarget, rapidScanConfig, header, rapidScanWorkingDirectory), editor);
    } else {
        url = bdio2Uploader.start(header, editor);
    }
    for (BdioFileContent content : remainingFiles) {
        bdio2Uploader.append(url, count, content, editor);
    }
    bdio2Uploader.finish(url, count, editor);
    return url;
}
Also used : FileNameUtils(org.apache.commons.compress.utils.FileNameUtils) IntegrationException(com.synopsys.integration.exception.IntegrationException) DataService(com.synopsys.integration.blackduck.service.DataService) ApiDiscovery(com.synopsys.integration.blackduck.api.generated.discovery.ApiDiscovery) HashMap(java.util.HashMap) IntLogger(com.synopsys.integration.log.IntLogger) HttpUrl(com.synopsys.integration.rest.HttpUrl) NameVersion(com.synopsys.integration.util.NameVersion) RapidScanOptions(com.synopsys.integration.detect.workflow.blackduck.developer.RapidScanOptions) Charset(java.nio.charset.Charset) Map(java.util.Map) BdioFileContent(com.synopsys.integration.blackduck.bdio2.model.BdioFileContent) Path(java.nio.file.Path) BlackDuckApiClient(com.synopsys.integration.blackduck.service.BlackDuckApiClient) RapidCompareMode(com.synopsys.integration.detect.configuration.enumeration.RapidCompareMode) IOException(java.io.IOException) FileUtils(org.apache.commons.io.FileUtils) Collectors(java.util.stream.Collectors) File(java.io.File) Nullable(org.jetbrains.annotations.Nullable) Bdio2ContentExtractor(com.synopsys.integration.blackduck.bdio2.util.Bdio2ContentExtractor) List(java.util.List) BlackDuckRequestBuilderEditor(com.synopsys.integration.blackduck.service.request.BlackDuckRequestBuilderEditor) Bdio2StreamUploader(com.synopsys.integration.blackduck.bdio2.Bdio2StreamUploader) BlackDuckIntegrationException(com.synopsys.integration.blackduck.exception.BlackDuckIntegrationException) DetectZipUtil(com.synopsys.integration.detect.util.DetectZipUtil) UploadTarget(com.synopsys.integration.blackduck.codelocation.upload.UploadTarget) BlackDuckRequestBuilderEditor(com.synopsys.integration.blackduck.service.request.BlackDuckRequestBuilderEditor) BdioFileContent(com.synopsys.integration.blackduck.bdio2.model.BdioFileContent) BlackDuckIntegrationException(com.synopsys.integration.blackduck.exception.BlackDuckIntegrationException) HttpUrl(com.synopsys.integration.rest.HttpUrl)

Example 2 with BlackDuckRequestBuilderEditor

use of com.synopsys.integration.blackduck.service.request.BlackDuckRequestBuilderEditor in project blackduck-common by blackducksoftware.

the class Bdio2FileUploadService method uploadFiles.

private Bdio2UploadResult uploadFiles(List<BdioFileContent> bdioFiles, @Nullable NameVersion nameVersion, long timeout) throws IntegrationException, InterruptedException {
    if (bdioFiles.isEmpty()) {
        throw new IllegalArgumentException("BDIO files cannot be empty.");
    }
    BdioFileContent header = bdioFiles.stream().filter(content -> content.getFileName().equals(FILE_NAME_BDIO_HEADER_JSONLD)).findFirst().orElseThrow(() -> new BlackDuckIntegrationException("Cannot find BDIO header file" + FILE_NAME_BDIO_HEADER_JSONLD + "."));
    List<BdioFileContent> remainingFiles = bdioFiles.stream().filter(content -> !content.getFileName().equals(FILE_NAME_BDIO_HEADER_JSONLD)).collect(Collectors.toList());
    int count = remainingFiles.size();
    logger.debug("BDIO upload file count = " + count);
    BlackDuckRequestBuilderEditor editor = noOp -> {
    };
    if (nameVersion != null) {
        editor = builder -> builder.addHeader(Bdio2StreamUploader.PROJECT_NAME_HEADER, nameVersion.getName()).addHeader(Bdio2StreamUploader.VERSION_NAME_HEADER, nameVersion.getVersion());
    }
    ResilientJobConfig jobConfig = new ResilientJobConfig(logger, timeout, System.currentTimeMillis(), BD_WAIT_AND_RETRY_INTERVAL);
    Bdio2UploadJob bdio2UploadJob = new Bdio2UploadJob(bdio2Uploader, header, remainingFiles, editor, count);
    ResilientJobExecutor jobExecutor = new ResilientJobExecutor(jobConfig);
    return jobExecutor.executeJob(bdio2UploadJob);
}
Also used : IntegrationException(com.synopsys.integration.exception.IntegrationException) DataService(com.synopsys.integration.blackduck.service.DataService) ResilientJobExecutor(com.synopsys.integration.wait.ResilientJobExecutor) ApiDiscovery(com.synopsys.integration.blackduck.api.generated.discovery.ApiDiscovery) ResilientJobConfig(com.synopsys.integration.wait.ResilientJobConfig) Collectors(java.util.stream.Collectors) IntLogger(com.synopsys.integration.log.IntLogger) HttpUrl(com.synopsys.integration.rest.HttpUrl) Nullable(org.jetbrains.annotations.Nullable) Bdio2ContentExtractor(com.synopsys.integration.blackduck.bdio2.util.Bdio2ContentExtractor) NameVersion(com.synopsys.integration.util.NameVersion) List(java.util.List) BlackDuckRequestBuilderEditor(com.synopsys.integration.blackduck.service.request.BlackDuckRequestBuilderEditor) BdioFileContent(com.synopsys.integration.blackduck.bdio2.model.BdioFileContent) BlackDuckIntegrationException(com.synopsys.integration.blackduck.exception.BlackDuckIntegrationException) UploadTarget(com.synopsys.integration.blackduck.codelocation.upload.UploadTarget) BlackDuckApiClient(com.synopsys.integration.blackduck.service.BlackDuckApiClient) BlackDuckRequestBuilderEditor(com.synopsys.integration.blackduck.service.request.BlackDuckRequestBuilderEditor) BdioFileContent(com.synopsys.integration.blackduck.bdio2.model.BdioFileContent) ResilientJobExecutor(com.synopsys.integration.wait.ResilientJobExecutor) BlackDuckIntegrationException(com.synopsys.integration.blackduck.exception.BlackDuckIntegrationException) ResilientJobConfig(com.synopsys.integration.wait.ResilientJobConfig)

Aggregations

ApiDiscovery (com.synopsys.integration.blackduck.api.generated.discovery.ApiDiscovery)2 BdioFileContent (com.synopsys.integration.blackduck.bdio2.model.BdioFileContent)2 Bdio2ContentExtractor (com.synopsys.integration.blackduck.bdio2.util.Bdio2ContentExtractor)2 UploadTarget (com.synopsys.integration.blackduck.codelocation.upload.UploadTarget)2 BlackDuckIntegrationException (com.synopsys.integration.blackduck.exception.BlackDuckIntegrationException)2 BlackDuckApiClient (com.synopsys.integration.blackduck.service.BlackDuckApiClient)2 DataService (com.synopsys.integration.blackduck.service.DataService)2 BlackDuckRequestBuilderEditor (com.synopsys.integration.blackduck.service.request.BlackDuckRequestBuilderEditor)2 IntegrationException (com.synopsys.integration.exception.IntegrationException)2 IntLogger (com.synopsys.integration.log.IntLogger)2 HttpUrl (com.synopsys.integration.rest.HttpUrl)2 NameVersion (com.synopsys.integration.util.NameVersion)2 List (java.util.List)2 Collectors (java.util.stream.Collectors)2 Nullable (org.jetbrains.annotations.Nullable)2 Bdio2StreamUploader (com.synopsys.integration.blackduck.bdio2.Bdio2StreamUploader)1 RapidCompareMode (com.synopsys.integration.detect.configuration.enumeration.RapidCompareMode)1 DetectZipUtil (com.synopsys.integration.detect.util.DetectZipUtil)1 RapidScanOptions (com.synopsys.integration.detect.workflow.blackduck.developer.RapidScanOptions)1 ResilientJobConfig (com.synopsys.integration.wait.ResilientJobConfig)1