From c77b9169b09b7b53572b45a4f3679e602b8ca6a2 Mon Sep 17 00:00:00 2001 From: Sawyer Bergeron Date: Mon, 11 Jan 2021 15:02:03 -0500 Subject: Add server create function to admin utils Signed-off-by: Sawyer Bergeron Change-Id: I5776213bfc2eda310049c47dcb1fa1a601bd1896 --- src/dashboard/admin_utils.py | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'src/dashboard') 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: , + 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() -- cgit 1.2.3-korg