Commit graph

24 commits

Author SHA1 Message Date
David Schmitt
35b5d6bcc1 Allow package_provider fact to resolve on PE 3.x
PE 3.x emits a puppetversion fact in the format "3.x.x (Puppet Enterprise 3.x.x)". This fact causes an error when invoked on PE 3.x: Could not retrieve fact='package_provider', resolution='<anonymous>': Malformed version number string 3.8.1 (Puppet Enterprise 3.8.1

This fix has been tested on PE 3.8.2 and should work for PE 3.3, 3.7, and 3.8.

Original-fix-by: Alex Harden <aharden@gmail.com>
2015-12-18 17:38:04 +00:00
Reid Vandewiele
13e5d467c9 (FM-3773) Fix root_home fact on AIX 5.x
The -C (capital C) flag to lsuser is incorrect. It should be -c
(lowercase).

this commit updates the aix root_home fact to use `lsuser -c`, rather
than `lsuser -C`.
2015-11-19 15:44:52 -08:00
Jesse Lovelace
6aa7f2db99 Add check to ensure regex does not throw for none type.
Add a quick check to ensure puppetversion value is not nil and supporting test.
2015-10-15 11:27:03 -05:00
Adam S
ce6e8679b6 Add package_provider fact
This adds a package_provider fact for situations where we need to be
able to know the client's package provider in a simple way.  Situations
such as: package { 'name': install_options => [] }  As those tend to be
package provider specific options.
2015-09-25 17:55:21 -07:00
Hunter Haugen
4d1bca3359 Merge pull request #506 from binford2k/feature/service_provider_fact
Add a service_provider fact
2015-09-24 10:55:39 -07:00
Jon Fautley
6c2a003f21 (MODULES-2478) Support root_home fact on AIX through "lsuser" command
Squashed, and amended test for comment lines.
2015-08-28 15:21:13 +01:00
Ben Ford
66e118a92a Add a service_provider fact
This returns the default provider Puppet will choose to manage services
on this system by instantiating a dummy service resource type and
returning the provider chosen.

Co-Authored-By: Simon Fraser University <asa188@sfu.ca>
2015-08-19 15:05:47 -07:00
David Schmitt
f3e79ddcd5 Convert tests to use plain rspec-puppet
Tests in the new style produces the following documentation output:

abs
  should not eq nil
  should run abs() and raise an Puppet::ParseError
  should run abs(-34) and return 34
  should run abs("-34") and return 34
  should run abs(34) and return 34
  should run abs("34") and return 34
2015-06-01 18:02:22 +01:00
Ashley Penney
d65d2354a7 Convert specs to RSpec 2.99.0 syntax with Transpec
This conversion is done by Transpec 2.2.1 with the following command:
    transpec spec/unit

* 53 conversions
    from: obj.should
      to: expect(obj).to

* 19 conversions
    from: == expected
      to: eq(expected)

* 5 conversions
    from: lambda { }.should
      to: expect { }.to

* 2 conversions
    from: be_true
      to: be_truthy

For more details: https://github.com/yujinakayama/transpec#supported-conversions
2014-06-04 14:37:45 -04:00
Hunter Haugen
c66a2e4f49 Add mode +x to spec .rb files 2014-05-07 15:00:30 -07:00
Andrea Veri
09f892023c Add the missing shebangs and fix the wrong ones for rpmlint to stop complaining loudly 2014-05-07 11:49:25 +02:00
Ashley Penney
68acb59bf7 Adjust the regular expression for facts.
Previously this was incorrectly handling facts that were of the form
foo=1+1=2 due to the ='s in the actual fact contents.  Fix this and
add tests to try and prevent regressions.
2014-04-22 23:15:16 +02:00
Kylo Ginsberg
b691be7ea9 (maint) Remove facter versions test
This test attempts to emulate various versions of facter, but is
still dependent on the version of facter it is running against. The
immediate symptom was that the test breaks with facter 2.0.1 because
it adds another external facts search directory.

I tried a couple ways to stub this but allowing it to pretend
to run against one set of facters, while actually running against
one real facter (which might itself be one of several versions)
eluded me.

So this patch just removes the test.
2014-04-16 12:30:24 -07:00
William Van Hevelingen
fe676f0ac4 (PUP-1459) Add support for root_home on OS X 10.9
getent does not exist on 10.9 so this commit uses
dscacheutil to query the homedir for the root user.
2014-01-22 22:54:34 -08:00
Andrew Parker
799e968f5c (Maint) Update stubbing to work with facter 1.7.4
Facter 1.7.4 changed how it decides on what directory to look in for
facts.d based on the user it is running as. This stubs out that bit of
code to make it think it is running as root.
2013-12-18 14:46:54 -08:00
Jeff McCune
3b887c880c (#20582) Restore facter_dot_d to stdlib for PE users
Without this patch Puppet Enterprise users who install the most recent
version of stdlib lose the ability to resolve certain facts critical to
the operation of Puppet Enterprise.  These facts are defined externally
in the file
`/etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt`.
As an example, Puppet Enterprise catalogs fail to compile if the
`fact_stomp_server`, and `fact_stomp_port` facts are not defined.

`facter_dot_d` was removed from stdlib version 4 because Facter version
1.7 now supports external facts defined in
`/etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt`.
Puppet Enterprise does not yet include Facter 1.7, however.  The most
recent PE release, 2.8.1, includes Facter 1.6.17.  With this version of
Facter, users who replace the version of stdlib that ships with PE with
the most recent version from the Forge will lose the ability to resolve
facts from
`/etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt`.

This patch addresses the problem by detecting if Facter version < 1.7 is
loaded.  If so, then the facter_dot_d.rb facts will be defined using the
stdlib custom fact.  If Facter >= 1.7 is being used then stdlib will not
define external facts.
2013-05-07 09:42:35 -07:00
Jeff McCune
97f836f41b (maint) Fix spec failures resulting from Facter API changes
Without this patch stdlib tests fail against Facter 2.x and master but
not 1.6.x.

This patch fixes the problem by initializing the example group
differently depending on the version of Facter integrating into the
system.  The adjusted methods are:

 1.x - Facter.collection.loader.load
 2.x - Facter.collection.load

The collection actually implements the load method in both version, it's
simply marked as private in 1.x.
2012-10-25 15:36:54 -07:00
Jeff McCune
9693c04c9d Revert "Revert "Merge branch 'haus-add_pe_facts_to_stdlib' into 2.4.x""
This reverts commit d6d23b495c.

This backwards-compatible additional functionality is targeted at the
next minor release.  There are already backwards-incompatible changes in
the master branch so we need to establish a new minor branch.
2012-10-25 10:46:57 -07:00
Jeff McCune
d6d23b495c Revert "Merge branch 'haus-add_pe_facts_to_stdlib' into 2.4.x"
This reverts commit 74e6411157, reversing
changes made to 417d219aa6.

Here's why:

Actually... I just screwed this up.

I merged this new fact into 2.4.x but it's not fixing any bug. It's adding a
new fact, so this should go into master and we should release 2.5 since this is
new, backwards-compatible functionality.
2012-10-25 10:41:52 -07:00
Matthaus Owens
4442f1edb5 Add spec tests for pe_version facts
This commit adds some basic spec tests for the pe_version facts. There are
basic postitive and negative cases.
2012-10-24 17:23:42 -07:00
Josh Cooper
63834354c2 Merge pull request #44 from jeffmccune/ticket/2.3.x/12357_add_puppet_settings_facts
(#12357) Make facter_dot_d look in Puppet[:confdir]/facts.d
2012-03-06 17:14:35 -08:00
Jeff McCune
a452f6a9af (#12357) Add puppet_vardir custom fact
Without this patch the PE modules don't have a way to identify a
filesystem path where it's OK to place variable data related to managing
the target node.  This is a problem when a module like pe_compliance
needs to write a wrapper script to the node's filesystem.

This patch addresses the problem by exposing the node's Puppet[:vardir]
setting as a Facter fact.

This fact value will be set to `nil` if Puppet is not loaded into
memory.  If Puppet is loaded, e.g. using `facter --puppet` or using
`puppet agent` or `puppet apply` then the fact will automatically set
the value to Puppet[:vardir]

The value of this setting is subject to Puppet's run_mode.

This patch implements a new utility method in the standard library
module named `Facter::Util::PuppetSettings.with_puppet`.  The method
accepts a block and will only invoke the block if the Puppet library is
loaded into the Ruby process.  If Puppet is not loaded, the method
always returns nil.  This makes it easy to define Facter facts that only
give values if Puppet is loaded in memory.
2012-03-05 16:26:22 -08:00
Jeff McCune
afd22ddc99 (#12357) Fix root_home fact on Windows
Without this patch the root_home fact fails on windows.  This patch
fixes the problem by only calling methods on the object returned by the
`getent passwd root` command if the object evaluates to true.

Because there is no root account on Windows the code block simply
returns `nil` which makes the Facter fact undefined on Windows
platforms.

The root cause of the failure is that we always expected the command to
succeed and return something useful, and it may not on all supported
platforms.
2012-03-05 15:22:06 -08:00
Jeff McCune
11c1837745 (#9859) Add root_home fact and tests
Without this patch applied, the stdlib module does not provide a
root_home fact.  This fact is necessary to easily determine the root
account home directory on platforms Puppet is supported on.

The major variations this fact address are:
---
solaris: /
linux: /root
macosx: /var/root

Spec tests using rspec have been provided as well to cover these three
general cases.  Windows tests are marked as pending.
2011-10-03 11:51:05 -07:00