diff options
Diffstat (limited to 'src/caas/services/macaddressservice.py')
| -rw-r--r-- | src/caas/services/macaddressservice.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/caas/services/macaddressservice.py b/src/caas/services/macaddressservice.py new file mode 100644 index 0000000..745f5fa --- /dev/null +++ b/src/caas/services/macaddressservice.py @@ -0,0 +1,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 |
