blob: b8a9d43537320708e4a41c98443a11ded45bc1df (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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
|