What’s New in Beaker 21?¶
Beaker 21 simplifies the process for system owners to run hardware scans on their Beaker systems, reducing it to a single click or CLI command. This release also includes an improved version of the beaker-system-scan tool, providing broader hardware support and more accurate hardware information for Beaker systems.
Simplified hardware scanning¶
The Hardware Details tab on the system page shows Beaker’s record
of the hardware in a system, including memory, CPU, and devices. The data on
this page is populated by running the /distribution/inventory
task on the
system, usually through the
--inventory
option to the
bkr machine-test command.
For system owners and other users with permission to reserve a system, the Hardware Details tab now includes a Scan button which triggers a hardware scan with a single click. When a hardware scan is requested, Beaker will select the best available distro family and architecture which is compatible with that system, and schedule a job to provision it and run the hardware scan when the system is free.
The simplified hardware scanning functionality is also available from the command line with the new bkr update-inventory command. Refer to bkr update-inventory for details.
Hardware scanning using lshw¶
Version 2.0 of the beaker-system-scan tool has also been released.
The new version of beaker-system-scan uses lshw to scan and identify hardware in a system, and then sends the details back to Beaker’s inventory. It now supports all architectures and distros, and in many cases the data it collects is more accurate than previous versions.
In order to make lshw usable for Beaker’s hardware scanning, the Beaker development team reported and submitted patches for a large number of bugs and enhancements:
- #562: VirtIO disks
- #615: logical sector size for disks
- #623: DASD on IBM S/390
- #658: IBM S/390 CPU capability descriptions
- #685: model names for IBM POWER
- #688: missing PCI storage classes, hints in XML output
- #691: Plug ’n Play devices
- #692: IBM Virtual I/O devices
- #693: IBM S/390 devices
- #694: use memory hotplug to determine total size
- #695: DIMM information on IBM JS20
- #696: read SMBIOS data from
/sys/firmware/dmi/tables/
- #697: SMBIOS 3.0
- #690: incorrect integer sizes in device tree parsing on some platforms
- #668: compilation failure with glibc 2.5 (RHEL5)
- #698: “x86-64” capability should not be present on aarch64 systems
- #699: incorrect number of physical CPUs on aarch64
- #700: incorrect handling of multiple memory arrays in SMBIOS data
- #701: buffer signedness issue in SCSI inquiry
- #702: buffer size off by one in SCSI inquiry
(Contributed by Dan Callaghan, Amit Saha, James de Vries, and Matt Jia in #541294, #896302, #902567, and associated bugs.)
Other new features and enhancements¶
The bkr watchdog-extend command now accepts “taskspec” arguments of
the form R:123
or T:123
to specify the watchdog to be extended. It also
accepts system FQDNs as arguments, which will extend the watchdog of the recipe
running on the given system. The existing argument format (task ID without
T:
prefix) is also accepted for backwards compatibility. (Contributed by
Matt Jia in #1103582.)
A new XML element <diskspace/>
can be used in <hostRequires/>
to filter
on the total size of all disks in the system. This augments the existing disk
size filter which applies to individual disks in the system. (Contributed by
Matt Jia in #1187402.)
A new kickstart metadata variable no_autopart
causes the default autopart
command to be suppressed in the kickstart. You
can set this variable if you want to supply custom partitioning commands in
a <ks_append/>
section of your recipe. (Contributed by Matt Jia in
#1198881.)
Beaker’s Graphite integration now includes metrics for “dirty” jobs count, and number of queued and running power commands. (Contributed by Dan Callaghan in #1173069.)
Notable changes¶
The way Beaker computes the overall status of jobs, recipe sets, and recipes has been changed so that Aborted take precedence over Cancelled, and Cancelled takes precedence over Completed. If some tasks in a recipe are Completed and others are Cancelled or Aborted, the overall status of the recipe will now be Cancelled or Aborted, not Completed. Similarly, if some recipes in a job are Completed and others are Cancelled or Aborted, the overall status of the job is now shown as Cancelled or Aborted, not Completed. (Contributed by Dan Callaghan in #714937.)
In recipes using Fedora, the official Fedora yum repos configured by the
fedora-release
package will now be disabled. This ensures that the yum
repos available after installation match the yum repos used during
installation, and also makes it possible to provision older Fedora releases
where the official Fedora yum repos have been deleted. (Contributed by Matt Jia
in #1202075.)
When uploading a task RPM, unrecognized fields in testinfo.desc
are now
silently ignored instead of causing the upload to be rejected. (Contributed by
Dan Callaghan in #1226443.)
Harness updates¶
Version 0.7.9 of the Beah test harness and version 4.67 of the rhts
test
execution library have been released.
On distros without systemd the harness is now more resilient to failures when
writing to /dev/console
. On distros with systemd the harness no longer
writes to /dev/console
directly, instead it relies on systemd’s journal
to capture its logging output and display it to the console.
The rhts-sync-block
, rhts-test-checkin
, and rhts-test-update
scripts now avoid writing messages to /dev/console
directly for the
same reason.
On distros with systemd the harness services now also depend on
network-online.target
to ensure the network is up before they are started,
regardless of how the network is configured.
Task updates¶
Version 1.12-2 of the /distribution/install
task has been published. The
anaconda.coverage
log file produced by Anaconda is now uploaded along
with other log files. (Contributed by Alexander Todorov in #1248304.)
Version 4.0-89 of the /distribution/virt/install
task for installing guest
recipes has been published. It now obeys the kernel options specified for the
guest recipe. (Contributed by Jan Stancek in #1236691.)
Bug fixes¶
A number of bug fixes are also included in this release:
- #1252503: Fixed a regression in Beaker client 20.2 which would cause bkr system-release to exit successfully even though it had not released the system. (Contributed by Matt Jia)
- #1253103: Beaker’s disk records for systems are now properly updated. Previously, old disk entries would be left behind in some cases when a disk was removed or changed. (Contributed by Dan Callaghan)
- #1213225: The beaker-repo-update tool no longer attempts to fetch harness packages for distros which do not exist in any Beaker lab. This avoids the situation where Beaker’s database may contain references to obsolete or incorrect distro names which have no corresponding harness packages, causing unnecessary WARNING messages to be displayed. (Contributed by Matt Jia)
- #1195558: Fixed a corner case in
<reservesys/>
handling which could cause a recipe to become reserved instead of cancelled when a user cancels it. (Contributed by Dan Callaghan) - #1210540: The beaker-watchdog daemon no longer attempts to expire the watchdog for “dirty” jobs. This avoids a potential crash under pathological circumstances in which beakerd is taking a very long time to process dirty jobs. (Contributed by Matt Jia)
- #1198914: Due to an earlier bug in the logic for system deletion, the
database may contain orphaned rows in the
system_access_policy
table not referenced by any system. Such orphaned rows will be cleaned up by a migration script. (Contributed by Matt Jia) - #1211465: Beaker is now compatible with Alembic 0.7, which is included in EPEL7. (Contributed by Matt Jia)
- #653317: Due to the changes in bkr watchdog-extend described above, the error message shown when the user supplies an invalid task ID is now clearer. (Contributed by Matt Jia)
Maintenance updates¶
The following fixes have been included in Beaker 21 maintenance updates.
Beaker 21.1¶
- #1010355: The
--hostrequire
option for workflow commands now supports thelike
operator, for example:--hostrequire 'hostname like %.example.com'
. (Contributed by Dan Callaghan) - #1184907: The beaker-wizard utility now accepts any identifier as the test type. It will suggest, but not require, the standard set of Beaker test types. (Contributed by Filip Holec and Roman Joost)
- #1254385: The bkr remove-account command (and its
corresponding XMLRPC method
users.remove_account
) now accept an extra option to specify who the new owner should be when reassigning systems which were owned by the removed account. (Contributed by Roman Joost) - #1270649: Restored the previous behaviour of the broken system detection logic, so that it only considers a recipe as suspicious if all tasks in the recipe are Aborted, rather than any task. The behaviour changed inadvertently in Beaker 21.0 due to the change in recipe status calculation described above. (Contributed by Roman Joost)
- #916302: If an
interrupt
power command fails the system will no longer be marked as Broken. This avoids falsely marking a system as Broken if its power script does not support theinterrupt
command. (Contributed by Roman Joost) - #1262098: When a recipe uses custom partitioning, Beaker now
configures a
/boot
partition matching the recommended size for the distro in use (200MB for RHEL3-4, 250MB for RHEL5-6, 500MB for RHEL7+ and Fedora). Previously the/boot
partition was always 200MB which in some cases was too small. (Contributed by Dan Callaghan) - #1172472: The
leavebootorder
kernel option is now set by default during installation for POWER architectures. This is necessary to avoid Anaconda changing the NVRAM boot order in case the recipe uses a custom kickstart which does not include thebootloader --leavebootorder
command. (Contributed by Dan Callaghan) - #1255210: Kickstart snippets now include an explicit
.service
suffix on unit names when invokingsystemctl
. This makes it possible to provision Fedora releases older than Fedora 20. (Contributed by Dan Callaghan) - #1254048: The
ipmilan
power script has been updated to use the-a
option forfence_ipmilan
instead of-i
, which was removed in fence-agents 4.0. (Contributed by Dan Callaghan) - #1229937, #1229938: Fixed issues with bkr job-list
which caused its
--tag
option to have no effect, and its--whiteboard
option to cancel out other options. (Contributed by Dan Callaghan) - #1251294: Fixed an issue with the confirmation dialog when deleting a system pool which would cause it to remain open when cancelled. (Contributed by Matt Jia)
- #1254381: The empty string is no longer accepted as a valid name for a system pool. (Contributed by Roman Joost)
- #1253111: The
push
XMLRPC method for updating inventory data will no longer automatically create unrecognized architectures. An administrator must manually create the new arch in Beaker first if needed. This is to avoid the situation where a bug in beaker-system-scan could populate Beaker’s architecture list with incorrect values. (Contributed by Dan Callaghan) - #1249496: Fixed an issue with redirect URLs which would cause Beaker
to redirect to
http://
URLs instead ofhttps://
when deployed behind an SSL-terminating reverse proxy. (Contributed by Dan Callaghan)
Version 2.1 of the beaker-system-scan hardware scanning utility has also been released:
- #1249462: Virtio memory balloon devices are now always treated as generic devices rather than memory (regardless of their PCI class) so that they appear in Beaker’s device list. (Contributed by Dan Callaghan)
- #1249460: USB devices with no device ID (0000:0000) are now excluded
from the
USBID
key-value. (Contributed by Dan Callaghan) - #1249463: Plug ‘n Play (PnP) devices are now reported as
pnp
bus type instead ofUnknown
. (Contributed by Dan Callaghan) - #1249466: Fixed a rounding error with the
DISKSPACE
key-value which could cause it to be inaccurate by several MB when multiple disks are present. (Contributed by Dan Callaghan)
Version 3.4-6 of the /distribution/reservesys
task has also been released:
- #1270627: The
extendtesttime.sh
now reports a Beaker result every time it is run. The result score is set to the number of hours by which the watchdog was extended. (Contributed by Dan Callaghan)
Beaker 21.2¶
- #1277340: Restore the previous behavior of the bkr job-list which filters on substrings when given –whiteboard option. (Contributed by Dan Callaghan)
- #857090: The beaker-wizard utility now supports RhtsRequired libraries by using -Q option. You can also use rhtsrequires in the <skeleton> xml tag in your preferences file to specify RhtsRequired libraries. (Contributed by Martin Žember and Matt Jia)
- #1255420: Fixed the bkr workflow commands to return the right arch list when given both –family and –distro options. (Contributed by Dan Callaghan)
- #1279871: Fixed XML-RPC calls return HTTP 400 when provisioning the latest Fedora Rawhide. (Contributed by Dan Callaghan)
- #1269076: Beaker now doesn’t mark systems as broken which started installation. (Contributed by Roman Joost)
- #1062319: The “Queue” button now is always visible on clone job page. (Contributed by Matt Jia)
Version 4.68 of the rhts
test development and execution library has also
been released:
- #1275142: The rhts-db-submit-result now ignores “mapping multiple BARs” warning on IBM x3250m4 models when doing the dmesg checks. (Contributed by Dan Callaghan)