diff options
author | Sawyer Bergeron <sbergeron@iol.unh.edu> | 2021-01-11 15:02:03 -0500 |
---|---|---|
committer | Sawyer Bergeron <sbergeron@iol.unh.edu> | 2021-01-11 15:02:03 -0500 |
commit | c77b9169b09b7b53572b45a4f3679e602b8ca6a2 (patch) | |
tree | 37b3c308ca602626fde0b4a33d9d6cb95b016127 /src | |
parent | 76b884730a00fecff5ed39d8ff4360941f313fe0 (diff) |
Add server create function to admin utils
Signed-off-by: Sawyer Bergeron <sbergeron@iol.unh.edu>
Change-Id: I5776213bfc2eda310049c47dcb1fa1a601bd1896
Diffstat (limited to 'src')
-rw-r--r-- | src/dashboard/admin_utils.py | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/src/dashboard/admin_utils.py b/src/dashboard/admin_utils.py index 4b9c258..6d990c9 100644 --- a/src/dashboard/admin_utils.py +++ b/src/dashboard/admin_utils.py @@ -12,7 +12,8 @@ from resource_inventory.models import ( Network, DiskProfile, CpuProfile, - RamProfile + RamProfile, + Interface ) import json @@ -346,3 +347,38 @@ def make_default_template(resource_profile, image_id=None, template_name=None, c print("adding connection to iface ", iface) iface.save() connection.save() + + +""" +Note: interfaces should be dict from interface name (eg ens1f0) to dict of schema: + { + mac_address: <mac addr>, + bus_addr: <bus addr>, //this field is optional, "" is default + } +""" + + +def add_server(profile, uname, interfaces, lab_username="unh_iol", vendor="unknown", model="unknown"): + server = Server.objects.create( + bundle=None, + profile=profile, + config=None, + working=True, + vendor=vendor, + model=model, + labid=uname, + lab=Lab.objects.get(lab_user__username=lab_username), + name=uname, + booked=False) + + for iface_prof in InterfaceProfile.objects.filter(host=profile).all(): + mac_addr = interfaces[iface_prof.name]["mac_address"] + bus_addr = "unknown" + if "bus_addr" in interfaces[iface_prof.name].keys(): + bus_addr = interfaces[iface_prof.name]["bus_addr"] + + iface = Interface.objects.create(acts_as=None, profile=iface_prof, mac_address=mac_addr, bus_address=bus_addr) + iface.save() + + server.interfaces.add(iface) + server.save() |