use of com.sequenceiq.cloudbreak.domain.Cluster in project cloudbreak by hortonworks.
the class BlueprintTemplateProcessorTest method testMustacheGeneratorForDruidRDS.
@Test
public void testMustacheGeneratorForDruidRDS() throws Exception {
String testBlueprint = FileReaderUtils.readFileFromClasspath("blueprints-jackson/bp-mustache-test.bp");
Cluster cluster = cluster();
BlueprintStackInfo blueprintStackInfo = new BlueprintStackInfo("hdp", "2.4");
BlueprintPreparationObject blueprintPreparationObject = BlueprintPreparationObject.Builder.builder().withRdsConfigs(cluster.getRdsConfigs()).withGateway(cluster.getGateway()).withLdapConfig(cluster.getLdapConfig()).withGeneralClusterConfigs(generalClusterConfigs()).withBlueprintView(new BlueprintView(testBlueprint, blueprintStackInfo.getVersion(), blueprintStackInfo.getType())).build();
String result = underTest.process(testBlueprint, blueprintPreparationObject, Maps.newHashMap());
assertTrue(result.contains("\"druid.metadata.storage.type\": \"postgresql\""));
assertTrue(result.contains("\"druid.metadata.storage.connector.connectURI\": \"jdbc:postgresql://10.1.1.1:5432/druid\""));
assertTrue(result.contains("\"druid.metadata.storage.connector.user\": \"heyitsme\""));
assertTrue(result.contains("\"druid.metadata.storage.connector.password\": \"iamsoosecure\""));
}
use of com.sequenceiq.cloudbreak.domain.Cluster in project cloudbreak by hortonworks.
the class BlueprintTemplateProcessorTest method testMustacheGeneratorWithSimpleUseCase.
@Test
public void testMustacheGeneratorWithSimpleUseCase() throws Exception {
String testBlueprint = FileReaderUtils.readFileFromClasspath("blueprints-jackson/bp-mustache-test.bp");
Cluster cluster = cluster();
BlueprintStackInfo blueprintStackInfo = new BlueprintStackInfo("hdp", "2.4");
GeneralClusterConfigs generalClusterConfigs = generalClusterConfigs();
generalClusterConfigs.setClusterName("dummyCluster");
generalClusterConfigs.setStackName("dummyCluster");
Map<String, Object> properties = new HashMap<>();
properties.put("S3_BUCKET", "testbucket");
BlueprintPreparationObject blueprintPreparationObject = BlueprintPreparationObject.Builder.builder().withRdsConfigs(cluster.getRdsConfigs()).withGateway(cluster.getGateway()).withLdapConfig(cluster.getLdapConfig()).withGeneralClusterConfigs(generalClusterConfigs).withBlueprintView(new BlueprintView(testBlueprint, new Json(properties), blueprintStackInfo.getVersion(), blueprintStackInfo.getType())).build();
String result = underTest.process(testBlueprint, blueprintPreparationObject, Maps.newHashMap());
assertTrue(result.contains("testbucket"));
assertTrue(result.contains("{{ zookeeper_quorum }}"));
assertTrue(result.contains("{{default('/configurations/hadoop-env/hdfs_log_dir_prefix', '/var/log/hadoop')}}"));
assertTrue(result.contains(cluster.getName()));
assertTrue(result.contains("jdbc:postgresql://10.1.1.1:5432/ranger"));
assertTrue(result.contains("cn=users,dc=example,dc=org"));
assertTrue(result.contains("ldap://localhost:389"));
}
use of com.sequenceiq.cloudbreak.domain.Cluster in project cloudbreak by hortonworks.
the class BlueprintTemplateProcessorTest method testMustacheGeneratorForCustomRDSType.
@Test
public void testMustacheGeneratorForCustomRDSType() throws Exception {
String testBlueprint = FileReaderUtils.readFileFromClasspath("blueprints-jackson/bp-mustache-test.bp");
Cluster cluster = cluster();
cluster.getRdsConfigs().add(rdsConfig("customRds"));
BlueprintStackInfo blueprintStackInfo = new BlueprintStackInfo("hdp", "2.4");
BlueprintPreparationObject blueprintPreparationObject = BlueprintPreparationObject.Builder.builder().withBlueprintView(new BlueprintView(testBlueprint, blueprintStackInfo.getVersion(), blueprintStackInfo.getType())).withRdsConfigs(cluster.getRdsConfigs()).withGeneralClusterConfigs(generalClusterConfigs(cluster)).build();
String result = underTest.process(testBlueprint, blueprintPreparationObject, Maps.newHashMap());
assertTrue(result.contains("\"custom.metadata.storage.type\": \"postgresql\""));
assertTrue(result.contains("\"custom.metadata.storage.engine\": \"postgres\""));
assertTrue(result.contains("\"custom.metadata.storage.connector.connectURI\": \"jdbc:postgresql://10.1.1.1:5432/customRds\""));
assertTrue(result.contains("\"custom.metadata.storage.connector.host\": \"10.1.1.1\""));
assertTrue(result.contains("\"custom.metadata.storage.connector.connectionHost\": \"10.1.1.1:5432\""));
assertTrue(result.contains("\"custom.metadata.storage.connector.user\": \"heyitsme\""));
assertTrue(result.contains("\"custom.metadata.storage.connector.password\": \"iamsoosecure\""));
assertTrue(result.contains("\"custom.metadata.storage.connector.databasename\": \"customRds\""));
}
use of com.sequenceiq.cloudbreak.domain.Cluster in project cloudbreak by hortonworks.
the class BlueprintTemplateProcessorTest method cluster.
private Cluster cluster() {
Cluster cluster = TestUtil.cluster();
Set<RDSConfig> rdsConfigSet = new HashSet<>();
rdsConfigSet.add(rdsConfig(RdsType.DRUID.name().toLowerCase()));
RDSConfig hiveRds = rdsConfig(RdsType.HIVE.name().toLowerCase());
rdsConfigSet.add(hiveRds);
rdsConfigSet.add(rdsConfig(RdsType.RANGER.name().toLowerCase()));
cluster.setRdsConfigs(rdsConfigSet);
Map<String, String> inputs = new HashMap<>();
inputs.put("S3_BUCKET", "testbucket");
try {
cluster.setBlueprintInputs(new Json(inputs));
} catch (JsonProcessingException ignored) {
cluster.setBlueprintInputs(null);
}
return cluster;
}
use of com.sequenceiq.cloudbreak.domain.Cluster in project cloudbreak by hortonworks.
the class BlueprintValidatorTest method testKnoxWithKerberosAndNonGwHasKnox.
@Test
public void testKnoxWithKerberosAndNonGwHasKnox() throws IOException {
// GIVEN
Blueprint blueprint = createBlueprint();
Set<InstanceGroup> instanceGroups = new HashSet<>();
instanceGroups.add(createInstanceGroup("gateway1", 1, InstanceGroupType.GATEWAY));
instanceGroups.add(createInstanceGroup("gateway2", 1, InstanceGroupType.GATEWAY));
instanceGroups.add(createInstanceGroup("master", 1, InstanceGroupType.CORE));
Set<HostGroup> hostGroups = createHostGroups(instanceGroups);
JsonNodeFactory jsonNodeFactory = JsonNodeFactory.instance;
ObjectNode rootNode = jsonNodeFactory.objectNode();
ArrayNode hostGroupsNode = rootNode.putArray("host_groups");
addHostGroup(hostGroupsNode, "gateway1", SL_MIN0_MAX3, MA_MIN1_MAX3);
addHostGroup(hostGroupsNode, "gateway2", SL_MIN0_MAX3, MA_MIN1_MAX3);
addHostGroup(hostGroupsNode, "master", SL_MIN0_MAX3, KNOX);
BDDMockito.given(objectMapper.readTree(BLUEPRINT_STRING)).willReturn(rootNode);
Cluster cluster = new Cluster();
cluster.setSecure(true);
Gateway gateway = new Gateway();
gateway.setEnableGateway(true);
cluster.setGateway(gateway);
thrown.expect(BlueprintValidationException.class);
thrown.expectMessage("In case of Knox and Kerberos each 'Ambari Server' node must include the 'KNOX_GATEWAY' service. " + "The following host groups are missing the service: gateway1,gateway2");
// WHEN
underTest.validateBlueprintForStack(cluster, blueprint, hostGroups, instanceGroups);
// THEN exception thrown
}
Aggregations