summaryrefslogtreecommitdiff
path: root/src/caas/services/macaddressservice.py
blob: 745f5fa6115318f8ef6592406cd9f5b34065039b (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
38
from ..models import Server
from .helpers import Address
import logging


logger = logging.getLogger("caas")


class MacAddressService():
    @staticmethod
    def set_server_mac_address(ilo_host_address, pxe_mac_address, intel_nic_firmware_version):
        try:
            server_kwargs = {"ilo_host_address": Address.strip_brackets(ilo_host_address)}
            server = Server.objects.get(**server_kwargs)
        except Server.DoesNotExist:
            logger.error("%s FAILED: while setting server MAC address: failed to retrieve server" % ilo_host_address)
            return -1
        changed_p = False
        if server.pxe_mac_address != pxe_mac_address:
            server.pxe_mac_address = pxe_mac_address
            changed_p = True
        if server.intel_nic_firmware_version != intel_nic_firmware_version:
            server.intel_nic_firmware_version = intel_nic_firmware_version
            changed_p = True
        if changed_p:
            server.save()
        return 0

    @staticmethod
    def get_server_mac_address(ilo_host_address):
        try:
            server_kwargs = {"ilo_host_address": Address.strip_brackets(ilo_host_address)}
            server = Server.objects.get(**server_kwargs)
        except Server.DoesNotExist:
            logger.error("%s FAILED: while getting server MAC address: failed to retrieve server" % ilo_host_address)
            return None

        return server.pxe_mac_address