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