from collections import Counter
+
class LabStatus(object):
"""
A Poor man's enum for the status of a lab.
def get_available_resources(self):
# Cannot import model normally due to ciruclar import
- Server = apps.get_model('resource_inventory', 'Server') # TODO: Find way to import ResourceQuery
+ Server = apps.get_model('resource_inventory', 'Server') # TODO: Find way to import ResourceQuery
resources = [str(resource.profile) for resource in Server.objects.filter(lab=self, booked=False)]
return dict(Counter(resources))
continue
try:
user.email = user_dict['emailAddress']
- except:
+ except KeyError:
pass
user.userprofile.url = user_dict['self']
user.userprofile.full_name = user_dict['displayName']
email = ""
try:
email = jira.user(username).emailAddress
- except:
+ except AttributeError:
email = ""
url = '/'
# Step 3. Lookup the user or create them if they don't exist.
# Generated by Django 2.2 on 2020-02-18 15:36
-from django.db import migrations, models
+from django.db import migrations
class Migration(migrations.Migration):
def format_user(self, userprofile):
return {
- "id": userprofile.user.id,
- "username": userprofile.user.username,
- "email": userprofile.email_addr,
- "first_name": userprofile.user.first_name,
- "last_name": userprofile.user.last_name,
- "company": userprofile.company
+ "id": userprofile.user.id,
+ "username": userprofile.user.username,
+ "email": userprofile.email_addr,
+ "first_name": userprofile.user.first_name,
+ "last_name": userprofile.user.last_name,
+ "company": userprofile.company
}
def get_users(self):
return JsonResponse(lab_manager.set_status(request.POST), safe=False)
return JsonResponse(lab_manager.get_status(), safe=False)
+
def lab_users(request, lab_name=""):
lab_token = request.META.get('HTTP_AUTH_TOKEN')
lab_manager = LabManagerTracker.get(lab_name, lab_token)
return HttpResponse(lab_manager.get_users(), content_type="text/plain")
+
def lab_user(request, lab_name="", user_id=-1):
lab_token = request.META.get('HTTP_AUTH_TOKEN')
lab_manager = LabManagerTracker.get(lab_name, lab_token)
model_name='vlan',
name='network',
field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING,
- to='resource_inventory.PhysicalNetwork', null=True),
+ to='resource_inventory.PhysicalNetwork', null=True),
),
]
from django.conf import settings
from django.forms import formset_factory
+from django.core.exceptions import ValidationError
from typing import List
# TODO: fix headnode in form, currently doesn't return a selected one
# models['headnode_index'] = post_data.get("headnode", 1)
formset = self.create_hostformset(hosts, data=post_data)
- has_headnode = False
if formset.is_valid():
for i, form in enumerate(formset):
host = hosts[i]
image = form.cleaned_data['image']
hostname = form.cleaned_data['host_name']
headnode = form.cleaned_data['headnode']
- if headnode:
- has_headnode = True
host.is_head_node = headnode
host.name = hostname
host.image = image