Signed-off-by: Sawyer Bergeron <sbergeron@iol.unh.edu>
Change-Id: Idbad76db40b08e41cdc41789b487c9d476852c57
Signed-off-by: Sawyer Bergeron <sbergeron@iol.unh.edu>
lab_user,
GenerateTokenView,
analytics_job,
- resource_ci_metadata,
- resource_ci_userdata,
- resource_ci_userdata_directory,
- all_images,
- all_opsyss,
- single_image,
- single_opsys,
user_bookings,
specific_booking,
extend_booking,
all_users,
images_for_template,
available_templates,
+ resource_ci_metadata,
+ resource_ci_userdata,
+ resource_ci_userdata_directory,
+ all_images,
+ all_opsyss,
+ single_image,
+ single_opsys,
+ create_ci_file,
)
urlpatterns = [
path('resource_inventory/availableTemplates', available_templates),
path('resource_inventory/<int:template_id>/images', images_for_template),
+ path('resource_inventory/cloud/create', create_ci_file),
+
path('users', all_users),
path('labs', list_labs),
return JsonResponse(users, safe=False)
+def create_ci_file(request):
+ token = auth_and_log(request, 'booking/makeCloudConfig')
+
+ if isinstance(token, HttpResponse):
+ return token
+
+ try:
+ cconf = request.body
+ d = yaml.load(cconf)
+ if not (type(d) is dict):
+ raise Exception()
+
+ cconf = CloudInitFile.create(text=cconf, priority=CloudInitFile.objects.count())
+
+ return JsonResponse({"id": cconf.id})
+ except Exception:
+ return JsonResponse({"error": "Provided config file was not valid yaml or was not a dict at the top level"})
+
+
"""
Lab API Views
"""