zbaremetalnodeinventory: Add aarch64 support 13/2113/3
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Tue, 10 Dec 2019 10:43:25 +0000 (11:43 +0100)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Tue, 10 Dec 2019 18:15:26 +0000 (19:15 +0100)
os_ironic_node properties capabilities [1] should use "boot_mode:uefi"
for aarch64 platforms [2] (since EFI is the only supported firmware on
aarch64).

[1] https://docs.ansible.com/ansible/latest/modules/os_ironic_module.html
[2] https://docs.openstack.org/ironic/latest/install/advanced.html

Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Change-Id: I362f1e56c2e2c4713aa13938568a2cc249eaa14e

inventoryhandlers.spec
inventoryhandlers/baremetal-node-inventory/zbaremetalnodeinventory.py

index 2af61bf..8a275b1 100644 (file)
@@ -14,7 +14,7 @@
 
 Name:       inventoryhandlers
 Version:    %{_version}
-Release:    2%{?dist}
+Release:    3%{?dist}
 Summary:    Inventory handlers
 License:        %{_platform_licence}
 Source0:        %{name}-%{version}.tar.gz
index b6b90e9..9d038b2 100644 (file)
@@ -13,6 +13,7 @@
 # limitations under the License.
 
 import json
+import platform
 from jinja2 import Environment
 
 from cmframework.apis import cmansibleinventoryconfig
@@ -152,7 +153,7 @@ class zbaremetalnodeinventory(cmansibleinventoryconfig.CMAnsibleInventoryConfigP
 
             properties = {
                 "capabilities": "boot_option:local",
-                "cpu_arch": "x86_64",
+                "cpu_arch": platform.machine(),
                 "cpus": 8,
                 "disk_size": 40,
                 "ram": 16384
@@ -163,6 +164,10 @@ class zbaremetalnodeinventory(cmansibleinventoryconfig.CMAnsibleInventoryConfigP
                 "virtmedia_deploy_iso": "file:///opt/images/ironic-deploy.iso",
             }
 
+            # aarch64 platforms only support EFI bootloaders
+            if platform.machine() == 'aarch64':
+                properties["capabilities"] += ",boot_mode:uefi"
+
             if utils.is_virtualized():
                 driver = "ssh_virtmedia"
                 properties["root_device"] = {"by_path": host_hdd_mapping['os']}