@host.facts['efi'] missing in foreman 2.1.2

Problem: Recently upgraded to foreman 2.1.2 and our partition table was checking the host fact @host.facts[‘efi’] to setup EFI volume. It is now missing.

Expected outcome: @host.facts[‘efi’] exists

Foreman and Proxy versions: 2.1.2

Foreman and Proxy plugin versions:

Distribution and version:

Other relevant data:

Name Description Author Version
foreman-tasks The goal of this plugin is to unify the way of showing task statuses across the Foreman instance. It defines Task model for keeping the information about the tasks and Lock for assigning the tasks to resources. The locking allows dealing with preventing multiple colliding tasks to be run on the same resource. It also optionally provides Dynflow infrastructure for using it for managing the tasks. Ivan Nečas 2.0.2
foreman_ansible Ansible integration with Foreman Daniel Lobato Garcia 5.1.1
foreman_bootdisk Plugin for Foreman that creates iPXE-based boot disks to provision hosts without the need for PXE infrastructure. Dominic Cleal 17.0.2
foreman_discovery MaaS Discovery Plugin engine for Foreman Aditi Puntambekar, alongoldboim, Alon Goldboim, amirfefer, Amit Karsale, Amit Upadhye, Amos Benari, Avi Sharvit, Bryan Kearney, bshuster, Daniel Lobato, Daniel Lobato Garcia, Daniel Lobato García, Danny Smit, David Davis, Djebran Lezzoum, Dominic Cleal, Eric D. Helms, Ewoud Kohl van Wijngaarden, Frank Wall, Greg Sutcliffe, ChairmanTubeAmp, Ido Kanner, imriz, Imri Zvik, Ivan Nečas, Joseph Mitchell Magen, June Zhang, kgaikwad, Lars Berntzon, ldjebran, Leos Stejskal, Lukas Zapletal, Lukáš Zapletal, Marek Hulan, Marek Hulán, Martin Bačovský, Matt Jarvis, Michael Moll, Nick, odovzhenko, Ohad Levy, Ondrej Prazak, Ondřej Ezr, Ori Rabin, orrabin, Partha Aji, Petr Chalupa, Phirince Philip, Rahul Bajaj, Robert Antoni Buj Gelonch, Scubafloyd, Sean O’Keeffe, Sebastian Gräßl, Shimon Shtein, Shlomi Zadok, Stephen Benjamin, Swapnil Abnave, Thomas Gelf, Timo Goebel, Tomas Strych, Tom Caspy, Tomer Brisker, and Yann Cézard 16.1.0
foreman_docker This version does not provide any functionality and only makes plugin removal easier. Daniel Lobato, Amos Benari 5.0.0
foreman_hooks Plugin engine for Foreman that enables running custom hook scripts on Foreman events Dominic Cleal 0.3.16
foreman_openscap Foreman plug-in for managing security compliance reports slukasik@redhat.com 4.0.2
foreman_remote_execution A plugin bringing remote execution to the Foreman, completing the config management functionality with remote management functionality. Foreman Remote Execution team 3.3.5
foreman_setup Plugin for Foreman that helps set up provisioning. Dominic Cleal 7.0.0
foreman_templates Engine to synchronise provisioning templates from GitHub Greg Sutcliffe 9.0.1
katello Katello adds Content and Subscription Management to Foreman. For this it relies on Candlepin and Pulp. N/A 3.16.0

This fact has been added to the recently released FDI:

However this is only during the discovery phase, once your host gets provisioned and a new puppet fact report arrives, it gets deleted. Unless you configure this fact as a custom fact on your own.

Make sure you are using the latest FDI:

I have completed the build yesterday and I will be announcing this release shortly.

Thank you LZAP. Yes we only use efi fact during provisioning and is used in partition I have another question as the kexec is now failing with no implicit conversion from array to string for the “extra”: in kexec template. Do you want me to open another question?

Sorry what’s wrong with "extra": [ ] again?

The template is here:

Discovery disk v3.7 is not parsing the kexec command from the kexec template and is producing the error: no implicit conversion from array to string.

Can you give a little bit more details about the error? Screenshot, stacktrace?

image

I can’t reproduce with 3.7.0, both kexec and reboot just works. Can you paste your rendered kexec template from Foreman? Maybe some parsing error?

{
  "kernel": "https://xxxxx.com/depot/rhel7-x86_64/test_latest/rhel-7-server-dvd-rpms/images/pxeboot/vmlinuz",
  "initram": "https://xxxxx.com/depot/rhel7-x86_64/test_latest/rhel-7-server-dvd-rpms/images/pxeboot/initrd.img",
  "append": "ks=http://xxxxxxxxx.com:8000/unattended/provision?token=8b70536b-9ee9-4f5b-bffe-5b3cdc55b11b&static=yes inst.ks.sendmac ip=xxx.xxx.xx.xxx::xx.xxx.xx.x:255.255.240.0:::none nameserver=xxx.x.xxx.xxx ksdevice=bootif BOOTIF=00-00-50-56-ab-0a-0f nomodeset nomodeset net.ifnames=0 biosdevname=0 nokaslr inst.sshd",
  "extra": []
}

LZAP this works with Discovery image 3.64.

I reproduced this with 3.7.0, remove "extra": [] and make sure you have a valid JSON to workaround this. I will update the image this week with a fix.

LZAP thank you! Will Do.

For the record:

LZAP Thanks. So does the fix handle extra: or should extra: be removed from the kexec template permanently?

LZAP Thanks. So does the fix handle extra: or should extra: be removed from the kexec template permanently?

Again, remove "extra": [] and make sure it’s valid JSON.