bitbake: toaster: API CustomImageRecipe check the recipe name supplied is valid

Check that the name for a new CustomImageRecipe doesn't already exist in
the project or in the database of existing recipes (e.g. from the layer
index). Also restrict the characters entered for the recipe naming
convention.

(Bitbake rev: f290d428460a07e73050ff613bc222cc8c04f5ec)

Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Michael Wood 2016-02-02 17:44:01 +00:00 committed by Richard Purdie
parent 5634a251ce
commit cb6d290d0b
1 changed files with 21 additions and 0 deletions

View File

@ -2362,6 +2362,27 @@ if True:
# create custom recipe
try:
# Only allowed chars in name are a-z, 0-9 and -
if re.search(r'[^a-z|0-9|-]', request.POST["name"]):
return {"error": "invalid-name"}
# Are there any recipes with the name already?
for existing_recipe in Recipe.objects.filter(
name=request.POST["name"]):
try:
ci = CustomImageRecipe.objects.get(pk=existing_recipe.pk)
if ci.project == params["project"]:
return {"error": "already-exists" }
else:
# It is a CustomImageRecipe but not in our project
# this is fine so
continue
except:
# It isn't a CustomImageRecipe so is a recipe from
# another source.
return {"error": "already-exists" }
# create layer 'Custom layer' and verion if needed
layer = Layer.objects.get_or_create(
name="toaster-custom-images",