diff options
Diffstat (limited to 'modules/facter')
| -rw-r--r-- | modules/facter/lib/facter/dc_suffix.rb | 4 | ||||
| -rw-r--r-- | modules/facter/lib/facter/lib_dir.rb | 6 | ||||
| -rw-r--r-- | modules/facter/lib/facter/wildcard_sslcert.rb | 16 | ||||
| -rw-r--r-- | modules/facter/spec/spec_helper.rb | 34 | ||||
| -rw-r--r-- | modules/facter/spec/unit/dc_suffix.rb | 15 | ||||
| -rw-r--r-- | modules/facter/spec/unit/lib_dir.rb | 23 |
6 files changed, 93 insertions, 5 deletions
diff --git a/modules/facter/lib/facter/dc_suffix.rb b/modules/facter/lib/facter/dc_suffix.rb index a8526978..c480e3ac 100644 --- a/modules/facter/lib/facter/dc_suffix.rb +++ b/modules/facter/lib/facter/dc_suffix.rb @@ -2,9 +2,9 @@ Facter.add("dc_suffix") do setcode do begin Facter.domain - rescue + rescue Facter.loadfacts() end dc_suffix = 'dc=' + Facter.value('domain').gsub('.',',dc=') end -end +end diff --git a/modules/facter/lib/facter/lib_dir.rb b/modules/facter/lib/facter/lib_dir.rb index fe7d6a31..315d7594 100644 --- a/modules/facter/lib/facter/lib_dir.rb +++ b/modules/facter/lib/facter/lib_dir.rb @@ -2,9 +2,9 @@ Facter.add("lib_dir") do setcode do begin Facter.architecture - rescue + rescue Facter.loadfacts() end - '/usr/lib' + ( Facter.value('architecture') == "x86_64" ? '64' : '') + '/' + '/usr/lib' + ( Facter.value('architecture') == "x86_64" ? '64' : '') end -end +end diff --git a/modules/facter/lib/facter/wildcard_sslcert.rb b/modules/facter/lib/facter/wildcard_sslcert.rb new file mode 100644 index 00000000..093982d9 --- /dev/null +++ b/modules/facter/lib/facter/wildcard_sslcert.rb @@ -0,0 +1,16 @@ +Facter.add("wildcard_sslcert") do + setcode do + begin + Facter.domain + rescue + Facter.loadfacts() + end + sslfiles = '/etc/ssl/wildcard.' + Facter.value('domain') + if File.exist?(sslfiles + '.crt') and File.exist?(sslfiles + '.key') \ + and File.exist?(sslfiles + '.pem') + 'true' + else + 'false' + end + end +end diff --git a/modules/facter/spec/spec_helper.rb b/modules/facter/spec/spec_helper.rb new file mode 100644 index 00000000..ec3fe615 --- /dev/null +++ b/modules/facter/spec/spec_helper.rb @@ -0,0 +1,34 @@ +# taken from facter source code +# ASL 2.0 +dir = File.expand_path(File.dirname(__FILE__)) + +SPECDIR = dir +$LOAD_PATH.unshift("#{dir}/../lib") + +require 'mocha' +require 'rspec' +require 'facter' +require 'fileutils' + +RSpec.configure do |config| + config.mock_with :mocha + + config.before :each do + # Ensure that we don't accidentally cache facts and environment + # between test cases. + Facter::Util::Loader.any_instance.stubs(:load_all) + Facter.clear + Facter.clear_messages + + # Store any environment variables away to be restored later + @old_env = {} + ENV.each_key {|k| @old_env[k] = ENV[k]} + end + + config.after :each do + # Restore environment variables after execution of each test + @old_env.each_pair {|k, v| ENV[k] = v} + to_remove = ENV.keys.reject {|key| @old_env.include? key } + to_remove.each {|key| ENV.delete key } + end +end diff --git a/modules/facter/spec/unit/dc_suffix.rb b/modules/facter/spec/unit/dc_suffix.rb new file mode 100644 index 00000000..4b7a4648 --- /dev/null +++ b/modules/facter/spec/unit/dc_suffix.rb @@ -0,0 +1,15 @@ +#!/usr/bin/env rspec + +require 'spec_helper' + +describe "Dc_suffix fact" do + it "should be based on tld domain" do + Facter.fact(:domain).stubs(:value).returns("test") + Facter.fact(:dc_suffix).value.should == "dc=test" + end + + it "should be based on domain" do + Facter.fact(:domain).stubs(:value).returns("test.example.org") + Facter.fact(:dc_suffix).value.should == "dc=test,dc=example,dc=org" + end +end diff --git a/modules/facter/spec/unit/lib_dir.rb b/modules/facter/spec/unit/lib_dir.rb new file mode 100644 index 00000000..50049f19 --- /dev/null +++ b/modules/facter/spec/unit/lib_dir.rb @@ -0,0 +1,23 @@ +#!/usr/bin/env rspec + +require 'spec_helper' + +describe "Lib_dir fact" do + it "should default to /usr/lib" do + Facter.fact(:architecture).stubs(:value).returns("bogus") + Facter.fact(:lib_dir).value.should == "/usr/lib" + end + + archs = Hash.new + # TODO add arm 64 and others + archs = { + "i586" => "/usr/lib", + "x86_64" => "/usr/lib64", + } + archs.each do |arch, dir| + it "should be #{dir} on #{arch}" do + Facter.fact(:architecture).stubs(:value).returns(arch) + Facter.fact(:lib_dir).value.should == dir + end + end +end |
