diff options
author | Matt Robinson <matt@puppetlabs.com> | 2010-07-12 16:57:35 -0700 |
---|---|---|
committer | Markus Roberts <Markus@reality.com> | 2010-07-13 23:09:36 -0700 |
commit | 27d5a4782c442908c71bb9abac9f78654581eacf (patch) | |
tree | 171130ced6e281b021215dc3f1fb35e5121e7e5e | |
parent | 06cc552b8b1196ff833eb911eccf1c234d4b0d67 (diff) | |
download | puppet-27d5a4782c442908c71bb9abac9f78654581eacf.tar.gz puppet-27d5a4782c442908c71bb9abac9f78654581eacf.tar.xz puppet-27d5a4782c442908c71bb9abac9f78654581eacf.zip |
[#4215] Have rundir depend on vardir
This came up because if you ran puppetd with a specific vardir, then
when rundir got set to a hardcoded value its parent directory might not
exist and the whole thing would fail.
This change came about with the concept of run_mode, and this fix is
restoring the behaviour that was in 0.25.x
Reviewed-by: Jesse Wolfe
Signed-off-by: Matt Robinson <matt@puppetlabs.com>
-rw-r--r-- | lib/puppet/util/run_mode.rb | 18 | ||||
-rw-r--r-- | spec/unit/util/run_mode_spec.rb | 51 |
2 files changed, 60 insertions, 9 deletions
diff --git a/lib/puppet/util/run_mode.rb b/lib/puppet/util/run_mode.rb index eb9c511dc..450cbf1a6 100644 --- a/lib/puppet/util/run_mode.rb +++ b/lib/puppet/util/run_mode.rb @@ -40,17 +40,17 @@ module Puppet end def run_dir - which_dir("/var/run/puppet", "~/.puppet/var") + "$vardir/run" end def logopts - if name == :master + if master? { :default => "$vardir/log", - :mode => 0750, - :owner => "service", - :group => "service", - :desc => "The Puppet log directory." + :mode => 0750, + :owner => "service", + :group => "service", + :desc => "The Puppet log directory." } else ["$vardir/log", "The Puppet log directory."] @@ -64,9 +64,9 @@ module Puppet # there's a comment that suggests that we do that # and we currently don't. expand_path case - when name == :master; global - when Puppet.features.root?; global - else user + when name == :master; global + when Puppet.features.root?; global + else user end end diff --git a/spec/unit/util/run_mode_spec.rb b/spec/unit/util/run_mode_spec.rb new file mode 100644 index 000000000..d6ab08a10 --- /dev/null +++ b/spec/unit/util/run_mode_spec.rb @@ -0,0 +1,51 @@ +#!/usr/bin/env ruby + +require File.dirname(__FILE__) + '/../../spec_helper' + +describe Puppet::Util::RunMode do + before do + @run_mode = Puppet::Util::RunMode.new('fake') + end + + it "should have confdir /etc/puppet when run as root" do + Puppet.features.stubs(:root?).returns(true) + @run_mode.conf_dir.should == '/etc/puppet' + end + + it "should have confdir ~/.puppet when run as non-root" do + Puppet.features.stubs(:root?).returns(false) + @run_mode.expects(:expand_path).with("~/.puppet").returns("~/.puppet") + @run_mode.conf_dir.should == "~/.puppet" + end + + it "should have vardir /var/lib/puppet when run as root" do + Puppet.features.stubs(:root?).returns(true) + @run_mode.var_dir.should == '/var/lib/puppet' + end + + it "should have vardir ~/.puppet/var when run as non-root" do + Puppet.features.stubs(:root?).returns(false) + @run_mode.expects(:expand_path).with("~/.puppet/var").returns("~/.puppet/var") + @run_mode.var_dir.should == "~/.puppet/var" + end + + it "should have rundir depend on vardir" do + @run_mode.run_dir.should == '$vardir/run' + end + + it "should have logopts return an array with $vardir/log if runmode is not master" do + @run_mode.expects(:master?).returns false + @run_mode.logopts.should == ["$vardir/log", "The Puppet log directory."] + end + + it "should have logopts return a hash with $vardir/log and other metadata if runmode is master" do + @run_mode.expects(:master?).returns true + @run_mode.logopts.should == { + :default => "$vardir/log", + :mode => 0750, + :owner => "service", + :group => "service", + :desc => "The Puppet log directory.", + } + end +end |