use of com.sequenceiq.cloudbreak.dto.ProxyConfig in project cloudbreak by hortonworks.
the class ClouderaManagerSetupServiceTest method testConfigureManagementServicesWhenCManagerOperationFailedExceptionHappensThenShouldThrowCManagerOperationFailedException.
@Test
public void testConfigureManagementServicesWhenCManagerOperationFailedExceptionHappensThenShouldThrowCManagerOperationFailedException() throws Exception {
HostsResourceApi mockHostsResourceApi = mock(HostsResourceApi.class);
TemplatePreparationObject mockTemplatePreparationObject = mock(TemplatePreparationObject.class);
String mockSdxContext = JsonUtil.writeValueAsString(new ApiRemoteDataContext());
String mockSdxStackCrn = "mockSdxStackCrn";
Telemetry telemetry = mock(Telemetry.class);
ProxyConfig proxyConfig = mock(ProxyConfig.class);
ApiClient apiClient = mock(ApiClient.class);
ApiHostList apiHostList = mock(ApiHostList.class);
GeneralClusterConfigs generalClusterConfigs = mock(GeneralClusterConfigs.class);
CdpResourceApi cdpResourceApi = mock(CdpResourceApi.class);
ApiRemoteDataContext mockApiRemoteDataContext = mock(ApiRemoteDataContext.class);
when(mockHostsResourceApi.readHosts(null, null, DataView.SUMMARY.name())).thenReturn(apiHostList);
when(mockTemplatePreparationObject.getGeneralClusterConfigs()).thenReturn(generalClusterConfigs);
when(generalClusterConfigs.getPrimaryGatewayInstanceDiscoveryFQDN()).thenReturn(Optional.of("fqdn"));
when(apiHostList.getItems()).thenReturn(List.of(apiHost("fqdn")));
when(clouderaManagerApiClientProvider.getRootClient(any(Integer.class), anyString(), anyString(), any(HttpClientConfig.class))).thenReturn(apiClient);
when(clouderaManagerApiFactory.getHostsResourceApi(any(ApiClient.class))).thenReturn(mockHostsResourceApi);
when(clouderaManagerApiFactory.getCdpResourceApi(any(ApiClient.class))).thenReturn(cdpResourceApi);
when(cdpResourceApi.postRemoteContext(any(ApiRemoteDataContext.class))).thenReturn(mockApiRemoteDataContext);
when(mockApiRemoteDataContext.getEndPointId()).thenReturn("endpoint");
doThrow(new ClouderaManagerOperationFailedException("error")).when(mgmtSetupService).setupMgmtServices(any(Stack.class), any(ApiClient.class), any(ApiHostRef.class), any(Telemetry.class), anyString(), anyString(), any(ProxyConfig.class));
ClouderaManagerOperationFailedException actual = assertThrows(ClouderaManagerOperationFailedException.class, () -> underTest.configureManagementServices(mockTemplatePreparationObject, mockSdxContext, mockSdxStackCrn, telemetry, proxyConfig));
assertEquals(ClouderaManagerOperationFailedException.class, actual.getClass());
verify(mgmtSetupService, times(1)).setupMgmtServices(any(Stack.class), any(ApiClient.class), any(ApiHostRef.class), any(Telemetry.class), anyString(), anyString(), any(ProxyConfig.class));
}
use of com.sequenceiq.cloudbreak.dto.ProxyConfig in project cloudbreak by hortonworks.
the class ClouderaManagerSetupServiceTest method testConfigureManagementServicesWhenThePrimaryGatewayInstanceDiscoveryFQDNIsNOTPresentedOnCMSideShoudNOTCallSetupMgmtServices.
@Test
public void testConfigureManagementServicesWhenThePrimaryGatewayInstanceDiscoveryFQDNIsNOTPresentedOnCMSideShoudNOTCallSetupMgmtServices() throws Exception {
HostsResourceApi mockHostsResourceApi = mock(HostsResourceApi.class);
TemplatePreparationObject mockTemplatePreparationObject = mock(TemplatePreparationObject.class);
String mockSdxContext = JsonUtil.writeValueAsString(new ApiRemoteDataContext());
String mockSdxStackCrn = "mockSdxStackCrn";
Telemetry telemetry = mock(Telemetry.class);
ProxyConfig proxyConfig = mock(ProxyConfig.class);
ApiClient apiClient = mock(ApiClient.class);
ApiHostList apiHostList = mock(ApiHostList.class);
GeneralClusterConfigs generalClusterConfigs = mock(GeneralClusterConfigs.class);
CdpResourceApi cdpResourceApi = mock(CdpResourceApi.class);
ApiRemoteDataContext mockApiRemoteDataContext = mock(ApiRemoteDataContext.class);
when(mockHostsResourceApi.readHosts(null, null, DataView.SUMMARY.name())).thenReturn(apiHostList);
when(mockTemplatePreparationObject.getGeneralClusterConfigs()).thenReturn(generalClusterConfigs);
when(generalClusterConfigs.getPrimaryGatewayInstanceDiscoveryFQDN()).thenReturn(Optional.of("fqdn1"));
when(apiHostList.getItems()).thenReturn(List.of(apiHost("fqdn")));
when(clouderaManagerApiClientProvider.getRootClient(any(Integer.class), anyString(), anyString(), any(HttpClientConfig.class))).thenReturn(apiClient);
when(clouderaManagerApiFactory.getHostsResourceApi(any(ApiClient.class))).thenReturn(mockHostsResourceApi);
when(clouderaManagerApiFactory.getCdpResourceApi(any(ApiClient.class))).thenReturn(cdpResourceApi);
when(cdpResourceApi.postRemoteContext(any(ApiRemoteDataContext.class))).thenReturn(mockApiRemoteDataContext);
when(mockApiRemoteDataContext.getEndPointId()).thenReturn("endpoint");
underTest.configureManagementServices(mockTemplatePreparationObject, mockSdxContext, mockSdxStackCrn, telemetry, proxyConfig);
verify(mgmtSetupService, times(0)).setupMgmtServices(any(Stack.class), any(ApiClient.class), any(ApiHostRef.class), any(Telemetry.class), anyString(), anyString(), any(ProxyConfig.class));
}
use of com.sequenceiq.cloudbreak.dto.ProxyConfig in project cloudbreak by hortonworks.
the class UserDataService method createUserData.
public void createUserData(Long stackId) throws CloudbreakImageNotFoundException {
Stack stack = stackService.getByIdWithLists(stackId);
String userCrn = ThreadBasedUserCrnProvider.getUserCrn();
Future<PlatformParameters> platformParametersFuture = intermediateBuilderExecutor.submit(() -> connector.getPlatformParameters(stack, userCrn));
SecurityConfig securityConfig = securityConfigService.generateAndSaveSecurityConfig(stack);
stack.setSecurityConfig(securityConfig);
stackService.save(stack);
SaltSecurityConfig saltSecurityConfig = securityConfig.getSaltSecurityConfig();
String cbPrivKey = saltSecurityConfig.getSaltBootSignPrivateKey();
byte[] cbSshKeyDer = PkiUtil.getPublicKeyDer(new String(Base64.decodeBase64(cbPrivKey)));
String sshUser = stack.getStackAuthentication().getLoginUserName();
String cbCert = securityConfig.getClientCert();
String saltBootPassword = saltSecurityConfig.getSaltBootPassword();
try {
PlatformParameters platformParameters = platformParametersFuture.get();
CcmConnectivityParameters ccmParameters = ccmUserDataService.fetchAndSaveCcmParameters(stack);
Optional<ProxyConfig> proxyConfig = proxyConfigDtoService.getByEnvironmentCrn(stack.getEnvironmentCrn());
Map<InstanceGroupType, String> userData = userDataBuilder.buildUserData(Platform.platform(stack.getCloudPlatform()), cbSshKeyDer, sshUser, platformParameters, saltBootPassword, cbCert, ccmParameters, proxyConfig.orElse(null));
imageService.decorateImageWithUserDataForStack(stack, userData);
} catch (InterruptedException | ExecutionException e) {
LOGGER.error("Failed to get Platform parmaters", e);
throw new GetCloudParameterException("Failed to get Platform parmaters", e);
}
}
use of com.sequenceiq.cloudbreak.dto.ProxyConfig in project cloudbreak by hortonworks.
the class ClusterBuilderService method configureManagementServices.
public void configureManagementServices(Long stackId) {
Stack stack = stackService.getByIdWithListsInTransaction(stackId);
Optional<ProxyConfig> proxyConfig = proxyConfigDtoService.getByCrnWithEnvironmentFallback(stack.getCluster().getProxyConfigCrn(), stack.getCluster().getEnvironmentCrn());
getClusterSetupService(stack).configureManagementServices(stackToTemplatePreparationObjectConverter.convert(stack), getSdxContextOptional(stack.getDatalakeCrn()).orElse(null), stack.getDatalakeCrn(), componentConfigProviderService.getTelemetry(stackId), proxyConfig.orElse(null));
}
use of com.sequenceiq.cloudbreak.dto.ProxyConfig in project cloudbreak by hortonworks.
the class ClusterBuilderService method prepareProxyConfig.
public void prepareProxyConfig(Long stackId) {
Stack stack = stackService.getByIdWithListsInTransaction(stackId);
Optional<ProxyConfig> proxyConfig = proxyConfigDtoService.getByCrnWithEnvironmentFallback(stack.getCluster().getProxyConfigCrn(), stack.getCluster().getEnvironmentCrn());
if (proxyConfig.isPresent()) {
LOGGER.info("proxyConfig is not null, setup proxy for cluster: {}", proxyConfig);
getClusterSetupService(stack).setupProxy(proxyConfig.orElse(null));
} else {
LOGGER.info("proxyConfig was not found by proxyConfigCrn");
}
}
Aggregations