use of com.sequenceiq.cloudbreak.domain.HostGroup in project cloudbreak by hortonworks.
the class RecipeEngine method addHDFSRecipe.
private void addHDFSRecipe(Cluster cluster, String blueprintText, Iterable<HostGroup> hostGroups) {
try {
for (HostGroup hostGroup : hostGroups) {
if (isComponentPresent(blueprintText, "NAMENODE", hostGroup)) {
String script = FileReaderUtils.readFileFromClasspath("scripts/hdfs-home.sh").replaceAll("\\$USER", cluster.getUserName());
RecipeScript recipeScript = new RecipeScript(script, RecipeType.POST_CLUSTER_INSTALL);
Recipe recipe = recipeBuilder.buildRecipes("hdfs-home", Collections.singletonList(recipeScript)).get(0);
hostGroup.addRecipe(recipe);
break;
}
}
} catch (IOException e) {
LOGGER.warn("Cannot create HDFS home dir recipe", e);
}
}
use of com.sequenceiq.cloudbreak.domain.HostGroup in project cloudbreak by hortonworks.
the class RecipeEngine method addContainerExecutorScripts.
private void addContainerExecutorScripts(Stack stack, Iterable<HostGroup> hostGroups) {
try {
Cluster cluster = stack.getCluster();
if (cluster != null && ExecutorType.CONTAINER.equals(cluster.getExecutorType())) {
for (HostGroup hostGroup : hostGroups) {
String script = FileReaderUtils.readFileFromClasspath("scripts/configure-container-executor.sh");
RecipeScript recipeScript = new RecipeScript(script, RecipeType.POST_CLUSTER_INSTALL);
Recipe recipe = recipeBuilder.buildRecipes("getConfigurationEntries-container-executor", Collections.singletonList(recipeScript)).get(0);
hostGroup.addRecipe(recipe);
}
}
} catch (IOException e) {
LOGGER.warn("Cannot getConfigurationEntries container executor", e);
}
}
use of com.sequenceiq.cloudbreak.domain.HostGroup in project cloudbreak by hortonworks.
the class RecipeEngine method addSmartSenseRecipe.
private void addSmartSenseRecipe(Stack stack, Iterable<HostGroup> hostGroups) {
try {
Cluster cluster = stack.getCluster();
String blueprintText = cluster.getBlueprint().getBlueprintText();
if (smartsenseConfigurationLocator.smartsenseConfigurable(smartSenseSubscriptionService.getDefault())) {
for (HostGroup hostGroup : hostGroups) {
if (isComponentPresent(blueprintText, "HST_AGENT", hostGroup)) {
String script = FileReaderUtils.readFileFromClasspath("scripts/smartsense-capture-schedule.sh");
RecipeScript recipeScript = new RecipeScript(script, RecipeType.POST_CLUSTER_INSTALL);
Recipe recipe = recipeBuilder.buildRecipes("smartsense-capture-schedule", Collections.singletonList(recipeScript)).get(0);
hostGroup.addRecipe(recipe);
break;
}
}
}
} catch (IOException e) {
LOGGER.warn("Cannot create SmartSense caputre schedule setter recipe", e);
}
}
use of com.sequenceiq.cloudbreak.domain.HostGroup in project cloudbreak by hortonworks.
the class RecipeEngine method uploadUpscaleRecipes.
public void uploadUpscaleRecipes(Stack stack, HostGroup hostGroup, Set<HostMetadata> metaDatas, Collection<HostGroup> hostGroups) throws CloudbreakException {
Orchestrator orchestrator = stack.getOrchestrator();
if (recipesSupportedOnOrchestrator(orchestrator)) {
Set<HostGroup> hgs = Collections.singleton(hostGroup);
addFsRecipes(stack, hgs);
if (recipesFound(hgs)) {
if (hostGroup.getConstraint().getInstanceGroup().getInstanceGroupType() == InstanceGroupType.GATEWAY) {
orchestratorRecipeExecutor.uploadRecipes(stack, hostGroups);
}
}
}
}
use of com.sequenceiq.cloudbreak.domain.HostGroup in project cloudbreak by hortonworks.
the class HostGroupService method saveOrUpdateWithMetadata.
public Set<HostGroup> saveOrUpdateWithMetadata(Collection<HostGroup> hostGroups, Cluster cluster) {
Set<HostGroup> result = new HashSet<>(hostGroups.size());
for (HostGroup hg : hostGroups) {
hg.setCluster(cluster);
hg.setConstraint(constraintRepository.save(hg.getConstraint()));
result.add(hostGroupRepository.save(hg));
}
return result;
}
Aggregations