ironic-python-agent/ironic_python_agent
Julia Kreger 76accfb880 Fix UTF-16 result handling for efibootmgr
The tl;dr is that UEFI NVRAM is in encoded
in UTF-16, and when we run the efibootmgr command,
we can get unicode characters back.

Except we previously were forcing everything to be
treated as UTF-8 due to the way oslo.concurrency's
processutils module works.

This could be observed with UTF character 0x00FF
which raises up a nice exception when we try to
decode it.

Anyhow! while fixing handling of this, we discovered
we could get basically the cruft out of the NVRAM,
by getting what was most likey a truncated string
out of our own test VMs. As such, we need to also
permit decoding to be tollerant of failures.
This could be binary data or as simple as flipped
bits which get interpretted invalid characters.
As such, we have introduced such data into one of our
tests involving UEFI record de-duplication.

Closes-Bug: 2015602
Change-Id: I006535bf124379ed65443c7b283bc99ecc95568b
2023-04-17 09:14:24 -07:00
..
api Use Werkzeug modern version 2022-04-14 10:47:06 +00:00
cmd Capture the early logging 2021-04-01 11:16:20 -07:00
extensions Fix failure of bind mount in _install_grub2 2022-09-22 19:34:12 +09:00
hardware_managers update NVIDIA NIC firmware images and settings by ironic-python-agent 2023-01-11 14:00:07 +00:00
tests Fix UTF-16 result handling for efibootmgr 2023-04-17 09:14:24 -07:00
__init__.py [trivial] Fix typo in __init__.py 2021-12-16 22:03:51 +01:00
agent.py Increase version of hacking and pycodestyle 2021-07-30 14:34:33 +02:00
burnin.py Burn-in: Dynamic network pairing 2022-01-10 11:31:33 +01:00
config.py Guard shared device/cluster filesystems 2022-07-19 13:24:03 -07:00
dmi_inspector.py Collect processor, memory and BIOS output of dmidecode - follow-up 2017-07-27 07:30:54 -07:00
efi_utils.py Fix UTF-16 result handling for efibootmgr 2023-04-17 09:14:24 -07:00
encoding.py Fix serializing ironic-lib exceptions 2020-07-02 12:18:53 +02:00
errors.py Guard shared device/cluster filesystems 2022-07-19 13:24:03 -07:00
hardware.py Report system firmware information in the inventory 2023-03-31 14:28:32 +02:00
inject_files.py New deploy step for injecting arbitrary files 2021-02-16 16:56:52 +01:00
inspect.py Add jitter to inspection command reporting 2020-03-31 08:13:13 -07:00
inspector.py Remove oslo.serialization dependency 2022-06-17 09:37:35 +02:00
ironic_api_client.py Remove oslo.serialization dependency 2022-06-17 09:37:35 +02:00
netutils.py Bring up VLAN interfaces and include in introspection report 2020-11-20 10:17:00 -05:00
numa_inspector.py Skip nic numa_node discovery if it's not assigned to a numa_node 2020-01-17 11:15:35 +01:00
partition_utils.py Drop support for instance netboot 2022-07-07 16:38:22 +02:00
raid_utils.py SoftwareRAID: Enable skipping RAIDS 2022-09-05 20:43:51 +00:00
tls_utils.py Generate TLS certificates with validity time in the past 2020-12-10 16:22:13 +01:00
utils.py Report system firmware information in the inventory 2023-03-31 14:28:32 +02:00
version.py Remove importlib-metadata from requirements 2022-06-21 17:54:39 +02:00