use of com.sequenceiq.cloudbreak.domain.KerberosConfig in project cloudbreak by hortonworks.
the class KerberosConfigToKerberosRequestConverterTest method testExistingMit.
@Test
public void testExistingMit() {
KerberosConfig config = new KerberosConfig();
config.setType(KerberosType.EXISTING_MIT);
config.setPassword("");
config.setPrincipal("");
config.setUrl("");
config.setAdminUrl("");
config.setRealm("");
config.setTcpAllowed(true);
KerberosRequest request = underTest.convert(config);
assertAllFieldsNotNull(request, Lists.newArrayList("admin", "ldapUrl", "containerDn", "descriptor", "krb5Conf", "masterKey"));
}
use of com.sequenceiq.cloudbreak.domain.KerberosConfig in project cloudbreak by hortonworks.
the class ClusterHostServiceRunner method createSaltConfig.
private SaltConfig createSaltConfig(Stack stack, Cluster cluster, GatewayConfig primaryGatewayConfig, Iterable<GatewayConfig> gatewayConfigs) throws IOException, CloudbreakOrchestratorException {
Map<String, SaltPillarProperties> servicePillar = new HashMap<>();
saveDatalakeNameservers(stack, servicePillar);
saveSharedRangerService(stack, servicePillar);
if (cluster.isSecure() && kerberosDetailService.isAmbariManagedKerberosPackages(cluster.getKerberosConfig())) {
Map<String, String> kerberosPillarConf = new HashMap<>();
KerberosConfig kerberosConfig = cluster.getKerberosConfig();
putIfNotNull(kerberosPillarConf, kerberosConfig.getMasterKey(), "masterKey");
putIfNotNull(kerberosPillarConf, kerberosConfig.getAdmin(), "user");
putIfNotNull(kerberosPillarConf, kerberosConfig.getPassword(), "password");
if (StringUtils.isEmpty(kerberosConfig.getDescriptor())) {
putIfNotNull(kerberosPillarConf, kerberosConfig.getUrl(), "url");
putIfNotNull(kerberosPillarConf, kerberosConfig.getAdminUrl(), "adminUrl");
putIfNotNull(kerberosPillarConf, kerberosConfig.getRealm(), "realm");
} else {
Map<String, Object> properties = kerberosDetailService.getKerberosEnvProperties(kerberosConfig);
putIfNotNull(kerberosPillarConf, properties.get("kdc_hosts"), "url");
putIfNotNull(kerberosPillarConf, properties.get("admin_server_host"), "adminUrl");
putIfNotNull(kerberosPillarConf, properties.get("realm"), "realm");
}
putIfNotNull(kerberosPillarConf, cluster.getUserName(), "clusterUser");
putIfNotNull(kerberosPillarConf, cluster.getPassword(), "clusterPassword");
servicePillar.put("kerberos", new SaltPillarProperties("/kerberos/init.sls", singletonMap("kerberos", kerberosPillarConf)));
}
servicePillar.put("discovery", new SaltPillarProperties("/discovery/init.sls", singletonMap("platform", stack.cloudPlatform())));
servicePillar.put("metadata", new SaltPillarProperties("/metadata/init.sls", singletonMap("cluster", singletonMap("name", stack.getCluster().getName()))));
saveGatewayPillar(primaryGatewayConfig, cluster, servicePillar);
AmbariRepo ambariRepo = clusterComponentConfigProvider.getAmbariRepo(cluster.getId());
if (ambariRepo != null) {
servicePillar.put("ambari-repo", new SaltPillarProperties("/ambari/repo.sls", singletonMap("ambari", singletonMap("repo", ambariRepo))));
}
servicePillar.put("ambari-gpl-repo", new SaltPillarProperties("/ambari/gpl.sls", singletonMap("ambari", singletonMap("gpl", singletonMap("enabled", clusterComponentConfigProvider.getHDPRepo(cluster.getId()).isEnableGplRepo())))));
decoratePillarWithAmbariDatabase(cluster, servicePillar);
saveLdapPillar(cluster.getLdapConfig(), servicePillar);
saveDockerPillar(cluster.getExecutorType(), servicePillar);
saveHDPPillar(cluster.getId(), servicePillar);
Map<String, Object> credentials = new HashMap<>();
credentials.put("username", ambariSecurityConfigProvider.getAmbariUserName(stack.getCluster()));
credentials.put("password", ambariSecurityConfigProvider.getAmbariPassword(stack.getCluster()));
credentials.put("securityMasterKey", ambariSecurityConfigProvider.getAmbariSecurityMasterKey(cluster));
servicePillar.put("ambari-credentials", new SaltPillarProperties("/ambari/credentials.sls", singletonMap("ambari", credentials)));
if (smartSenseCredentialConfigService.areCredentialsSpecified()) {
Map<String, Object> smartSenseCredentials = smartSenseCredentialConfigService.getCredentials();
servicePillar.put("smartsense-credentials", new SaltPillarProperties("/smartsense/credentials.sls", smartSenseCredentials));
}
postgresConfigService.decorateServicePillarWithPostgresIfNeeded(servicePillar, stack, cluster);
proxyConfigProvider.decoratePillarWithProxyDataIfNeeded(servicePillar, cluster);
return new SaltConfig(servicePillar, createGrainProperties(gatewayConfigs));
}
use of com.sequenceiq.cloudbreak.domain.KerberosConfig in project cloudbreak by hortonworks.
the class ClusterRequestToClusterConverter method convert.
@Override
public Cluster convert(ClusterRequest source) {
Cluster cluster = new Cluster();
cluster.setName(source.getName());
cluster.setStatus(REQUESTED);
cluster.setDescription(source.getDescription());
cluster.setEmailNeeded(source.getEmailNeeded());
cluster.setUserName(source.getUserName());
cluster.setPassword(source.getPassword());
cluster.setExecutorType(source.getExecutorType());
Boolean enableSecurity = source.getEnableSecurity();
cluster.setSecure(enableSecurity == null ? Boolean.FALSE : enableSecurity);
convertKnox(source, cluster);
if (source.getKerberos() != null) {
KerberosConfig kerberosConfig = getConversionService().convert(source.getKerberos(), KerberosConfig.class);
cluster.setKerberosConfig(kerberosConfig);
}
cluster.setConfigStrategy(source.getConfigStrategy());
cluster.setEmailTo(source.getEmailTo());
FileSystemBase fileSystem = source.getFileSystem();
cluster.setCloudbreakAmbariPassword(PasswordUtil.generatePassword());
cluster.setCloudbreakAmbariUser("cloudbreak");
convertAttributes(source, cluster);
if (fileSystem != null) {
cluster.setFileSystem(getConversionService().convert(fileSystem, FileSystem.class));
}
Map<String, String> inputs = source.getBlueprintInputs() == null ? Collections.emptyMap() : convertBlueprintInputJsons(source.getBlueprintInputs());
try {
cluster.setBlueprintInputs(new Json(inputs));
if (source.getBlueprintCustomProperties() != null) {
cluster.setBlueprintCustomProperties(source.getBlueprintCustomProperties());
} else {
cluster.setBlueprintCustomProperties(null);
}
} catch (JsonProcessingException ignored) {
cluster.setBlueprintInputs(null);
}
try {
Json json = new Json(convertContainerConfigs(source.getCustomContainer()));
cluster.setCustomContainerDefinition(json);
} catch (JsonProcessingException ignored) {
cluster.setCustomContainerDefinition(null);
}
cluster.setAmbariSecurityMasterKey(source.getAmbariSecurityMasterKey());
return cluster;
}
use of com.sequenceiq.cloudbreak.domain.KerberosConfig in project cloudbreak by hortonworks.
the class ClusterToClusterResponseConverter method convert.
protected <R extends ClusterResponse> R convert(Cluster source, Class<R> clazz) throws IllegalAccessException, InstantiationException {
R clusterResponse = clazz.newInstance();
clusterResponse.setId(source.getId());
clusterResponse.setName(source.getName());
clusterResponse.setStatus(source.getStatus());
clusterResponse.setStatusReason(source.getStatusReason());
if (source.getBlueprint() != null) {
clusterResponse.setBlueprintId(source.getBlueprint().getId());
}
long uptime = stackUtil.getUptimeForCluster(source, source.isAvailable());
int minutes = (int) ((uptime / (MILLIS_PER_SECOND * SECONDS_PER_MINUTE)) % SECONDS_PER_MINUTE);
int hours = (int) (uptime / (MILLIS_PER_SECOND * SECONDS_PER_MINUTE * SECONDS_PER_MINUTE));
clusterResponse.setUptime(uptime);
clusterResponse.setHoursUp(hours);
clusterResponse.setMinutesUp(minutes);
Set<RDSConfig> rdsConfigs = source.getRdsConfigs();
convertRdsIds(clusterResponse, rdsConfigs);
if (source.getLdapConfig() != null) {
clusterResponse.setLdapConfigId(source.getLdapConfig().getId());
}
if (source.getAttributes() != null) {
clusterResponse.setAttributes(source.getAttributes().getMap());
}
String ambariIp = stackUtil.extractAmbariIp(source.getStack());
clusterResponse.setAmbariServerIp(ambariIp);
clusterResponse.setUserName(source.getUserName());
clusterResponse.setExecutorType(source.getExecutorType());
clusterResponse.setDescription(source.getDescription() == null ? "" : source.getDescription());
clusterResponse.setExtendedBlueprintText(source.getExtendedBlueprintText() == null ? source.getBlueprint().getBlueprintText() : source.getExtendedBlueprintText());
clusterResponse.setHostGroups(convertHostGroupsToJson(source.getHostGroups()));
clusterResponse.setAmbariServerUrl(getAmbariServerUrl(source, ambariIp));
clusterResponse.setServiceEndPoints(prepareServiceEndpointsMap(source, ambariIp));
clusterResponse.setBlueprintInputs(convertBlueprintInputs(source.getBlueprintInputs()));
clusterResponse.setConfigStrategy(source.getConfigStrategy());
setExtendedBlueprintText(source, clusterResponse);
clusterResponse.setLdapConfig(getConversionService().convert(source.getLdapConfig(), LdapConfigResponse.class));
convertRdsConfigs(source, clusterResponse);
clusterResponse.setBlueprint(getConversionService().convert(source.getBlueprint(), BlueprintResponse.class));
convertKnox(source, clusterResponse);
convertCustomQueue(source, clusterResponse);
if (source.getBlueprintCustomProperties() != null) {
clusterResponse.setBlueprintCustomProperties(jsonHelper.createJsonFromString(source.getBlueprintCustomProperties()));
}
convertContainerConfig(source, clusterResponse);
convertComponentConfig(clusterResponse, source);
clusterResponse.setCreationFinished(source.getCreationFinished());
KerberosConfig kerberosConfig = source.getKerberosConfig();
if (source.isSecure() && kerberosConfig != null) {
clusterResponse.setSecure(source.isSecure());
clusterResponse.setKerberosResponse(getConversionService().convert(source.getKerberosConfig(), KerberosResponse.class));
}
decorateResponseWithProxyConfig(source, clusterResponse);
return clusterResponse;
}
use of com.sequenceiq.cloudbreak.domain.KerberosConfig in project cloudbreak by hortonworks.
the class AmbariClusterService method cleanupKerberosCredential.
@Override
public void cleanupKerberosCredential(Cluster cluster) {
if (cluster.isSecure() && cluster.getKerberosConfig() != null) {
KerberosConfig kerberosConfig = cluster.getKerberosConfig();
kerberosConfig.setPassword(null);
kerberosConfig.setPrincipal(null);
kerberosConfigRepository.save(kerberosConfig);
}
}
Aggregations