Announce: Facter 1.6.1 Available

19 views
Skip to first unread message

Michael Stahnke

unread,
Sep 29, 2011, 12:42:20 PM9/29/11
to puppet...@googlegroups.com, puppe...@googlegroups.com
Facter 1.6.1 is a maintenance release containing fixes, updates and
refactoring. Significant effort has been put into getting to Facter to
run on Windows for this release, as noted below.

This release is available for download at:
http://puppetlabs.com/downloads/facter/facter-1.6.1.tar.gz

See the Verifying Puppet Download section at:
http://projects.puppetlabs.com/projects/puppet/wiki/Downloading_Puppet#Verifying+Puppet+Downloads


Please report feedback via the Puppet Labs Redmine site, using an
affected version of 1.6.1:
http://projects.puppetlabs.com/projects/facter/

Full Release Notes at: https://projects.puppetlabs.com/projects/facter/wiki/Wiki

RPMs are available via http://yum.puppetlabs.com/el

Facter is also available from rubygems.org.


# Facter 1.6.1 Release Notes
# Fix physicalprocessorcount on windows

Fix #9517

A broken test led to a broken fact. The WMI.execquery was
incorrectly stubbed
to return an array when the actual WMI.execquery does not return
an array. This
means that length, which works on arrays, does not work with WMI.execquery.
This fixes both the fact and the test. The test is unfortunately lifted to a
higher level, but it has the benefit of being correct.

Thanks to Eric Stonfer for the fact fix.

# Prevent repeated loading of fact files

Fix #8491

Fact loading could recurse indefinitely if a fact file attempted to call
Fact#value on a fact that was not yet defined before the current file.
If Fact#value was called outside of a setcode block, it would be
evaluated at load time and the loader would rescan the fact path from
the beginning and would reenter the current file, continuing until the
stack was full. This is a byproduct of the more exhaustive fact
searching introduced in 2255abee.

The resolution for this is to track the files that have been loaded and
ignore subsequent attempts to load them, emulating the behavior of
Kernel.require. However, since facts can be legitimately refreshed
over the life of a ruby process using Facter, Facter.clear will reset
the list of loaded files by destroying the fact collection, and
subsequently the loader.

Currently puppet agent will reload all facts preceeding a run, so normal
puppet agent behavior will remain as expected. However, the facter facts
terminus manually loads fact files itself and bypasses facter's search
path and standard loading mechanism. While it will benefit from the
recursion protection, it currently does not have a way to reset the
loaded file list.

# Fix logic for domain fact so hostname, then dnsdomainname and
finally resolv.conf is used.

Fix #9457

A recent commit changed the logic for how this fall-through logic was
working. I've fixed the logic and added more coverage to pick up on this.

