use of com.sequenceiq.cloudbreak.domain.Recipe in project cloudbreak by hortonworks.
the class HostGroupDecorator method prepareRecipesByRequests.
private void prepareRecipesByRequests(HostGroup subject, IdentityUser user, Iterable<RecipeRequest> recipes, Boolean publicInAccount) {
for (RecipeRequest recipe : recipes) {
Recipe convert = conversionService.convert(recipe, Recipe.class);
convert.setPublicInAccount(publicInAccount);
convert = recipeService.create(user, convert);
subject.getRecipes().add(convert);
}
}
use of com.sequenceiq.cloudbreak.domain.Recipe in project cloudbreak by hortonworks.
the class OrchestratorRecipeExecutor method convert.
private List<RecipeModel> convert(Iterable<Recipe> recipes) {
List<RecipeModel> result = new ArrayList<>();
for (Recipe recipe : recipes) {
String decodedContent = new String(Base64.decodeBase64(recipe.getContent()));
RecipeModel recipeModel = new RecipeModel(recipe.getName(), recipe.getRecipeType(), decodedContent);
result.add(recipeModel);
}
return result;
}
use of com.sequenceiq.cloudbreak.domain.Recipe in project cloudbreak by hortonworks.
the class RecipeBuilder method buildRecipes.
public List<Recipe> buildRecipes(String recipeName, Collection<RecipeScript> recipeScripts) {
List<Recipe> recipes = new ArrayList<>();
int index = 0;
for (RecipeScript script : recipeScripts) {
Recipe recipe = new Recipe();
if (recipeScripts.size() > 1) {
recipe.setName(recipeName + '-' + index);
} else {
recipe.setName(recipeName);
}
recipe.setContent(Base64.encodeBase64String(script.getScript().getBytes()));
recipe.setRecipeType(script.getRecipeType());
index++;
recipes.add(recipe);
}
return recipes;
}
use of com.sequenceiq.cloudbreak.domain.Recipe in project cloudbreak by hortonworks.
the class RecipeEngine method addFsRecipesToHostGroups.
private void addFsRecipesToHostGroups(Credential credential, Iterable<HostGroup> hostGroups, String blueprintText, FileSystem fs) throws IOException {
String scriptName = fs.getType().toLowerCase();
FileSystemConfigurator fsConfigurator = fileSystemConfigurators.get(FileSystemType.valueOf(fs.getType()));
FileSystemConfiguration fsConfiguration = getFileSystemConfiguration(fs);
List<RecipeScript> recipeScripts = fsConfigurator.getScripts(credential, fsConfiguration);
List<Recipe> fsRecipes = recipeBuilder.buildRecipes(scriptName, recipeScripts);
for (int i = 0; i < fsRecipes.size(); i++) {
RecipeScript recipeScript = recipeScripts.get(i);
Recipe recipe = fsRecipes.get(i);
for (HostGroup hostGroup : hostGroups) {
if (ExecutionType.ALL_NODES == recipeScript.getExecutionType()) {
hostGroup.addRecipe(recipe);
} else if (ExecutionType.ONE_NODE == recipeScript.getExecutionType() && isComponentPresent(blueprintText, "NAMENODE", hostGroup)) {
hostGroup.addRecipe(recipe);
break;
}
}
}
}
use of com.sequenceiq.cloudbreak.domain.Recipe in project cloudbreak by hortonworks.
the class RecipeRequestToRecipeConverterTest method testConvert.
@Test
public void testConvert() {
// GIVEN
// WHEN
Recipe result = underTest.convert(getRequest("stack/recipe.json"));
// THEN
assertAllFieldsNotNull(result, Collections.singletonList("plugins"));
}
Aggregations