use of com.synopsys.integration.wait.ResilientJobConfig in project blackduck-common by blackducksoftware.
the class CodeLocationWaiter method checkCodeLocationsAddedToBom.
public CodeLocationWaitResult checkCodeLocationsAddedToBom(UserView userView, NotificationTaskRange notificationTaskRange, NameVersion projectAndVersion, Set<String> codeLocationNames, int expectedNotificationCount, long timeoutInSeconds, int waitIntervalInSeconds) throws IntegrationException, InterruptedException {
logger.debug("Expected notification count " + expectedNotificationCount);
logger.debug("Expected code locations:");
codeLocationNames.forEach(codeLocation -> logger.debug(String.format(" Code Location -> %s", codeLocation)));
logger.debug("");
ResilientJobConfig jobConfig = new ResilientJobConfig(logger, timeoutInSeconds, notificationTaskRange.getTaskStartTime(), waitIntervalInSeconds);
CodeLocationWaitJob codeLocationWaitJob = new CodeLocationWaitJob(logger, projectService, notificationService, userView, notificationTaskRange, projectAndVersion, codeLocationNames, expectedNotificationCount, blackDuckApiClient);
ResilientJobExecutor resilientJobExecutor = new ResilientJobExecutor(jobConfig);
return resilientJobExecutor.executeJob(codeLocationWaitJob);
}
use of com.synopsys.integration.wait.ResilientJobConfig in project blackduck-common by blackducksoftware.
the class InstallAndRunSignatureScannerTestIT method testInstallingAndRunningSignatureScanner.
@Test
void testInstallingAndRunningSignatureScanner() throws IOException, InterruptedException, IntegrationException {
// here, we do not want to automatically trust the server's certificate
BlackDuckServerConfigBuilder blackDuckServerConfigBuilder = intHttpClientTestHelper.getBlackDuckServerConfigBuilder();
blackDuckServerConfigBuilder.setTrustCert(false);
BlackDuckServerConfig blackDuckServerConfig = blackDuckServerConfigBuilder.build();
File installDirectory = new File(scannerDirectoryPath, "scanner_install");
File outputDirectory = new File(scannerDirectoryPath, "scanner_output");
ScanBatch scanBatch = createScanBatch(blackDuckServerConfig, outputDirectory);
BufferedIntLogger logger = new BufferedIntLogger();
BlackDuckServicesFactory blackDuckServicesFactory = blackDuckServerConfig.createBlackDuckServicesFactory(logger);
IntEnvironmentVariables environmentVariables = blackDuckServicesFactory.getEnvironmentVariables();
OperatingSystemType operatingSystemType = OperatingSystemType.determineFromSystem();
ExecutorService executorService = BlackDuckServicesFactory.NO_THREAD_EXECUTOR_SERVICE;
BlackDuckHttpClient blackDuckHttpClient = blackDuckServicesFactory.getBlackDuckHttpClient();
BlackDuckRegistrationService blackDuckRegistrationService = blackDuckServicesFactory.createBlackDuckRegistrationService();
CleanupZipExpander cleanupZipExpander = new CleanupZipExpander(logger);
HttpUrl blackDuckServerUrl = blackDuckHttpClient.getBlackDuckUrl();
ScanPathsUtility scanPathsUtility = new ScanPathsUtility(logger, environmentVariables, operatingSystemType);
ScanCommandRunner scanCommandRunner = new ScanCommandRunner(logger, environmentVariables, scanPathsUtility, executorService);
// first, run a scan with an install that will NOT update the embedded keystore, which should fail
KeyStoreHelper noOpKeyStoreHelper = new NoOpKeyStoreHelper();
ScannerZipInstaller installerWithoutKeyStoreManagement = new ScannerZipInstaller(logger, new SignatureScannerClient(blackDuckHttpClient), blackDuckRegistrationService, cleanupZipExpander, scanPathsUtility, noOpKeyStoreHelper, blackDuckServerUrl, operatingSystemType, installDirectory);
ScanBatchRunner scanBatchRunnerWithout = ScanBatchRunner.createComplete(environmentVariables, scanPathsUtility, scanCommandRunner, installerWithoutKeyStoreManagement);
SignatureScannerService signatureScannerServiceWithout = blackDuckServicesFactory.createSignatureScannerService(scanBatchRunnerWithout);
assertScanFailure(logger, blackDuckRegistrationService, signatureScannerServiceWithout, scanBatch);
// now, delete the failed installation
FileUtils.deleteDirectory(installDirectory);
// second, run a scan with an install that DOES update the embedded keystore, which should succeed
logger.resetAllLogs();
KeyStoreHelper keyStoreHelper = new KeyStoreHelper(logger);
ScannerZipInstaller installerWithKeyStoreManagement = new ScannerZipInstaller(logger, new SignatureScannerClient(blackDuckHttpClient), blackDuckRegistrationService, cleanupZipExpander, scanPathsUtility, keyStoreHelper, blackDuckServerUrl, operatingSystemType, installDirectory);
ScanBatchRunner scanBatchRunnerWith = ScanBatchRunner.createComplete(environmentVariables, scanPathsUtility, scanCommandRunner, installerWithKeyStoreManagement);
SignatureScannerService signatureScannerServiceWith = blackDuckServicesFactory.createSignatureScannerService(scanBatchRunnerWith);
assertScanSuccess(logger, signatureScannerServiceWith, scanBatch);
// finally, verify the code location exists and then delete it to clean up
CodeLocationService codeLocationService = blackDuckServicesFactory.createCodeLocationService();
BlackDuckApiClient blackDuckApiClient = blackDuckServicesFactory.getBlackDuckApiClient();
ResilientJobConfig jobConfig = new ResilientJobConfig(logger, 120, System.currentTimeMillis(), 10);
WaitJob.waitFor(jobConfig, () -> codeLocationService.getCodeLocationByName(CODE_LOCATION_NAME).isPresent(), "codeLocationTest");
Optional<CodeLocationView> codeLocationViewOptional = codeLocationService.getCodeLocationByName(CODE_LOCATION_NAME);
assertTrue(codeLocationViewOptional.isPresent());
blackDuckApiClient.delete(codeLocationViewOptional.get());
}
use of com.synopsys.integration.wait.ResilientJobConfig in project blackduck-common by blackducksoftware.
the class BdioUploadRecipeTest method assertCodeLocationDoesNotExist.
private void assertCodeLocationDoesNotExist() throws IntegrationException, InterruptedException {
Optional<CodeLocationView> optionalCodeLocationView = codeLocationService.getCodeLocationByName(codeLocationName);
if (optionalCodeLocationView.isPresent()) {
deleteCodeLocation(codeLocationName);
}
ResilientJobConfig waitJobConfig = new ResilientJobConfig(logger, 30, ResilientJobConfig.CURRENT_TIME_SUPPLIER, 5);
WaitJob.waitFor(waitJobConfig, () -> !codeLocationService.getCodeLocationByName(codeLocationName).isPresent(), "code location not found");
}
use of com.synopsys.integration.wait.ResilientJobConfig in project hub-alert by blackducksoftware.
the class NotificationRemovalTest method testDeletion.
@Test
// performance test
@Ignore
@Disabled
void testDeletion() throws IntegrationException, InterruptedException {
providerConfig = createBlackDuckConfiguration();
OffsetDateTime testStartTime = OffsetDateTime.now();
OffsetDateTime notificationCreatedAtTime = OffsetDateTime.now();
// create 1000 processed notifications not for removal
createABatchOfNotifications(providerConfig, testStartTime, true);
// create 9000 for removal with varying dates and processed flags
for (int index = 0; index < 9; index++) {
boolean processed = index % 2 == 0 ? true : false;
// update the createdAt time to be 1 month older
notificationCreatedAtTime = notificationCreatedAtTime.minusMonths(1);
createABatchOfNotifications(providerConfig, notificationCreatedAtTime, processed);
}
OffsetDateTime oldestNotificationCreationTime = notificationCreatedAtTime;
purgeTask = new PurgeTask(schedulingDescriptorKey, taskScheduler, notificationAccessor, systemMessageAccessor, taskManager, configurationModelConfigurationAccessor);
LocalDateTime startTime = LocalDateTime.now();
purgeTask.runTask();
WaitJobCondition waitJobCondition = () -> {
List<AlertNotificationModel> notificationsInDatabase = getAllNotificationsInDatabase(oldestNotificationCreationTime, testStartTime);
return notificationsInDatabase.size() == BATCH_SIZE && notificationsInDatabase.stream().allMatch(AlertNotificationModel::getProcessed);
};
ResilientJobConfig resilientJobConfig = new ResilientJobConfig(LOGGER, 600, startTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(), 1);
boolean isComplete = WaitJob.waitFor(resilientJobConfig, waitJobCondition, "int performance test runner notification wait");
logTimeElapsedWithMessage("Purge of notifications duration: %s", startTime, LocalDateTime.now());
List<AlertNotificationModel> remainingNotifications = getAllNotificationsInDatabase(oldestNotificationCreationTime, testStartTime);
assertTrue(isComplete);
assertEquals(BATCH_SIZE, remainingNotifications.size());
}
use of com.synopsys.integration.wait.ResilientJobConfig in project hub-alert by blackducksoftware.
the class IntegrationPerformanceTestRunnerV2 method waitForJobToFinish.
private void waitForJobToFinish(Set<String> jobIds, LocalDateTime startingNotificationTime, int numberOfExpectedAuditEntries, NotificationType notificationType) throws IntegrationException, InterruptedException {
ResilientJobConfig resilientJobConfig = new ResilientJobConfig(intLogger, 14400, startingNotificationTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(), 2);
NotificationWaitJobTaskV2 notificationWaitJobTask = new NotificationWaitJobTaskV2(intLogger, dateTimeFormatter, gson, alertRequestUtility, startingNotificationTime, numberOfExpectedAuditEntries, notificationType, jobIds);
boolean isComplete = WaitJob.waitFor(resilientJobConfig, notificationWaitJobTask, "int performance test runner notification wait");
intLogger.info("Finished waiting for the notification to be processed: " + isComplete);
assertTrue(isComplete);
}
Aggregations