use of com.synopsys.integration.alert.api.provider.state.StatefulProvider in project hub-alert by blackducksoftware.
the class BlackDuckPhoneHomeHandler method populatePhoneHomeData.
@Override
public PhoneHomeRequestBodyBuilder populatePhoneHomeData(ConfigurationModel configurationModel, NameVersion alertArtifactInfo) {
String registrationId = null;
String blackDuckUrl = PhoneHomeRequestBody.UNKNOWN_FIELD_VALUE;
String blackDuckVersion = PhoneHomeRequestBody.UNKNOWN_FIELD_VALUE;
try {
descriptorAccessor.getRegisteredDescriptorById(configurationModel.getDescriptorId());
StatefulProvider statefulProvider = provider.createStatefulProvider(configurationModel);
BlackDuckProperties blackDuckProperties = (BlackDuckProperties) statefulProvider.getProperties();
BlackDuckHttpClient blackDuckHttpClient = blackDuckProperties.createBlackDuckHttpClient(logger);
BlackDuckServicesFactory blackDuckServicesFactory = blackDuckProperties.createBlackDuckServicesFactory(blackDuckHttpClient, new Slf4jIntLogger(logger));
BlackDuckRegistrationService blackDuckRegistrationService = blackDuckServicesFactory.createBlackDuckRegistrationService();
BlackDuckServerData blackDuckServerData = blackDuckRegistrationService.getBlackDuckServerData();
blackDuckVersion = blackDuckServerData.getVersion();
registrationId = blackDuckServerData.getRegistrationKey().orElse(null);
blackDuckUrl = blackDuckProperties.getBlackDuckUrl().orElse(PhoneHomeRequestBody.UNKNOWN_FIELD_VALUE);
} catch (IntegrationException ignored) {
// ignoring this exception
}
// We must check if the reg id is blank because of an edge case in which Black Duck can authenticate (while the webserver is coming up) without registration
if (StringUtils.isBlank(registrationId)) {
registrationId = PhoneHomeRequestBody.UNKNOWN_FIELD_VALUE;
}
PhoneHomeRequestBodyBuilder phoneHomeBuilder = new PhoneHomeRequestBodyBuilder(registrationId, blackDuckUrl, alertArtifactInfo, UniquePhoneHomeProduct.BLACK_DUCK, blackDuckVersion);
return phoneHomeBuilder;
}
use of com.synopsys.integration.alert.api.provider.state.StatefulProvider in project hub-alert by blackducksoftware.
the class BlackDuckGlobalApiActionTest method runApiActionTest.
private void runApiActionTest(ThrowingBiFunction<BlackDuckGlobalApiAction, FieldModel, FieldModel, AlertException> apiAction) throws AlertException {
TaskManager taskManager = new TaskManager();
BlackDuckProperties properties = Mockito.mock(BlackDuckProperties.class);
Mockito.when(properties.isConfigEnabled()).thenReturn(true);
FieldModel fieldModel = Mockito.mock(FieldModel.class);
Mockito.when(fieldModel.getId()).thenReturn("1");
Mockito.when(fieldModel.getFieldValue(Mockito.eq(ProviderDescriptor.KEY_PROVIDER_CONFIG_ENABLED))).thenReturn(Optional.of("true"));
String providerConfigName = "Test Provider Config";
Mockito.when(fieldModel.getFieldValue(Mockito.eq(ProviderDescriptor.KEY_PROVIDER_CONFIG_NAME))).thenReturn(Optional.of(providerConfigName));
BlackDuckAccumulator blackDuckAccumulator = Mockito.mock(BlackDuckAccumulator.class);
Mockito.when(blackDuckAccumulator.getTaskName()).thenReturn("accumulator-task");
Mockito.when(blackDuckAccumulator.getFormatedNextRunTime()).thenReturn(Optional.of("SOON"));
BlackDuckDataSyncTask blackDuckDataSyncTask = Mockito.mock(BlackDuckDataSyncTask.class);
Mockito.when(blackDuckDataSyncTask.getTaskName()).thenReturn("data-sync-task");
Mockito.when(blackDuckDataSyncTask.getFormatedNextRunTime()).thenReturn(Optional.of("SOON"));
ConfigurationModel configurationModel = Mockito.mock(ConfigurationModel.class);
Long providerConfigId = -1L;
Mockito.when(configurationModel.getConfigurationId()).thenReturn(providerConfigId);
Mockito.when(configurationModel.getDescriptorId()).thenReturn(providerConfigId);
ConfigurationFieldModel configurationFieldModel = ConfigurationFieldModel.create(ProviderDescriptor.KEY_PROVIDER_CONFIG_ENABLED);
configurationFieldModel.setFieldValue("true");
Mockito.when(configurationModel.getField(ProviderDescriptor.KEY_PROVIDER_CONFIG_ENABLED)).thenReturn(Optional.of(configurationFieldModel));
ConfigurationModelConfigurationAccessor configurationModelConfigurationAccessor = Mockito.mock(ConfigurationModelConfigurationAccessor.class);
Mockito.when(configurationModelConfigurationAccessor.getProviderConfigurationByName(Mockito.anyString())).thenReturn(Optional.of(configurationModel));
Mockito.when(configurationModelConfigurationAccessor.getConfigurationsByDescriptorKeyAndContext(Mockito.any(BlackDuckProviderKey.class), Mockito.eq(ConfigContextEnum.DISTRIBUTION))).thenReturn(List.of());
BlackDuckProviderKey blackDuckProviderKey = new BlackDuckProviderKey();
StatefulProvider statefulProvider = Mockito.mock(StatefulProvider.class);
BlackDuckProvider blackDuckProvider = Mockito.mock(BlackDuckProvider.class);
Mockito.when(blackDuckProvider.validate(configurationModel)).thenReturn(true);
Mockito.when(blackDuckProvider.createStatefulProvider(configurationModel)).thenReturn(statefulProvider);
Mockito.when(statefulProvider.getKey()).thenReturn(blackDuckProviderKey);
Mockito.when(statefulProvider.getConfigId()).thenReturn(providerConfigId);
Mockito.when(statefulProvider.isConfigEnabled()).thenReturn(true);
Mockito.when(statefulProvider.getConfigName()).thenReturn(providerConfigName);
Mockito.when(statefulProvider.getProperties()).thenReturn(properties);
Mockito.when(statefulProvider.getTasks()).thenReturn(List.of(blackDuckAccumulator, blackDuckDataSyncTask));
BlackDuckPropertiesFactory propertiesFactory = Mockito.mock(BlackDuckPropertiesFactory.class);
Mockito.when(propertiesFactory.createProperties((ConfigurationModel) Mockito.any())).thenReturn(properties);
ProviderDataAccessor providerDataAccessor = Mockito.mock(ProviderDataAccessor.class);
ConfigurationFieldModelConverter fieldModelConverter = Mockito.mock(ConfigurationFieldModelConverter.class);
Mockito.when(fieldModelConverter.convertToConfigurationModel(Mockito.any())).thenReturn(configurationModel);
BlackDuckCacheHttpClientCache blackDuckCacheHttpClientCache = Mockito.mock(BlackDuckCacheHttpClientCache.class);
ProviderSchedulingManager providerLifecycleManager = new ProviderSchedulingManager(List.of(blackDuckProvider), taskManager, null);
BlackDuckGlobalApiAction blackDuckGlobalApiAction = new BlackDuckGlobalApiAction(blackDuckProvider, providerLifecycleManager, providerDataAccessor, configurationModelConfigurationAccessor, blackDuckCacheHttpClientCache);
Optional<String> initialAccumulatorNextRunTime = taskManager.getNextRunTime(blackDuckAccumulator.getTaskName());
Optional<String> initialSyncNextRunTime = taskManager.getNextRunTime(blackDuckDataSyncTask.getTaskName());
assertTrue(initialAccumulatorNextRunTime.isEmpty());
assertTrue(initialSyncNextRunTime.isEmpty());
apiAction.apply(blackDuckGlobalApiAction, fieldModel);
Optional<String> accumulatorNextRunTime = taskManager.getNextRunTime(blackDuckAccumulator.getTaskName());
Optional<String> syncNextRunTime = taskManager.getNextRunTime(blackDuckDataSyncTask.getTaskName());
assertTrue(accumulatorNextRunTime.isPresent(), "The accumulator task next run time was not present");
assertTrue(syncNextRunTime.isPresent(), "The sync task next run time was not present");
}
use of com.synopsys.integration.alert.api.provider.state.StatefulProvider in project hub-alert by blackducksoftware.
the class ProviderSchedulingManager method initializeConfiguredProviders.
private List<ProviderTask> initializeConfiguredProviders(Provider provider, List<ConfigurationModel> providerConfigurations) {
List<ProviderTask> initializedTasks = new ArrayList<>();
for (ConfigurationModel providerConfig : providerConfigurations) {
try {
StatefulProvider statefulProvider = provider.createStatefulProvider(providerConfig);
if (statefulProvider.isConfigEnabled()) {
List<ProviderTask> initializedTasksForConfig = scheduleTasksForProviderConfig(provider, providerConfig);
initializedTasks.addAll(initializedTasksForConfig);
} else {
logger.debug("The provider configuration '{}' was disabled. No tasks will be scheduled for this config.", statefulProvider.getConfigName());
}
} catch (AlertException e) {
logger.error("Something went wrong while attempting to schedule provider tasks", e);
}
}
return initializedTasks;
}
use of com.synopsys.integration.alert.api.provider.state.StatefulProvider in project hub-alert by blackducksoftware.
the class SystemValidatorTest method testValidateHubValidProvider.
@Test
public void testValidateHubValidProvider() throws Exception {
ProxyManager proxyManager = Mockito.mock(ProxyManager.class);
Mockito.when(proxyManager.createProxyInfoForHost(Mockito.anyString())).thenReturn(ProxyInfo.NO_PROXY_INFO);
BlackDuckProperties blackDuckProperties = Mockito.mock(BlackDuckProperties.class);
Mockito.when(blackDuckProperties.getBlackDuckUrl()).thenReturn(Optional.of("https://alert.example.com:443/alert"));
Mockito.when(blackDuckProperties.getApiToken()).thenReturn("Test Api Key");
Mockito.when(blackDuckProperties.getBlackDuckTimeout()).thenReturn(BlackDuckProperties.DEFAULT_TIMEOUT);
BlackDuckServerConfig serverConfig = Mockito.mock(BlackDuckServerConfig.class);
Mockito.when(serverConfig.canConnect(Mockito.any(IntLogger.class))).thenReturn(true);
Mockito.when(blackDuckProperties.createBlackDuckServerConfig(Mockito.any(IntLogger.class))).thenReturn(serverConfig);
DefaultSystemMessageAccessor defaultSystemMessageUtility = Mockito.mock(DefaultSystemMessageAccessor.class);
StatefulProvider statefulProvider = Mockito.mock(StatefulProvider.class);
BlackDuckProvider provider = Mockito.mock(BlackDuckProvider.class);
Mockito.when(provider.createStatefulProvider(Mockito.any())).thenReturn(statefulProvider);
Mockito.when(statefulProvider.getProperties()).thenReturn(blackDuckProperties);
BlackDuckSystemValidator blackDuckSystemValidator = new BlackDuckSystemValidator(defaultSystemMessageUtility);
blackDuckSystemValidator.validate(blackDuckProperties);
Mockito.verify(defaultSystemMessageUtility, Mockito.times(0)).addSystemMessage(Mockito.anyString(), Mockito.any(SystemMessageSeverity.class), Mockito.any(SystemMessageType.class));
}
use of com.synopsys.integration.alert.api.provider.state.StatefulProvider in project hub-alert by blackducksoftware.
the class SystemValidatorTest method testValidateHubInvalidProvider.
@Test
public void testValidateHubInvalidProvider() throws Exception {
long configId = 1L;
ProxyManager proxyManager = Mockito.mock(ProxyManager.class);
Mockito.when(proxyManager.createProxyInfoForHost(Mockito.anyString())).thenReturn(ProxyInfo.NO_PROXY_INFO);
BlackDuckProperties blackDuckProperties = Mockito.mock(BlackDuckProperties.class);
Mockito.when(blackDuckProperties.getBlackDuckUrl()).thenReturn(Optional.of("https://localhost:443/alert"));
Mockito.when(blackDuckProperties.getApiToken()).thenReturn("Test Api Key");
Mockito.when(blackDuckProperties.getBlackDuckTimeout()).thenReturn(BlackDuckProperties.DEFAULT_TIMEOUT);
Mockito.when(blackDuckProperties.getConfigName()).thenReturn(DEFAULT_CONFIG_NAME);
Mockito.when(blackDuckProperties.getConfigId()).thenReturn(configId);
BlackDuckServerConfig serverConfig = Mockito.mock(BlackDuckServerConfig.class);
Mockito.when(serverConfig.canConnect(Mockito.any(IntLogger.class))).thenReturn(false);
Mockito.when(blackDuckProperties.createBlackDuckServerConfig(Mockito.any(IntLogger.class))).thenReturn(serverConfig);
DefaultSystemMessageAccessor defaultSystemMessageUtility = Mockito.mock(DefaultSystemMessageAccessor.class);
StatefulProvider statefulProvider = Mockito.mock(StatefulProvider.class);
BlackDuckProvider provider = Mockito.mock(BlackDuckProvider.class);
Mockito.when(provider.createStatefulProvider(Mockito.any())).thenReturn(statefulProvider);
Mockito.when(statefulProvider.getProperties()).thenReturn(blackDuckProperties);
String localhostMessageType = BlackDuckSystemValidator.createProviderSystemMessageType(blackDuckProperties, SystemMessageType.BLACKDUCK_PROVIDER_LOCALHOST);
String connectivityMessageType = BlackDuckSystemValidator.createProviderSystemMessageType(blackDuckProperties, SystemMessageType.BLACKDUCK_PROVIDER_CONNECTIVITY);
BlackDuckSystemValidator blackDuckSystemValidator = new BlackDuckSystemValidator(defaultSystemMessageUtility);
blackDuckSystemValidator.validate(blackDuckProperties);
Mockito.verify(defaultSystemMessageUtility).addSystemMessage(Mockito.eq(String.format(BlackDuckSystemValidator.BLACKDUCK_LOCALHOST_ERROR_FORMAT, DEFAULT_CONFIG_NAME)), Mockito.eq(SystemMessageSeverity.WARNING), Mockito.eq(localhostMessageType));
Mockito.verify(defaultSystemMessageUtility).addSystemMessage(Mockito.eq(String.format("Can not connect to the Black Duck server with the configuration '%s'.", DEFAULT_CONFIG_NAME)), Mockito.eq(SystemMessageSeverity.WARNING), Mockito.eq(connectivityMessageType));
}
Aggregations