summaryrefslogtreecommitdiff
path: root/src/caas/services/macaddressservice.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/caas/services/macaddressservice.py')
-rw-r--r--src/caas/services/macaddressservice.py38
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