Search in sources :

Example 1 with HostgroupConfiguration

use of com.sequenceiq.cloudbreak.blueprint.configuration.HostgroupConfiguration in project cloudbreak by hortonworks.

the class BlueprintTextProcessor method extendBlueprintHostGroupConfiguration.

public BlueprintTextProcessor extendBlueprintHostGroupConfiguration(HostgroupConfigurations hostGroupConfig, boolean forced) {
    ArrayNode configurations = getArrayFromNodeByNodeName(blueprint, CONFIGURATIONS_NODE);
    ArrayNode hostgroups = getArrayFromObjectNodeByPath(blueprint, HOST_GROUPS_NODE);
    HostgroupConfigurations filteredConfiguraitons = hostGroupConfig.getFilteredConfigs(getExistingParametersFromGlobals(configurations), forced);
    for (HostgroupConfiguration filteredConfig : filteredConfiguraitons) {
        ObjectNode hostgroup = getHostgroup(hostgroups, filteredConfig.getName());
        JsonNode hostgroupConfig = hostgroup.path(CONFIGURATIONS_NODE);
        if (hostgroupConfig.isMissingNode()) {
            ArrayNode hostgroupConfigs = hostgroup.putArray(CONFIGURATIONS_NODE);
            for (SiteConfiguration e : filteredConfig.getSiteConfigs()) {
                addSiteToHostgroupConfiguration(hostgroupConfigs, e.getName(), e.getProperties());
            }
        } else {
            for (SiteConfiguration e : filteredConfig.getSiteConfigs()) {
                ArrayNode hostgroupConfigs = (ArrayNode) hostgroupConfig;
                String siteName = e.getName();
                ObjectNode site = (ObjectNode) hostgroupConfigs.findValue(siteName);
                if (site == null) {
                    addSiteToHostgroupConfiguration(hostgroupConfigs, siteName, e.getProperties());
                } else {
                    ObjectNode objectToModify = (ObjectNode) site.get(PROPERTIES_NODE);
                    if (objectToModify == null) {
                        objectToModify = site;
                    }
                    putAllObjects(objectToModify, e.getProperties(), forced);
                }
            }
        }
    }
    return this;
}
Also used : HostgroupConfiguration(com.sequenceiq.cloudbreak.blueprint.configuration.HostgroupConfiguration) HostgroupConfigurations(com.sequenceiq.cloudbreak.blueprint.configuration.HostgroupConfigurations) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) SiteConfiguration(com.sequenceiq.cloudbreak.blueprint.configuration.SiteConfiguration) JsonNode(com.fasterxml.jackson.databind.JsonNode) ArrayNode(com.fasterxml.jackson.databind.node.ArrayNode)

Aggregations

JsonNode (com.fasterxml.jackson.databind.JsonNode)1 ArrayNode (com.fasterxml.jackson.databind.node.ArrayNode)1 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)1 HostgroupConfiguration (com.sequenceiq.cloudbreak.blueprint.configuration.HostgroupConfiguration)1 HostgroupConfigurations (com.sequenceiq.cloudbreak.blueprint.configuration.HostgroupConfigurations)1 SiteConfiguration (com.sequenceiq.cloudbreak.blueprint.configuration.SiteConfiguration)1