From df368cbd8a2f4975a5efea355e8cd9ba101c0cb9 Mon Sep 17 00:00:00 2001
From: Riccardo Pittau <elfosardo@gmail.com>
Date: Wed, 14 Apr 2021 10:26:57 +0200
Subject: [PATCH] Read default cirros version from stackrc

Workaround for grenade jobs to read CIRROS_VERSION variable from
stackrc.
We also give the possibility to specify a custom CIRROS_VERSION

In addition, fix transient iDRAC WS-Man BIOS test.

Depends-On: https://review.opendev.org/c/openstack/ironic/+/786387

Change-Id: Ic7f5dae5e6aa6916f0a7d73f43cc9552349385c5
---
 devstack/common_settings            | 7 ++++++-
 ironic/drivers/modules/drac/bios.py | 6 +++---
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/devstack/common_settings b/devstack/common_settings
index 59d12eb525..d649f70a59 100644
--- a/devstack/common_settings
+++ b/devstack/common_settings
@@ -7,7 +7,12 @@ fi
 # Whether configure the nodes to boot in Legacy BIOS or UEFI mode. Accepted
 # values are: "bios" or "uefi", defaults to "bios".
 IRONIC_BOOT_MODE=${IRONIC_BOOT_MODE:-bios}
-CIRROS_VERSION=${CIRROS_VERSION:-"0.5.1"}
+
+CIRROS_VERSION_DEVSTACK=$(set +o xtrace &&
+                          source $TOP_DIR/stackrc &&
+                          echo $CIRROS_VERSION)
+
+CIRROS_VERSION=${CIRROS_VERSION:-$CIRROS_VERSION_DEVSTACK}
 
 IRONIC_DEFAULT_IMAGE_NAME=cirros-${CIRROS_VERSION}-x86_64-uec
 
diff --git a/ironic/drivers/modules/drac/bios.py b/ironic/drivers/modules/drac/bios.py
index f0f83c655b..b6f59db61b 100644
--- a/ironic/drivers/modules/drac/bios.py
+++ b/ironic/drivers/modules/drac/bios.py
@@ -277,10 +277,10 @@ class DracWSManBIOS(base.BIOSInterface):
             time = timeutils.utcnow(with_timezone=True
                                     ) - timeutils.parse_isotime(str(
                                         factory_reset_time))
-            time_difference = time.seconds
+            time_difference = time.total_seconds()
             LOG.debug("Factory resetting node %(node_uuid)s "
-                      "time difference %(time_diffrence)s ",
-                      {"node_uuid": task.node.uuid, "time_diffrence":
+                      "time difference %(time_difference)s ",
+                      {"node_uuid": task.node.uuid, "time_difference":
                        time_difference})
 
             if time_difference > CONF.drac.bios_factory_reset_timeout: