summaryrefslogtreecommitdiff
path: root/src/caas/services/nicfirmwareversionservice.py
diff options
context:
space:
mode:
authorckonstanski <kostcarl@isu.edu>2026-07-30 18:17:14 -0600
committerckonstanski <kostcarl@isu.edu>2026-07-30 18:17:14 -0600
commit640ff61422bc0ee3966941b93d9889ddbbd38d77 (patch)
treeabf1c08f5d38ee53ec8b29dc4f425722517505e6 /src/caas/services/nicfirmwareversionservice.py
parent22dae02a86c1fce71091bfa5289cf99abba1b217 (diff)
more filesHEADmaster
Diffstat (limited to 'src/caas/services/nicfirmwareversionservice.py')
-rw-r--r--src/caas/services/nicfirmwareversionservice.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/caas/services/nicfirmwareversionservice.py b/src/caas/services/nicfirmwareversionservice.py
new file mode 100644
index 0000000..b8a9d43
--- /dev/null
+++ b/src/caas/services/nicfirmwareversionservice.py
@@ -0,0 +1,37 @@
+import datetime
+from .helpers import Address
+from ..models import FirmwareUpgradeSchedule, Server
+from django.conf import settings
+import logging
+
+
+logger = logging.getLogger("caas")
+
+class NicFirmwareVersionService():
+ @staticmethod
+ def set_server_nic_firmware_version(ilo_host_address, intel_nic_firmware_version):
+ try:
+ server_kwargs = {"ilo_host_address": ilo_host_address}
+ server = Server.objects.get(**server_kwargs)
+ except Server.DoesNotExist:
+ errmsg = "FAILED: while upgrading Intel NIC firmware: cannot find server with ilo_host_address: %s" % ilo_host_address
+ logger.error(errmsg)
+ return -1
+
+ try:
+ firmware_kwargs = {"server_id": server.pk}
+ firmware = FirmwareUpgradeSchedule.objects.get(**firmware_kwargs)
+ except FirmwareUpgradeSchedule.DoesNotExist:
+ errmsg = "FAILED: while upgrading Intel NIC firmware: cannot find FirmwareUpgradeSchedule associated with the server with ilo_hostname: %s" % server.ilo_hostname
+ logger.error(errmsg)
+ return -1
+
+ if intel_nic_firmware_version == settings.INTEL_NIC_FIRMWARE_VERSION:
+ firmware.date_completed = datetime.datetime.now()
+ else:
+ firmware.date_last_failed = datetime.datetime.now()
+
+ server.intel_nic_firmware_version = intel_nic_firmware_version
+ server.save()
+ firmware.save()
+ return 0