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