package com.sequenceiq.cloudbreak.service.cluster.flow.blueprint; import com.sequenceiq.cloudbreak.domain.Cluster; import com.sequenceiq.cloudbreak.domain.Stack; import com.sequenceiq.cloudbreak.service.user.UserDetailsService; import com.sequenceiq.cloudbreak.service.user.UserFilterField; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.inject.Inject; import java.util.ArrayList; import java.util.List; @Component public class DruidSupersetConfigProvider { private static final Logger LOGGER = LoggerFactory.getLogger(DruidSupersetConfigProvider.class); @Inject private BlueprintProcessor blueprintProcessor; @Inject private UserDetailsService userDetailsService; public String addToBlueprint(Stack stack, String blueprintText) { if (blueprintProcessor.componentExistsInBlueprint("DRUID_SUPERSET", blueprintText)) { LOGGER.info("Druid Superset exists in Blueprint"); List<BlueprintConfigurationEntry> configs = getConfigs(stack.getCluster()); blueprintText = blueprintProcessor.addConfigEntries(blueprintText, configs, false); } return blueprintText; } private List<BlueprintConfigurationEntry> getConfigs(Cluster cluster) { List<BlueprintConfigurationEntry> configs = new ArrayList<>(); String cbUser; cbUser = userDetailsService.getDetails(cluster.getOwner(), UserFilterField.USERID) .getUsername(); configs.add(new BlueprintConfigurationEntry("druid-superset-env", "superset_admin_password", cluster.getPassword() )); configs.add(new BlueprintConfigurationEntry("druid-superset-env", "superset_admin_firstname", cluster.getUserName() )); configs.add(new BlueprintConfigurationEntry("druid-superset-env", "superset_admin_lastname", cluster.getUserName() )); configs.add(new BlueprintConfigurationEntry("druid-superset-env", "superset_admin_email", cbUser )); return configs; } }