Facter 4.0.52
Released March 2021 and shipped with Puppet7.5.0.
We would like to thank the following Puppet community members for their contributions to this release: smokris..
New features
-
Azure metadata fact. This release adds the
az_metadata
fact which provides information on Azure virtual machine instances. For more information, see the Microsoft Azure instance metadata documentation. FACT-1383 -
Azure identification fact. This release adds the
cloud.provider
fact for Azure identification on Linux and Windows platforms. FACT-1847
Enhancements
-
Dependency to
lsb
packages are missing Theos.distro
facts are now resolved without thelsb_release
on the following platforms: RHEL, Amazon, SLES. The information is read from the system in the same way. Note that theos.distro.specification
fact, which refers tolsb
version, is available only if thelsb_release
has been installed. FACT-2931 -
Linux networking resolver split into four classes. The Linux networking resolver was too large and has now been split into four classes. The classes are:
toSocketParser
(gets data from the Ruby Socket library),DHCP
(gets all DHCP related data),RoutingTable
(gets interface data from theip route show
command, if something can not be retrieved withSocketParser
) and the Linux resolver (combines the data from the other classes). FACT-2915
Resolved issues
-
Permission denied error when reading Facter cache during PE 2021 upgrade. Facter 4 no longer loads
facter.conf
from the default location when running on jRuby. FACT-2959 -
Facter 4 reports
lsbmajdistrelease
on Ubuntu differently from Facter 3. Previously, thelsbmajdistrelease
fact from Facter 4 was not showing the correct value on Ubuntu. This is now fixed and aligns the fact's output with Facter 3. FACT-2952 -
Root of structured core facts cannot be overridden by a custom fact. Previously, the root of structured core facts could not be overridden by a custom fact — because the top-level fact did not exist. This release updates the
QueryParser
logic to return the root fact — if present in the loaded facts list — and allows redefinition of core facts. FACT-2950 -
Facter tries to load an incompatible
libsocket.so
on SmartOS. Previously, Facter tried to load an incompatible (32-bit)libsocket.so
from a hardcoded path usingffi
and failed to retrieve networking facts. Now, the library name is preferred and networking facts can be retrieved on SmartOS. Contributed by Puppet community member smokris. FACT-2947 -
Puppet Server creates another certname during upgrade. Previously, when upgrading Puppet 6 to Puppet 7 on Linux, Facter failed to retrieve the domain using JRuby because the
Socket.getaddrinfo
calls failed. Now, if any of the Socket method calls fail, Facter can retrieve the information using FFI methods. FACT-2944 -
The
puppet facts show
command logs error when stdlib is installed. This release fixes an issue whereFacter.value
did not return the fact value for a legacy fact. This happened when calling a legacy fact from a custom fact or calling other Facter API methods before callingFacter.value
. FACT-2937 -
Facter 4
pe-bolt-server
raises access denied error if cache is enabled. When Facter is unable to delete the cache files, it now logs a warning message instead of returning error. FACT-2961 - Facter 4 does not accept the same time
units as Facter 3. This release makes
the following
ttls
time units available in Facter 4:ns
,nanos
,nanoseconds
,us
,micros
,microseconds
,ms
,milis
,milliseconds
,s
,m
,h
,d
. Note that singular time units are also accepted, for example,mili
andnano
.FACT-2962 - The
Facter.conf
file does not accept singularttls
units. Previously, Facter failed if thettls
unit in thefacter.conf
file was a plural ("days" and "hours"). Facter now accepts a singular noun ("day" and "hour").