Search in sources :

Example 1 with ConstraintJson

use of com.sequenceiq.cloudbreak.api.model.ConstraintJson in project cloudbreak by hortonworks.

the class ConstraintToConstraintJsonConverter method convert.

@Override
public ConstraintJson convert(Constraint source) {
    ConstraintJson constraintJson = new ConstraintJson();
    if (source.getConstraintTemplate() != null) {
        constraintJson.setConstraintTemplateName(source.getConstraintTemplate().getName());
    }
    if (source.getInstanceGroup() != null) {
        constraintJson.setInstanceGroupName(source.getInstanceGroup().getGroupName());
    }
    constraintJson.setHostCount(source.getHostCount());
    return constraintJson;
}
Also used : ConstraintJson(com.sequenceiq.cloudbreak.api.model.ConstraintJson)

Example 2 with ConstraintJson

use of com.sequenceiq.cloudbreak.api.model.ConstraintJson in project cloudbreak by hortonworks.

the class MockClusterCreationWithSaltFailTest method convertHostGroups.

private Set<HostGroupRequest> convertHostGroups(Iterable<HostGroup> hostGroups, String runRecipesOnHosts) {
    Set<Long> recipeIds = Collections.emptySet();
    List<String> hostGroupsWithRecipe = Collections.emptyList();
    if (!runRecipesOnHosts.isEmpty()) {
        recipeIds = getItContext().getContextParam(CloudbreakITContextConstants.RECIPE_ID, Set.class);
        Assert.assertFalse(recipeIds == null || recipeIds.isEmpty());
        hostGroupsWithRecipe = Arrays.asList(runRecipesOnHosts.split(","));
    }
    Set<HostGroupRequest> hgMaps = new HashSet<>();
    for (HostGroup hostgroup : hostGroups) {
        HostGroupRequest hostGroupBase = new HostGroupRequest();
        hostGroupBase.setName(hostgroup.getName());
        ConstraintJson constraintJson = new ConstraintJson();
        constraintJson.setInstanceGroupName(hostgroup.getInstanceGroupName());
        constraintJson.setHostCount(hostgroup.getHostCount());
        hostGroupBase.setConstraint(constraintJson);
        if (hostGroupsWithRecipe.contains(hostgroup.getName())) {
            hostGroupBase.setRecipeIds(recipeIds);
        }
        hgMaps.add(hostGroupBase);
    }
    return hgMaps;
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) HostGroupRequest(com.sequenceiq.cloudbreak.api.model.HostGroupRequest) HostGroup(com.sequenceiq.it.cloudbreak.HostGroup) ConstraintJson(com.sequenceiq.cloudbreak.api.model.ConstraintJson) HashSet(java.util.HashSet)

Example 3 with ConstraintJson

use of com.sequenceiq.cloudbreak.api.model.ConstraintJson in project cloudbreak by hortonworks.

the class ClusterCreationTest method convertHostGroups.

private Set<HostGroupRequest> convertHostGroups(Collection<HostGroup> hostGroups, String runRecipesOnHosts, Boolean autoRecoveryMode) {
    Set<Long> recipeIds = Collections.emptySet();
    List<String> hostGroupsWithRecipe = Collections.emptyList();
    if (!runRecipesOnHosts.isEmpty()) {
        recipeIds = getItContext().getContextParam(CloudbreakITContextConstants.RECIPE_ID, Set.class);
        Assert.assertFalse(recipeIds == null || recipeIds.isEmpty());
        hostGroupsWithRecipe = Arrays.asList(runRecipesOnHosts.split(","));
    }
    Set<HostGroupRequest> hgMaps = new HashSet<>(hostGroups.size());
    for (HostGroup hostgroup : hostGroups) {
        HostGroupRequest hostGroupBase = new HostGroupRequest();
        hostGroupBase.setName(hostgroup.getName());
        if (Boolean.TRUE.equals(autoRecoveryMode)) {
            hostGroupBase.setRecoveryMode(RecoveryMode.AUTO);
        }
        ConstraintJson constraintJson = new ConstraintJson();
        constraintJson.setInstanceGroupName(hostgroup.getInstanceGroupName());
        constraintJson.setHostCount(hostgroup.getHostCount());
        hostGroupBase.setConstraint(constraintJson);
        if (hostGroupsWithRecipe.contains(hostgroup.getName())) {
            hostGroupBase.setRecipeIds(recipeIds);
        }
        hgMaps.add(hostGroupBase);
    }
    return hgMaps;
}
Also used : Set(java.util.Set) HashSet(java.util.HashSet) HostGroupRequest(com.sequenceiq.cloudbreak.api.model.HostGroupRequest) ConstraintJson(com.sequenceiq.cloudbreak.api.model.ConstraintJson) HashSet(java.util.HashSet)

