use of com.sequenceiq.cloudbreak.common.model.recipe.RecipeScript in project cloudbreak by hortonworks.
the class AbstractFileSystemConfiguratorTest method testGetScripts.
@Test
public void testGetScripts() {
Credential credential = new Credential();
credential.setId(0L);
FileSystemConfiguration fsConfig = new FileSystemConfiguration();
List<RecipeScript> actual = underTest.getScripts(credential, fsConfig);
List<RecipeScript> expected = singletonList(new RecipeScript("echo 'newContent'", ExecutionType.ALL_NODES, RecipeType.POST_AMBARI_START));
Assert.assertEquals(expected, actual);
}
use of com.sequenceiq.cloudbreak.common.model.recipe.RecipeScript 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.common.model.recipe.RecipeScript 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.common.model.recipe.RecipeScript 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.common.model.recipe.RecipeScript in project cloudbreak by hortonworks.
the class AbstractFileSystemConfiguratorTest method testGetScriptsWhenNoReplace.
@Test
public void testGetScriptsWhenNoReplace() {
Credential credential = new Credential();
credential.setId(1L);
FileSystemConfiguration fsConfig = new FileSystemConfiguration();
List<RecipeScript> actual = underTest.getScripts(credential, fsConfig);
List<RecipeScript> expected = singletonList(new RecipeScript("echo '$replace'", ExecutionType.ALL_NODES, RecipeType.POST_AMBARI_START));
Assert.assertEquals(expected, actual);
}
Aggregations