Search in sources :

Example 1 with BlueprintParameter

use of com.sequenceiq.cloudbreak.domain.BlueprintParameter in project cloudbreak by hortonworks.

the class BlueprintRequestToBlueprintConverter method prepareBlueprintInputs.

private void prepareBlueprintInputs(BlueprintRequest json, Blueprint blueprint) {
    List<BlueprintParameter> blueprintParameterList = new ArrayList<>();
    for (BlueprintParameterJson blueprintParameterJson : json.getInputs()) {
        BlueprintParameter blueprintParameter = new BlueprintParameter();
        blueprintParameter.setReferenceConfiguration(blueprintParameterJson.getReferenceConfiguration());
        blueprintParameter.setDescription(blueprintParameterJson.getDescription());
        blueprintParameter.setName(blueprintParameterJson.getName());
        blueprintParameterList.add(blueprintParameter);
    }
    BlueprintInputParameters inputParameters = new BlueprintInputParameters(blueprintParameterList);
    try {
        blueprint.setInputParameters(new Json(inputParameters));
    } catch (JsonProcessingException e) {
        throw new BadRequestException("Invalid Blueprint: Failed to parse inputs.", e);
    }
}
Also used : ArrayList(java.util.ArrayList) BadRequestException(com.sequenceiq.cloudbreak.controller.BadRequestException) BlueprintParameter(com.sequenceiq.cloudbreak.domain.BlueprintParameter) Json(com.sequenceiq.cloudbreak.domain.json.Json) BlueprintParameterJson(com.sequenceiq.cloudbreak.api.model.BlueprintParameterJson) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) BlueprintInputParameters(com.sequenceiq.cloudbreak.domain.BlueprintInputParameters) BlueprintParameterJson(com.sequenceiq.cloudbreak.api.model.BlueprintParameterJson)

Example 2 with BlueprintParameter

use of com.sequenceiq.cloudbreak.domain.BlueprintParameter in project cloudbreak by hortonworks.

the class BlueprintToBlueprintResponseConverter method convertInputParameters.

private Set<BlueprintParameterJson> convertInputParameters(Json inputParameters) throws IOException {
    Set<BlueprintParameterJson> result = new HashSet<>();
    if (inputParameters != null && StringUtils.isNoneEmpty(inputParameters.getValue())) {
        BlueprintInputParameters inputParametersObj = inputParameters.get(BlueprintInputParameters.class);
        List<BlueprintParameter> parameters = inputParametersObj.getParameters();
        for (BlueprintParameter record : parameters) {
            BlueprintParameterJson json = new BlueprintParameterJson();
            json.setDescription(record.getDescription());
            json.setName(record.getName());
            json.setReferenceConfiguration(record.getReferenceConfiguration());
            result.add(json);
        }
    }
    return result;
}
Also used : BlueprintParameter(com.sequenceiq.cloudbreak.domain.BlueprintParameter) BlueprintInputParameters(com.sequenceiq.cloudbreak.domain.BlueprintInputParameters) BlueprintParameterJson(com.sequenceiq.cloudbreak.api.model.BlueprintParameterJson) HashSet(java.util.HashSet)

Example 3 with BlueprintParameter

use of com.sequenceiq.cloudbreak.domain.BlueprintParameter in project cloudbreak by hortonworks.

the class ClusterDecorator method prepareConnectedClusterParameters.

