Merge branch '2.5.x' into 3.0.x
* 2.5.x: Update Modulefile, CHANGELOG for 2.5.0 Explicitly load functions used by ensure_resource re-formatting Add better docs about duplicate resource failures Handle undef for parameter argument Add function ensure_resource and defined_with_params Revert "Revert "Merge branch 'haus-add_pe_facts_to_stdlib' into 2.4.x"" Revert "Merge branch 'haus-add_pe_facts_to_stdlib' into 2.4.x" Prevent undefined method `split' for nil:NilClass with pe_foo_version facts (maint) Clear all facts before each example Add spec tests for pe_version facts Add PE facts to stdlib Conflicts: CHANGELOG Modulefile spec/spec_helper.rb
This commit is contained in:
commit
c8c7afc7a0
4 changed files with 160 additions and 0 deletions
24
CHANGELOG
24
CHANGELOG
|
@ -14,6 +14,30 @@
|
|||
2012-04-10 - Chris Price <chris@puppetlabs.com> - 3.0.0
|
||||
* (#13693) moving logic from local spec_helper to puppetlabs_spec_helper (85f96df)
|
||||
|
||||
2012-10-23 - Matthaus Owens <matthaus@puppetlabs.com> - 2.5.0
|
||||
* Add PE facts to stdlib (cdf3b05)
|
||||
|
||||
2012-08-15 - Dan Bode <dan@puppetlabs.com> - 2.5.0
|
||||
* Explicitly load functions used by ensure_resource (9fc3063)
|
||||
|
||||
2012-08-13 - Dan Bode <dan@puppetlabs.com> - 2.5.0
|
||||
* Add better docs about duplicate resource failures (97d327a)
|
||||
|
||||
2012-08-13 - Dan Bode <dan@puppetlabs.com> - 2.5.0
|
||||
* Handle undef for parameter argument (4f8b133)
|
||||
|
||||
2012-08-07 - Dan Bode <dan@puppetlabs.com> - 2.5.0
|
||||
* Add function ensure_resource and defined_with_params (a0cb8cd)
|
||||
|
||||
2012-08-20 - Jeff McCune <jeff@puppetlabs.com> - 2.5.0
|
||||
* Disable tests that fail on 2.6.x due to #15912 (c81496e)
|
||||
|
||||
2012-08-20 - Jeff McCune <jeff@puppetlabs.com> - 2.5.0
|
||||
* (Maint) Fix mis-use of rvalue functions as statements (4492913)
|
||||
|
||||
2012-08-20 - Jeff McCune <jeff@puppetlabs.com> - 2.5.0
|
||||
* Add .rspec file to repo root (88789e8)
|
||||
|
||||
2012-06-07 - Chris Price <chris@puppetlabs.com> - 2.4.0
|
||||
* Add support for a 'match' parameter to file_line (a06c0d8)
|
||||
|
||||
|
|
53
lib/facter/pe_version.rb
Normal file
53
lib/facter/pe_version.rb
Normal file
|
@ -0,0 +1,53 @@
|
|||
# Fact: is_pe, pe_version, pe_major_version, pe_minor_version, pe_patch_version
|
||||
#
|
||||
# Purpose: Return various facts about the PE state of the system
|
||||
#
|
||||
# Resolution: Uses a regex match against puppetversion to determine whether the
|
||||
# machine has Puppet Enterprise installed, and what version (overall, major,
|
||||
# minor, patch) is installed.
|
||||
#
|
||||
# Caveats:
|
||||
#
|
||||
Facter.add("pe_version") do
|
||||
setcode do
|
||||
pe_ver = Facter.value("puppetversion").match(/Puppet Enterprise (\d+\.\d+\.\d+)/)
|
||||
pe_ver[1] if pe_ver
|
||||
end
|
||||
end
|
||||
|
||||
Facter.add("is_pe") do
|
||||
setcode do
|
||||
if Facter.value(:pe_version).to_s.empty? then
|
||||
false
|
||||
else
|
||||
true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Facter.add("pe_major_version") do
|
||||
confine :is_pe => true
|
||||
setcode do
|
||||
if pe_version = Facter.value(:pe_version)
|
||||
pe_version.to_s.split('.')[0]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Facter.add("pe_minor_version") do
|
||||
confine :is_pe => true
|
||||
setcode do
|
||||
if pe_version = Facter.value(:pe_version)
|
||||
pe_version.to_s.split('.')[1]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Facter.add("pe_patch_version") do
|
||||
confine :is_pe => true
|
||||
setcode do
|
||||
if pe_version = Facter.value(:pe_version)
|
||||
pe_version.to_s.split('.')[2]
|
||||
end
|
||||
end
|
||||
end
|
|
@ -11,3 +11,18 @@ gem 'rspec', '>=2.0.0'
|
|||
require 'rspec/expectations'
|
||||
|
||||
require 'puppetlabs_spec_helper/module_spec_helper'
|
||||
|
||||
RSpec.configure do |config|
|
||||
# FIXME REVISIT - We may want to delegate to Facter like we do in
|
||||
# Puppet::PuppetSpecInitializer.initialize_via_testhelper(config) because
|
||||
# this behavior is a duplication of the spec_helper in Facter.
|
||||
config.before :each do
|
||||
# Ensure that we don't accidentally cache facts and environment between
|
||||
# test cases. This requires each example group to explicitly load the
|
||||
# facts being exercised with something like
|
||||
# Facter.collection.loader.load(:ipaddress)
|
||||
Facter::Util::Loader.any_instance.stubs(:load_all)
|
||||
Facter.clear
|
||||
Facter.clear_messages
|
||||
end
|
||||
end
|
||||
|
|
68
spec/unit/facter/pe_version_spec.rb
Normal file
68
spec/unit/facter/pe_version_spec.rb
Normal file
|
@ -0,0 +1,68 @@
|
|||
#!/usr/bin/env rspec
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe "PE Version specs" do
|
||||
before :each do
|
||||
Facter.collection.loader.load(:pe_version)
|
||||
end
|
||||
|
||||
context "If PE is installed" do
|
||||
%w{ 2.6.1 2.10.300 }.each do |version|
|
||||
puppetversion = "2.7.19 (Puppet Enterprise #{version})"
|
||||
context "puppetversion => #{puppetversion}" do
|
||||
before :each do
|
||||
Facter.fact(:puppetversion).stubs(:value).returns(puppetversion)
|
||||
end
|
||||
|
||||
(major,minor,patch) = version.split(".")
|
||||
|
||||
it "Should return true" do
|
||||
Facter.fact(:is_pe).value.should == true
|
||||
end
|
||||
|
||||
it "Should have a version of #{version}" do
|
||||
Facter.fact(:pe_version).value.should == version
|
||||
end
|
||||
|
||||
it "Should have a major version of #{major}" do
|
||||
Facter.fact(:pe_major_version).value.should == major
|
||||
end
|
||||
|
||||
it "Should have a minor version of #{minor}" do
|
||||
Facter.fact(:pe_minor_version).value.should == minor
|
||||
end
|
||||
|
||||
it "Should have a patch version of #{patch}" do
|
||||
Facter.fact(:pe_patch_version).value.should == patch
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "When PE is not installed" do
|
||||
before :each do
|
||||
Facter.fact(:puppetversion).stubs(:value).returns("2.7.19")
|
||||
end
|
||||
|
||||
it "is_pe is false" do
|
||||
Facter.fact(:is_pe).value.should == false
|
||||
end
|
||||
|
||||
it "pe_version is nil" do
|
||||
Facter.fact(:pe_version).value.should be_nil
|
||||
end
|
||||
|
||||
it "pe_major_version is nil" do
|
||||
Facter.fact(:pe_major_version).value.should be_nil
|
||||
end
|
||||
|
||||
it "pe_minor_version is nil" do
|
||||
Facter.fact(:pe_minor_version).value.should be_nil
|
||||
end
|
||||
|
||||
it "Should have a patch version" do
|
||||
Facter.fact(:pe_patch_version).value.should be_nil
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue