StarlingX Bare Metal and Node Management, Hardware Maintenance
Go to file
Eric MacDonald db0b4ccadd Debian: Redfishtool requests fail when IPV4 address has square brackets
Redfishtool was introduced in CentOS for maintenance power control
and sensor monitoring. Both IPV4 and IPV6 addressing is supported.

The initial integration exposed an issue where square brackets were
required around the BMC IP address for IPV6 addressing. At the time
it was simpler to add the brackets for IPV4 as well.

    redfishtool -S Always -T 30 -r [${BM_IP}] root

However, the python3 version of redfishtool, introduced in Debian,
rejects requests with square braces around IPV4 addresses.

    redfishtool -v -S Always -T 20 -r [${BM_IP}] root
    # Main: Error: rc=5

This update introduces a utility to the mtce msgClass module used
to distinguish between IPV4 and IPV6 addresses. The redfish request
create utility is updated to use this new utility when creating the
redfishtool request without adding the square brackets in Debian
for BMC's provisioned with IPV4 addressing.

Update testing revealed that the Debian based python3 version of
redfishtool takes a few seconds longer compared to the python2 in
CentOS. This exposes a timer race condition during sensor monitoring.
The BMC pthread is currently given 60 seconds to complete its
requests. However, unlike sensor monitoring using ipmi which uses
one request, redfish requires two requests.

Unfortunately, requests using the Debian python3 version of
redfishtool sometimes take longer than 30 seconds. If the cumulation
of both requests take longer than the current max timeout of 60
seconds then that is treated as a pthread timeout error condition
causing the hardware monitor to enter an error state for that host
which requires it to go through a full reconnection algorithm.

Given this additional issue this update also increases the BMC
thread timeout from 60 to 100 seconds to avoid needless reconnections
when using the mildly slower Debian python3 redfishtool.

Test Plan:

PASS: Verify Build Debian and CentOS iso images
PASS: Verify Patch CentOS change
PASS: Verify Install Debian image

For both Debian and CentOS

PASS: Verify redfish sensor monitoring over IPV4
PASS: Verify ipmi sensor monitoring over IPV4
PASS: Verify redfish sensor monitoring over IPV6
PASS: Verify ipmi sensor monitoring over IPV6
PASS: Verify no redfish connection failure/recovery errors; 3 hr soak

Regression:

PASS: Verify sensor model relearn by command and reprovision
PASS: Verify system host-modify <id> bm_type change handling
PASS: Verify redfish critical sensor assert/clear handling
PASS: Verify ipmi critical sensor assert/clear handling
PASS: Verify mtcAgent and hwmond logging

Closes-Bug: 1991819
Signed-off-by: Eric MacDonald <eric.macdonald@windriver.com>
Change-Id: I3b69cc4f19c580687cd91b4f2033f6019be87e5e
2022-10-06 22:21:38 +00:00
api-ref/source Switch to newer openstackdocstheme and reno versions 2020-06-04 14:32:46 +02:00
bsp-files Removing unused package python-ryu 2022-08-15 12:25:11 +00:00
devstack Security: Handle nospectre_v1 in the bootargs 2020-01-28 18:21:13 -05:00
doc Switch to newer openstackdocstheme and reno versions 2020-06-04 14:32:46 +02:00
installer Debian: UEFI RT pxeboot installs need efi=runtime option 2022-09-26 17:15:24 -05:00
kickstart Merge "Prestage ostree repo at /opt/platform-backup for local installation" 2022-09-27 19:55:07 +00:00
mtce mtcAgent: Run in active mode 2022-09-13 21:38:50 +00:00
mtce-common Debian: Redfishtool requests fail when IPV4 address has square brackets 2022-10-06 22:21:38 +00:00
mtce-compute debian: Simplifying mtce-compute packaging 2022-03-10 19:39:04 +00:00
mtce-control Duplicate pmon.d conf files to another location 2022-08-26 16:21:18 -03:00
mtce-storage debian: Simplify mtce-storage packaging 2022-03-10 18:52:52 +00:00
releasenotes Switch to newer openstackdocstheme and reno versions 2020-06-04 14:32:46 +02:00
tools/rvmc debian: port rvmc docker image to Debian 2022-08-12 16:30:01 +00:00
.gitignore Update tox.ini files to use stein constraints 2019-06-25 13:20:35 -04:00
.gitreview OpenDev Migration Patch 2019-04-19 19:52:33 +00:00
.zuul.yaml Tox and Zuul job for the bandit code scan in starlingx/metal 2020-06-29 08:24:46 +00:00
CONTRIBUTORS.wrs StarlingX open source release updates 2018-05-31 07:36:43 -07:00
LICENSE StarlingX open source release updates 2018-05-31 07:36:43 -07:00
README.rst Followup opendev cleanup and test jobs 2019-04-22 16:42:03 +00:00
centos_build_layer.cfg Build layering, add layer build config file 2019-10-15 19:19:45 +08:00
centos_iso_image.inc Remove unused inventory and python-inventoryclient 2020-01-08 14:12:05 -06:00
centos_pkg_dirs rvmc: remove un-used build data 2020-01-16 08:39:54 -08:00
centos_stable_docker_images.inc Utility to install a server via Redfish 2019-12-31 15:34:54 +00:00
debian_build_layer.cfg Add debian_build_layer.cfg file 2021-10-05 14:08:23 -04:00
debian_iso_image.inc Include upgrades meta files to Debian ISO 2022-08-02 21:01:58 +00:00
debian_pkg_dirs Include upgrades meta files to Debian ISO 2022-08-02 21:01:58 +00:00
debian_stable_docker_images.inc debian: port rvmc docker image to Debian 2022-08-12 16:30:01 +00:00
pylint.rc Add pylint py3 portability checks for the metal repo 2021-09-13 11:57:42 -03:00
test-requirements.txt Removed wait_for_worker_config_init in AIO systems 2021-07-08 18:48:28 -04:00
tox.ini debian: port rvmc docker image to Debian 2022-08-12 16:30:01 +00:00

README.rst

metal

StarlingX Bare Metal Management