- application/json
responses:
'200':
- description: successfel operation
+ description: successful operation
schema:
- $ref: '#/definitions/UserProfile'
+ type: array
+ items:
+ $ref: '#/definitions/UserProfile'
'401':
description: Unauthorized API key
+ /labs:
+ get:
+ tags:
+ - Lab
+ summary: List all labs and some of their info
+ description: ''
+ operationId: listLabs
+ produces:
+ - application/json
+ responses:
+ '200':
+ description: successful operation
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/Lab'
+ '401':
+ description: Unauthorized API Key
/labs/{labID}/users:
get:
tags:
- Lab
- summary: Get all users at a lab
+ summary: Get all users that are visible to a lab for operational purposes
description: ''
operationId: labUsers
consumes:
responses:
'200':
description: successful
+ schema: array
+ items:
+ $ref: '#/definitions/UserProfile'
'400':
description: invalid lab id
securityDefinitions:
images_for_template,
specific_booking,
extend_booking,
- all_users
+ all_users,
+ list_labs
)
urlpatterns = [
path('resource_inventory/<int:template_id>/images', images_for_template),
path('users', all_users),
- path('labs', all_labs),
+ path('labs', list_labs),
url(r'^token$', GenerateTokenView.as_view(), name='generate_token'),
]
import json
import math
import traceback
+import sys
from datetime import timedelta
from django.contrib.auth.decorators import login_required
from analytics.models import ActiveVPNUser
from booking.quick_deployer import create_from_API
from resource_inventory.models import ResourceTemplate
+from django.db.models import Q
"""
try:
booking = create_from_API(request.body, token.user)
- except Exception as e:
+
+ except Exception:
+ finalTrace = ''
exc_type, exc_value, exc_traceback = sys.exc_info()
- return HttpResponse(str(traceback.format_exception(exc_type, exc_value, exc_traceback)), status=400)
+ for i in traceback.format_exception(exc_type, exc_value, exc_traceback):
+ finalTrace += '<br>' + i.strip()
+ return HttpResponse(finalTrace, status=400)
sbooking = AutomationAPIManager.serialize_booking(booking)
return JsonResponse(sbooking, safe=False)
"""
User API Views
"""
-lab_info
+
def all_users(request):
token = auth_and_log(request, 'users')
return HttpResponse('Unauthorized', status=401)
users = [AutomationAPIManager.serialize_userprofile(up)
- for up in UserProfile.objects.exclude(user=token.user)]
+ for up in UserProfile.objects.filter(public_user=True)]
return JsonResponse(users, safe=False)
"""
-def all_labs():
- lab_list=[]
+def list_labs(request):
+ lab_list = []
for lab in Lab.objects.all():
lab_info = {
- 'name':lab.name,
- 'username':lab.lab_user.username,
- 'status':lab.status,
- 'project':lab.project,
- 'description':lab.description,
- 'location':lab.location,
- 'info':lab.lab_info_link,
- 'email':lab.contact_email,
- 'phone':lab.contact_phone
+ 'name': lab.name,
+ 'username': lab.lab_user.username,
+ 'status': lab.status,
+ 'project': lab.project,
+ 'description': lab.description,
+ 'location': lab.location,
+ 'info': lab.lab_info_link,
+ 'email': lab.contact_email,
+ 'phone': lab.contact_phone
}
lab_list.append(lab_info)
return JsonResponse(lab_list, safe=False)
-
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+from __future__ import annotations
+
import re
-import typing
from typing import Optional
from django.db.models import Q
from dashboard.exceptions import ResourceAvailabilityException
from resource_inventory.models import (
+ Resource,
ResourceBundle,
ResourceTemplate,
ResourceConfiguration,
InterfaceConfiguration,
)
+from account.models import Lab
+from django.contrib.auth.models import User
+
class ResourceManager: