Support EC2 facts on OpenStack

OpenStack exports an EC2 compatible API, so make the information
available via facts by knowing that OpenStack generates mac addresses
beginning with 02:16:3E
add a simple test for openstack ec2 facts
Merge pull request #139 from katzj/openstack-ec2-facts-1.6.x

Support EC2 facts on OpenStack
(#12079) Fix order-dependent test failure due to odd stubbing.

The submitted tests worked fine until the order they ran in was perturbed;
after that, bad expectations were shown.  This corrects that subtle failure.

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
Merge pull request #154 from daniel-pittman/bug/1.6.x/12079-fix-ec2-test-order-dependency-in-stubs

Bug/1.6.x/12079 fix ec2 test order dependency in stubs
Merge pull request #153 from rodjek/ticket/9574

Add filesystem fact & tests
(#12077) Add pciutils RPM dependency

This patch adds pciutils as a dependency to the redhat spec file facter/conf/redhat.  Facter uses both lspci and dmidecode to determine the virtual/is_virtual facts/detection of hypervisors, so it should also depend on the pciutils package.  Also reference RHBZ# 783749 for addition of the same to fedora, originally noted by Dominic Cleal.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #155 from MosesMendoza/ticket/1.6rc/12077_add_pciutils_rpm_dependency

(#12077) Add pciutils RPM dependency
Updated CHANGELOG for 1.6.5 release.
Updating conf/redhat/facter.spec for 1.6.5 release.
Changes apple rake task to reflect package name facter instead of puppet.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #158 from MosesMendoza/fix_apple_rake_task

Fix apple rake task
(#12012) Fix bug with overriding LANG environment variable

There is a yields? method called with_env which is intended to temporarily override environment variables and then restore them to their previous state after executing the caller's block of code.  The Facter::Util::Resolution.exec() method uses this, but the yield block contained several occurrences of the "return" statement; this statement breaks out of the rest of the execution of the yields? method, and thus the environment variables were never being restored by the final stanza of the with_env method.  This changeset fixes that bug.

Also adds a spec test to reproduce/verify.
(#12012) removed extraneous nils
Merge pull request #159 from cprice-puppet/bug/master/12012-global-ENV-LANG-override

(#12012) Fix bug with overriding LANG environment variable
(#12170) Adds gem spec description
Without this patch, the gem spec file is missing a
description attribute, which causes a warning message
when generating the gem.  This patch adds a description
attribute to the spec with the facter tagline
'You can prove anything with facts!'

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #160 from MosesMendoza/ticket/1.6.x/12170_add_gem_spec_description

Ticket/1.6.x/12170 add gem spec description
Merge pull request #147 from nanliu/tickets/master/1424

(#1424) Add Solaris zonename fact.
(#11660) Adds feature SSHFP
(#11659) Adds ssh spec

RFC4255 SSH fingerprints are now facts in the form SSHFP_RSA,SSHFP_DSA,
SSHFP_ECDSA.

This also performs SHA2 and ECDSA that are part of the draft:
http://tools.ietf.org/id/draft-os-ietf-sshfp-ecdsa-sha2

(www.iana.org/assignments/dns-sshfp-rr-parameters).

Adds test cases for the ssh fact module. Reworks a bit of the ssh fact
implementation so that the test framework can work.
(#12362) Use Tempfile to generate temp files

Previously, facter used ENV['TMP'], ENV['TEMP'], /tmp, etc as it's
temp directory search path, using the first one that existed. It then
used constant file names within the temp directory to re-write the
files in ruby's bin directory, and bat wrappers on Windows.

First, it leads to predictable temp file names, which is bad. Second,
when installing facter via a non-interactive ssh shell, e.g.
  ssh <host> ruby install.rb

which is what the acceptance test harness does, the TMP and TEMP
environment variables are usually not defined. So facter was always
defaulting to /tmp, which doesn't work when installing facter on
Windows agents during acceptance tests.

This commit just changes the install script to use ruby's Tempfile to
generate secure temp files that works in non-interactive shells.