summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2012-10-25 15:44:14 -0700
committerJeff McCune <jeff@puppetlabs.com>2012-10-25 15:44:14 -0700
commit43729e6ea9371b3335b8bbaf2fe0a5c09a3cd4a5 (patch)
tree4304339b93ca5a0ac044fc43add0b00f3378e0ec
parent2ce2c5bd8d138fcaf6485a6bd35c1da0f567b4d0 (diff)
Revert "Revert "Merge branch '2.5.x' into 3.0.x""
This reverts commit 9e8c60a8b73fd96393b08d690c7197e62aae623e. This was an error on my part. 3.1.x descends from 3.0.x _and_ 2.5.x, but 3.0.x does not descend from 2.5.x. I should not have merged 2.5.x into 3.0.x, instead I should have merged 2.5.x into 3.1.x skipping over the 3.0.x merge up. I'm slowly starting to understand the implications of semver on our branching strategy... =)
-rw-r--r--CHANGELOG24
-rw-r--r--lib/facter/pe_version.rb53
-rw-r--r--spec/spec_helper.rb15
-rw-r--r--spec/unit/facter/pe_version_spec.rb68
4 files changed, 160 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 14c6eb0..728ccbb 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -17,6 +17,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)
diff --git a/lib/facter/pe_version.rb b/lib/facter/pe_version.rb
new file mode 100644
index 0000000..0cc0f64
--- /dev/null
+++ b/lib/facter/pe_version.rb
@@ -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
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index e269b90..931d35c 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -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
diff --git a/spec/unit/facter/pe_version_spec.rb b/spec/unit/facter/pe_version_spec.rb
new file mode 100644
index 0000000..202a0e5
--- /dev/null
+++ b/spec/unit/facter/pe_version_spec.rb
@@ -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