use of com.sequenceiq.cloudbreak.domain.view.RdsConfigWithoutCluster in project cloudbreak by hortonworks.
the class ClusterHostServiceRunner method decoratePillarWithJdbcConnectors.
private void decoratePillarWithJdbcConnectors(Cluster cluster, Map<String, SaltPillarProperties> servicePillar) {
Set<RdsConfigWithoutCluster> rdsConfigs = rdsConfigWithoutClusterService.findByClusterId(cluster.getId());
Map<String, Object> connectorJarUrlsByVendor = new HashMap<>();
rdsConfigs.stream().filter(rds -> isNotEmpty(rds.getConnectorJarUrl())).forEach(rdsConfig -> {
connectorJarUrlsByVendor.put("databaseType", rdsConfig.getDatabaseEngine().databaseType());
connectorJarUrlsByVendor.put("connectorJarUrl", rdsConfig.getConnectorJarUrl());
connectorJarUrlsByVendor.put("connectorJarName", rdsConfig.getDatabaseEngine().connectorJarName());
});
if (!connectorJarUrlsByVendor.isEmpty()) {
Map<String, Object> jdbcConnectors = singletonMap("jdbc_connectors", connectorJarUrlsByVendor);
servicePillar.put("jdbc-connectors", new SaltPillarProperties("/jdbc/connectors.sls", jdbcConnectors));
}
}
use of com.sequenceiq.cloudbreak.domain.view.RdsConfigWithoutCluster in project cloudbreak by hortonworks.
the class ClusterHostServiceRunnerTest method setupMocksForRunClusterServices.
private void setupMocksForRunClusterServices() {
when(umsClient.getAccountDetails(any(), any(), any())).thenReturn(UserManagementProto.Account.getDefaultInstance());
when(stackService.get(any())).thenReturn(stack);
when(stack.getCluster()).thenReturn(cluster);
when(stack.getTunnel()).thenReturn(Tunnel.DIRECT);
when(stack.getCloudPlatform()).thenReturn(CloudPlatform.AWS.name());
when(stack.getResourceCrn()).thenReturn(TEST_CLUSTER_CRN);
when(cluster.getName()).thenReturn("clustername");
when(cluster.getStack()).thenReturn(stack);
when(componentLocator.getComponentLocation(any(), any())).thenReturn(new HashMap<>());
when(exposedServiceCollector.getImpalaService()).thenReturn(mock(ExposedService.class));
when(environmentConfigProvider.getParentEnvironmentCrn(any())).thenReturn("crn:cdp:iam:us-west-1:accid:user:mockuser@cloudera.com");
ClouderaManagerRepo clouderaManagerRepo = mock(ClouderaManagerRepo.class);
when(clouderaManagerRepo.getVersion()).thenReturn("7.2.2");
GatewayConfig gatewayConfig = mock(GatewayConfig.class);
when(gatewayConfig.getPrivateAddress()).thenReturn("1.2.3.4");
when(gatewayConfig.getHostname()).thenReturn("hostname");
when(gatewayConfigService.getPrimaryGatewayConfig(any())).thenReturn(gatewayConfig);
when(clusterComponentConfigProvider.getClouderaManagerRepoDetails(any())).thenReturn(clouderaManagerRepo);
when(exposedServiceCollector.getRangerService()).thenReturn(mock(ExposedService.class));
ExposedService cmExposedService = mock(ExposedService.class);
when(cmExposedService.getServiceName()).thenReturn("CM");
when(exposedServiceCollector.getClouderaManagerService()).thenReturn(cmExposedService);
Template template = new Template();
template.setTemporaryStorage(TemporaryStorage.EPHEMERAL_VOLUMES);
Set<InstanceGroup> instanceGroups = new HashSet<>();
createInstanceGroup(template, instanceGroups, "fqdn1", null, "1.1.1.1", "1.1.1.2");
createInstanceGroup(template, instanceGroups, "fqdn2", null, "1.1.2.1", "1.1.2.2");
InstanceGroup gwIg = createInstanceGroup(template, instanceGroups, "gateway1", "gateway2", "1.1.3.1", "1.1.3.2");
lenient().when(stack.getNotTerminatedAndNotZombieGatewayInstanceMetadata()).thenReturn(Lists.newArrayList(gwIg.getAllInstanceMetaData()));
when(stack.getInstanceGroups()).thenReturn(instanceGroups);
RdsConfigWithoutCluster rdsConfigWithoutCluster = mock(RdsConfigWithoutCluster.class);
when(rdsConfigWithoutClusterService.findByClusterIdAndType(any(), eq(DatabaseType.CLOUDERA_MANAGER))).thenReturn(rdsConfigWithoutCluster);
when(rdsConfigWithoutCluster.getType()).thenReturn("asdf");
when(rdsConfigWithoutCluster.getConnectionURL()).thenReturn("jdbc:postgresql:subname://some-rds.1d3nt1f13r.eu-west-1.rds.amazonaws.com:5432/ranger");
when(rdsConfigWithoutCluster.getConnectionUserName()).thenReturn(new Secret("username"));
when(rdsConfigWithoutCluster.getConnectionPassword()).thenReturn(new Secret("password"));
when(loadBalancerSANProvider.getLoadBalancerSAN(stack)).thenReturn(Optional.empty());
ClusterPreCreationApi clusterPreCreationApi = mock(ClusterPreCreationApi.class);
when(clusterApiConnectors.getConnector(cluster)).thenReturn(clusterPreCreationApi);
ServiceLocationMap serviceLocationMap = new ServiceLocationMap();
serviceLocationMap.add(new ServiceLocation("serv", "paath"));
when(clusterPreCreationApi.getServiceLocations()).thenReturn(serviceLocationMap);
ReflectionTestUtils.setField(underTest, "cmHeartbeatInterval", "1");
ReflectionTestUtils.setField(underTest, "cmMissedHeartbeatInterval", "1");
}
use of com.sequenceiq.cloudbreak.domain.view.RdsConfigWithoutCluster in project cloudbreak by hortonworks.
the class RdsViewTest method testCreateRdsViewWithRdsViewWithoutCluster.
@Test
public void testCreateRdsViewWithRdsViewWithoutCluster() {
RdsConfigWithoutCluster rdsView = Mockito.mock(RdsConfigWithoutCluster.class);
when(rdsView.isArchived()).thenReturn(true);
when(rdsView.getConnectionDriver()).thenReturn("driver");
when(rdsView.getConnectionURL()).thenReturn("jdbc:mysql://ranger-mysql.cmseikcocinw.us-east-1.rds.amazonaws.com:3306/ranger");
when(rdsView.getConnectionPassword()).thenReturn(new Secret("pass"));
when(rdsView.getConnectionUserName()).thenReturn(new Secret("username"));
when(rdsView.getConnectorJarUrl()).thenReturn("jarurl");
when(rdsView.getCreationDate()).thenReturn(1L);
when(rdsView.getDatabaseEngine()).thenReturn(DatabaseVendor.MYSQL);
when(rdsView.getDeletionTimestamp()).thenReturn(2L);
when(rdsView.getDescription()).thenReturn("desc");
when(rdsView.getId()).thenReturn(-1L);
when(rdsView.getName()).thenReturn("name");
when(rdsView.getSslMode()).thenReturn(RdsSslMode.ENABLED);
when(rdsView.getType()).thenReturn("type");
RdsView underTest = new RdsView(rdsView, "ssl-path");
assertThat(underTest.getClusterManagerVendor()).isEqualTo("mysql");
assertThat(underTest.getConnectionString()).isEqualTo("jdbc:mysql://ranger-mysql.cmseikcocinw.us-east-1.rds.amazonaws.com:3306/ranger?sslmode=verify-full&sslrootcert=ssl-path");
assertThat(underTest.getConnectionUserName()).isEqualTo("username");
assertThat(underTest.getHostWithPortWithJdbc()).isEqualTo("jdbc:mysql://ranger-mysql.cmseikcocinw.us-east-1.rds.amazonaws.com:3306");
assertThat(underTest.getHost()).isEqualTo("ranger-mysql.cmseikcocinw.us-east-1.rds.amazonaws.com");
assertThat(underTest.getConnectionDriver()).isEqualTo("driver");
assertThat(underTest.getConnectionPassword()).isEqualTo("pass");
assertThat(underTest.getConnectionURL()).isEqualTo("jdbc:mysql://ranger-mysql.cmseikcocinw.us-east-1.rds.amazonaws.com:3306/ranger?sslmode=verify-full&sslrootcert=ssl-path");
assertThat(underTest.getDatabaseEngine()).isEqualTo("mysql");
assertThat(underTest.getDatabaseType()).isEqualTo("mysql");
assertThat(underTest.getDatabaseVendor()).isEqualTo(DatabaseVendor.MYSQL);
assertThat(underTest.getDatabaseName()).isEqualTo("ranger");
assertThat(underTest.getFancyName()).isEqualTo("MySQL / MariaDB");
assertThat(underTest.getLowerCaseDatabaseEngine()).isEqualTo("mysql");
assertThat(underTest.getName()).isEqualTo("ranger");
assertThat(underTest.getPassword()).isEqualTo("pass");
assertThat(underTest.getPort()).isEqualTo("3306");
assertThat(underTest.getSslCertificateFilePath()).isEqualTo("ssl-path");
assertThat(underTest.getSubprotocol()).isEqualTo("mysql");
assertThat(underTest.getUserName()).isEqualTo("username");
assertThat(underTest.getVendor()).isEqualTo("mysql");
assertThat(underTest.getWithoutJDBCPrefix()).isEqualTo("ranger-mysql.cmseikcocinw.us-east-1.rds.amazonaws.com:3306/ranger?sslmode=verify-full&sslrootcert=ssl-path");
assertThat(underTest.isUseSsl()).isEqualTo(true);
}
use of com.sequenceiq.cloudbreak.domain.view.RdsConfigWithoutCluster in project cloudbreak by hortonworks.
the class ClusterDBValidationServiceTest method createRdsConfig.
private RdsConfigWithoutCluster createRdsConfig(Long id, ResourceStatus resourceStatus, DatabaseType databaseType) {
RdsConfigWithoutCluster rdsConfig = mock(RdsConfigWithoutCluster.class);
when(rdsConfig.getId()).thenReturn(id);
when(rdsConfig.getStatus()).thenReturn(resourceStatus);
when(rdsConfig.getType()).thenReturn(databaseType.name());
return rdsConfig;
}
use of com.sequenceiq.cloudbreak.domain.view.RdsConfigWithoutCluster in project cloudbreak by hortonworks.
the class ClusterDBValidationServiceTest method testIsGatewayRepairEnabledWhenUserManagedRdsConfigsAreGiven.
@Test
public void testIsGatewayRepairEnabledWhenUserManagedRdsConfigsAreGiven() {
// GIVEN
Cluster cluster = new Cluster();
cluster.setId(0L);
cluster.setEmbeddedDatabaseOnAttachedDisk(false);
// Set<RdsConfigWithoutCluster> rdsConfigs = Set.of(createRdsConfig(0L, ResourceStatus.USER_MANAGED, DatabaseType.CLOUDERA_MANAGER),
// createRdsConfig(1L, ResourceStatus.USER_MANAGED, DatabaseType.CLOUDERA_MANAGER_MANAGEMENT_SERVICE_REPORTS_MANAGER));
when(rdsConfigWithoutClusterService.countByClusterIdAndStatusInAndTypeIn(0L, Set.of(ResourceStatus.USER_MANAGED), Set.of(DatabaseType.CLOUDERA_MANAGER, DatabaseType.CLOUDERA_MANAGER_MANAGEMENT_SERVICE_REPORTS_MANAGER))).thenReturn(2L);
// WHEN
Boolean actualResult = underTest.isGatewayRepairEnabled(cluster);
// THEN
Assertions.assertTrue(actualResult);
}
Aggregations