Example 4 with ConstraintJson

use of com.sequenceiq.cloudbreak.api.model.ConstraintJson in project cloudbreak by hortonworks.

the class InstanceGroupV2RequestToHostGroupRequestConverter method convert.

@Override
public HostGroupRequest convert(InstanceGroupV2Request instanceGroupV2Request) {
    HostGroupRequest hostGroupRequest = new HostGroupRequest();
    hostGroupRequest.setName(instanceGroupV2Request.getGroup());
    hostGroupRequest.setRecipeNames(instanceGroupV2Request.getRecipeNames());
    hostGroupRequest.setRecipes(Collections.emptySet());
    ConstraintJson constraintJson = new ConstraintJson();
    constraintJson.setHostCount(instanceGroupV2Request.getNodeCount());
    constraintJson.setInstanceGroupName(instanceGroupV2Request.getGroup());
    hostGroupRequest.setConstraint(constraintJson);
    hostGroupRequest.setRecipeIds(Collections.emptySet());
    hostGroupRequest.setRecoveryMode(instanceGroupV2Request.getRecoveryMode());
    return hostGroupRequest;
}
Also used : HostGroupRequest(com.sequenceiq.cloudbreak.api.model.HostGroupRequest) ConstraintJson(com.sequenceiq.cloudbreak.api.model.ConstraintJson)

Example 5 with ConstraintJson

use of com.sequenceiq.cloudbreak.api.model.ConstraintJson in project cloudbreak by hortonworks.

the class HostGroupDecorator method decorate.

public HostGroup decorate(HostGroup subject, HostGroupRequest hostGroupRequest, IdentityUser user, Long stackId, boolean postRequest, Boolean publicInAccount) {
    ConstraintJson constraintJson = hostGroupRequest.getConstraint();
    Set<Long> recipeIds = hostGroupRequest.getRecipeIds();
    Set<RecipeRequest> recipes = hostGroupRequest.getRecipes();
    Set<String> recipeNames = hostGroupRequest.getRecipeNames();
    LOGGER.debug("Decorating hostgroup on [{}] request.", postRequest ? "POST" : "PUT");
    Constraint constraint = conversionService.convert(constraintJson, Constraint.class);
    if (postRequest) {
        constraint = decorateConstraint(stackId, user, constraint, constraintJson.getInstanceGroupName(), constraintJson.getConstraintTemplateName());
        subject.setConstraint(constraint);
    } else {
        subject = getHostGroup(stackId, constraint, constraintJson, subject, user);
    }
    subject.getRecipes().clear();
    if (recipeIds != null) {
        prepareRecipesByIds(subject, recipeIds);
    }
    if (recipeNames != null && !recipeNames.isEmpty()) {
        prepareRecipesByName(subject, user, recipeNames);
    }
    if (recipes != null && !recipes.isEmpty()) {
        prepareRecipesByRequests(subject, user, recipes, publicInAccount);
    }
    return subject;
}
Also used : Constraint(com.sequenceiq.cloudbreak.domain.Constraint) ConstraintJson(com.sequenceiq.cloudbreak.api.model.ConstraintJson) RecipeRequest(com.sequenceiq.cloudbreak.api.model.RecipeRequest)

Aggregations

ConstraintJson (com.sequenceiq.cloudbreak.api.model.ConstraintJson)8 HostGroupRequest (com.sequenceiq.cloudbreak.api.model.HostGroupRequest)5 HashSet (java.util.HashSet)4 Set (java.util.Set)3 HostGroup (com.sequenceiq.it.cloudbreak.HostGroup)2 RecipeRequest (com.sequenceiq.cloudbreak.api.model.RecipeRequest)1 UpdateClusterJson (com.sequenceiq.cloudbreak.api.model.UpdateClusterJson)1 InstanceGroupV2Request (com.sequenceiq.cloudbreak.api.model.v2.InstanceGroupV2Request)1 BadRequestException (com.sequenceiq.cloudbreak.controller.BadRequestException)1 Blueprint (com.sequenceiq.cloudbreak.domain.Blueprint)1 Constraint (com.sequenceiq.cloudbreak.domain.Constraint)1 Before (org.junit.Before)1