private void prepareConnectedClusterParameters(Cluster requestedCluster, IdentityUser user, ConnectedClusterRequest connectedClusterRequest) {
    if (connectedClusterRequest != null) {
        Long stackId;
        Stack publicStack;
        if (!Strings.isNullOrEmpty(connectedClusterRequest.getSourceClusterName())) {
            publicStack = stackService.getPublicStack(connectedClusterRequest.getSourceClusterName(), user);
            stackId = publicStack.getId();
        } else {
            stackId = connectedClusterRequest.getSourceClusterId();
            publicStack = stackService.get(connectedClusterRequest.getSourceClusterId());
        }
        // We should set the ldap to the source cluster ldap
        requestedCluster.setLdapConfig(publicStack.getCluster().getLdapConfig());
        // We should set the ranger metastore to the source cluster ranger metastore if exist!
        RDSConfig rangerRds = rdsConfigService.findByClusterIdAndType(publicStack.getOwner(), publicStack.getAccount(), publicStack.getCluster().getId(), RdsType.RANGER);
        if (rangerRds != null) {
            requestedCluster.getRdsConfigs().add(rangerRds);
        }
        try {
            Set<BlueprintParameterJson> requests = new HashSet<>();
            Json blueprintAttributes = requestedCluster.getBlueprint().getInputParameters();
            if (blueprintAttributes != null && StringUtils.isNoneEmpty(blueprintAttributes.getValue())) {
                BlueprintInputParameters inputParametersObj = blueprintAttributes.get(BlueprintInputParameters.class);
                for (BlueprintParameter blueprintParameter : inputParametersObj.getParameters()) {
                    BlueprintParameterJson blueprintParameterJson = new BlueprintParameterJson();
                    blueprintParameterJson.setName(blueprintParameter.getName());
                    blueprintParameterJson.setReferenceConfiguration(blueprintParameter.getReferenceConfiguration());
                    blueprintParameterJson.setDescription(blueprintParameter.getDescription());
                    requests.add(blueprintParameterJson);
                }
            }
            ConfigsResponse configsResponse = clusterService.retrieveOutputs(stackId, requests);
            Map<String, String> newInputs = requestedCluster.getBlueprintInputs().get(Map.class);
            for (BlueprintInputJson blueprintInputJson : configsResponse.getInputs()) {
                newInputs.put(blueprintInputJson.getName(), blueprintInputJson.getPropertyValue());
            }
            requestedCluster.setBlueprintInputs(new Json(newInputs));
        } catch (IOException e) {
            LOGGER.error("Could not propagate cluster input parameters", e);
            throw new BadRequestException("Could not propagate cluster input parameters: " + e.getMessage());
        }
    }
}
Also used : RDSConfig(com.sequenceiq.cloudbreak.domain.RDSConfig) ConfigsResponse(com.sequenceiq.cloudbreak.api.model.ConfigsResponse) BlueprintInputJson(com.sequenceiq.cloudbreak.api.model.BlueprintInputJson) BlueprintParameter(com.sequenceiq.cloudbreak.domain.BlueprintParameter) Json(com.sequenceiq.cloudbreak.domain.json.Json) BlueprintParameterJson(com.sequenceiq.cloudbreak.api.model.BlueprintParameterJson) BlueprintInputJson(com.sequenceiq.cloudbreak.api.model.BlueprintInputJson) IOException(java.io.IOException) BlueprintInputParameters(com.sequenceiq.cloudbreak.domain.BlueprintInputParameters) Stack(com.sequenceiq.cloudbreak.domain.Stack) BadRequestException(com.sequenceiq.cloudbreak.controller.BadRequestException) BlueprintParameterJson(com.sequenceiq.cloudbreak.api.model.BlueprintParameterJson) HashSet(java.util.HashSet)

Example 4 with BlueprintParameter

use of com.sequenceiq.cloudbreak.domain.BlueprintParameter in project cloudbreak by hortonworks.

the class BlueprintUtilsTest method testPrepareInputsWhenTheInputConfigIsCorrectShouldReturnWithParsedInput.

@Test
public void testPrepareInputsWhenTheInputConfigIsCorrectShouldReturnWithParsedInput() throws IOException {
    JsonNode inputs = JsonUtil.readTree("{}");
    List<BlueprintParameter> blueprintParameters = underTest.prepareInputs(inputs);
    Assert.assertNotNull(blueprintParameters);
}
Also used : JsonNode(com.fasterxml.jackson.databind.JsonNode) BlueprintParameter(com.sequenceiq.cloudbreak.domain.BlueprintParameter) Test(org.junit.Test)

Example 5 with BlueprintParameter

use of com.sequenceiq.cloudbreak.domain.BlueprintParameter in project cloudbreak by hortonworks.

the class BlueprintUtils method prepareInputs.

public List<BlueprintParameter> prepareInputs(JsonNode inputs) throws com.fasterxml.jackson.core.JsonProcessingException {
    Set<BlueprintParameter> blueprintParameters = new HashSet<>();
    if (inputs.isArray()) {
        for (JsonNode objNode : inputs) {
            BlueprintParameter blueprintParameter = JsonUtil.treeToValue(objNode, BlueprintParameter.class);
            blueprintParameters.add(blueprintParameter);
        }
    }
    return new ArrayList<>(blueprintParameters);
}
Also used : ArrayList(java.util.ArrayList) BlueprintParameter(com.sequenceiq.cloudbreak.domain.BlueprintParameter) JsonNode(com.fasterxml.jackson.databind.JsonNode) HashSet(java.util.HashSet)

Aggregations

BlueprintParameter (com.sequenceiq.cloudbreak.domain.BlueprintParameter)5 BlueprintParameterJson (com.sequenceiq.cloudbreak.api.model.BlueprintParameterJson)3 BlueprintInputParameters (com.sequenceiq.cloudbreak.domain.BlueprintInputParameters)3 HashSet (java.util.HashSet)3 JsonNode (com.fasterxml.jackson.databind.JsonNode)2 BadRequestException (com.sequenceiq.cloudbreak.controller.BadRequestException)2 Json (com.sequenceiq.cloudbreak.domain.json.Json)2 ArrayList (java.util.ArrayList)2 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 BlueprintInputJson (com.sequenceiq.cloudbreak.api.model.BlueprintInputJson)1 ConfigsResponse (com.sequenceiq.cloudbreak.api.model.ConfigsResponse)1 RDSConfig (com.sequenceiq.cloudbreak.domain.RDSConfig)1 Stack (com.sequenceiq.cloudbreak.domain.Stack)1 IOException (java.io.IOException)1 Test (org.junit.Test)1