# Physical Memory on Windows
(#8439) Implement total and free physical memory on Windows

This commit adds the 'memoryfree' and 'memorytotal' facts for Windows.
These values represent the amount of physical free and total memory
respectively. Note that the free and total values come from different
WMI objects that report memory sizes in different units. The free
value reported by Win32_OperatingSystem is in kB whereas the total
value as reported by Win32_ComputerSystem is in bytes.

This commit does not add facts for free and total page sizes, since
the total page size is associated with the Win32_PageFileSetting
class, but WMI reports no instance(s) available when automatic page
file management is enabled (and it is by default).

# Physical Processor Count for Windows
(#8439) Add physicalprocessorcount and processor facts on Windows

This commit adds the 'physicalprocessorcount', 'processor{n}' and
'processorcount' facts. The 'physicalprocessorcount' fact is obtained
by counting the number of Win32_Processor instances. Note that the WMI
query does a select on just the Name property, because it is faster
than doing a 'select *'

On Windows 2008, each Win32_Processor represents a physical processor,
and the NumberOfLogicalProcessors property (which includes both multi
and/or hyperthreaded cores) represents the number of logical
processors. For example, a dual-core processor, with quad-hyper
threads per core, will report 1 physical processor and 8 logical
processors.

Note that the NumberOfCores property could be used to distinguish
between multi-core and hyperthreading processors, but the fact does
not distinguish between them.

On Windows 2003, each Win32_Processor represents a logical processor,
and the NumberOfLogicalProcessors property is not available. In this
case, the physicalprocessorcount fact will be over-reported, but the
number of logical processors will be correct.

With that said, if this hotfix is installed, then 2003 behaves like
2008:

http://support.microsoft.com/kb/932370

The Win32_Processor.Name property contains extra spaces:

Intel(R) Core(TM) i7 CPU M 620 @ 2.67GHz

So we 'squeeze' the output to eliminate duplicate spaces:

processor0 => Intel(R) Core(TM) i7 CPU M 620 @ 2.67GHz

# IP Facts for Windows
(#8439) Add interface-specific ip facts for Windows

This commit adds Windows to the list of Facter::Util::IP
'supported_platforms'

It adds support for the 'interfaces' fact, e.g.

interfaces =>
Loopback_Pseudo_Interface_1,Local_Area_Connection,Teredo_Tunneling_Pseudo_Interface

On Windows, the name of the interface can be edited to include
non-alphanumeric characters, which are not valid fact names. This
commit changes the alphafy method to ensure the returned value only
includes alphanumeric characters (and underscore).

And the ipaddress, netmask, network, and ipaddress6 per-interface
facts, e.g.

ipaddress_local_area_connection => 172.16.138.218
netmask_local_area_connection => 255.255.255.0
network_local_area_connection => 172.16.138.0

ipaddress6_teredo_tunneling_pseudo_interface =>
2001:0:4137:9e76:24de:36a7:53ef:7525

Note the per-interface macaddress fact is not yet supported.

Also these facts are only supported on 2008, because the output and
syntax of netsh is different on 2003. Also 2003 has dependencies on
the Routing and Remote Access service, which may not be running.

# Scientific Linux CERN Detection
Add Scientific Linux CERN detection to facter. Fixes #9260

Adds the SLC operatingsystem fact, and adds the SLC variant to all
locations that Scientific Linux is specified.

Added additional unit tests to verify that SLC would not be confused
with Scientific Linux.

## CHANGELOG
3117e82 (#9517) Fix physicalprocessorcount on windows
4d93745 (#8491) Prevent repeated loading of fact files
6db71d4 (#9457) Fix logic for domain fact so hostname, then
dnsdomainname and finally resolv.conf is used.
88f343c (#2344) VMware version parsing fix
6d47012 (#4869) Implement productname as Darwin hw.model
d28d96c (#4508) Xen HVM domU not detected as virtual
d55983e (#9178) Add Oracle Linux identification
ec04277 (#4228) Ensure MAC address octets have leading zeroes.
3eb3628 Add Scientific Linux CERN detection to facter. Fixes #9260
f810170 (#7957) is_virtual should be false for openvz host nodes
1414e0b (#9059) is_virtual should be false on vmware_server
7fb0e6a (#8439) Add interface-specific ip facts for Windows
5d5848c (#8439) Add ipaddress6 fact on Windows
7531a2b (#8439) Add ps fact on Windows
ddb67c5 (#8439) Move macaddress resolution on Windows
0721f2f (#7682) Add complete support for Scientific Linux
a347920 (#9183) Add support for Alpine linux detection
824fac0 (#8439) Add physicalprocessorcount and processor facts on Windows
9ef56d6 (#8439) Implement total and free physical memory on Windows
b3e2274 (#8439) Add Facter::Util::WMI module
00bed7a (#8964) Search mountinfo for selinux mount point
e8d00ec (#8964) Search mountinfo for selinux mount point
c5d63d4 Fix #2766 - silence unknown sysctl values
5d9cc84 (#8660) Fix destdir option on Windows
e329450 (#8247) Fixing arp DNS timeout issue.
15d0406 use each_line instead of each for strings in ruby 1.9
08b3f77 (#7854) Add Augeas library version fact
e84c051 Fixed #7307 - Added serial number fact to Solaris

Reply all
Reply to author
Forward
0 new messages