summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Robinson <matt@puppetlabs.com>2010-07-12 16:57:35 -0700
committerMarkus Roberts <Markus@reality.com>2010-07-13 23:09:36 -0700
commit27d5a4782c442908c71bb9abac9f78654581eacf (patch)
tree171130ced6e281b021215dc3f1fb35e5121e7e5e
parent06cc552b8b1196ff833eb911eccf1c234d4b0d67 (diff)
downloadpuppet-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.rb18
-rw-r--r--spec/unit/util/run_mode_spec.rb51
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