summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/file_serving/configuration.rb9
-rw-r--r--lib/puppet/file_serving/configuration/parser.rb8
-rwxr-xr-xspec/unit/file_serving/configuration.rb15
-rwxr-xr-xspec/unit/file_serving/configuration/parser.rb12
4 files changed, 24 insertions, 20 deletions
diff --git a/lib/puppet/file_serving/configuration.rb b/lib/puppet/file_serving/configuration.rb
index 608924c8b..6092c24e2 100644
--- a/lib/puppet/file_serving/configuration.rb
+++ b/lib/puppet/file_serving/configuration.rb
@@ -94,6 +94,11 @@ class Puppet::FileServing::Configuration
private
+ def mk_default_mounts
+ @mounts["modules"] ||= Mount::Modules.new("modules")
+ @mounts["plugins"] ||= Mount::Plugins.new("plugins")
+ end
+
# Read the configuration file.
def readconfig(check = true)
config = Puppet[:fileserverconfig]
@@ -114,5 +119,9 @@ class Puppet::FileServing::Configuration
puts detail.backtrace if Puppet[:trace]
Puppet.err "Error parsing fileserver configuration: %s; using old configuration" % detail
end
+
+ ensure
+ # Make sure we've got our plugins and modules.
+ mk_default_mounts
end
end
diff --git a/lib/puppet/file_serving/configuration/parser.rb b/lib/puppet/file_serving/configuration/parser.rb
index c86e00a62..50368fdaf 100644
--- a/lib/puppet/file_serving/configuration/parser.rb
+++ b/lib/puppet/file_serving/configuration/parser.rb
@@ -46,8 +46,6 @@ class Puppet::FileServing::Configuration::Parser < Puppet::Util::LoadedFile
}
}
- mk_default_mounts
-
validate()
return @mounts
@@ -83,12 +81,6 @@ class Puppet::FileServing::Configuration::Parser < Puppet::Util::LoadedFile
}
end
- def mk_default_mounts
- ["plugins", "modules"].each do |name|
- newmount(name) unless @mounts[name]
- end
- end
-
# Create a new mount.
def newmount(name)
if @mounts.include?(name)
diff --git a/spec/unit/file_serving/configuration.rb b/spec/unit/file_serving/configuration.rb
index e62423caf..6f5dc115f 100755
--- a/spec/unit/file_serving/configuration.rb
+++ b/spec/unit/file_serving/configuration.rb
@@ -94,6 +94,21 @@ describe Puppet::FileServing::Configuration do
config.send(:readconfig, false)
config.mounted?("one").should be_true
end
+
+ it "should add modules and plugins mounts even if the file does not exist" do
+ FileTest.expects(:exists?).returns false # the file doesn't exist
+ config = Puppet::FileServing::Configuration.create
+ config.mounted?("modules").should be_true
+ config.mounted?("plugins").should be_true
+ end
+
+ it "should add modules and plugins mounts even if they are not returned by the parser" do
+ @parser.expects(:parse).returns("one" => mock("mount"))
+ FileTest.expects(:exists?).returns true # the file doesn't exist
+ config = Puppet::FileServing::Configuration.create
+ config.mounted?("modules").should be_true
+ config.mounted?("plugins").should be_true
+ end
end
describe "when finding the specified mount" do
diff --git a/spec/unit/file_serving/configuration/parser.rb b/spec/unit/file_serving/configuration/parser.rb
index 389e58389..6faf81b4c 100755
--- a/spec/unit/file_serving/configuration/parser.rb
+++ b/spec/unit/file_serving/configuration/parser.rb
@@ -32,10 +32,6 @@ describe Puppet::FileServing::Configuration::Parser do
describe Puppet::FileServing::Configuration::Parser, " when parsing" do
include FSConfigurationParserTesting
- before do
- @parser.stubs(:add_modules_mount)
- end
-
it "should allow comments" do
@filehandle.expects(:each).yields("# this is a comment\n")
proc { @parser.parse }.should_not raise_error
@@ -68,14 +64,6 @@ describe Puppet::FileServing::Configuration::Parser do
result["two"].should equal(mount2)
end
- it "should add plugins and modules mounts if they do not exist" do
- mock_file_content "[one]\npath /foo"
-
- result = @parser.parse
- result["plugins"].should_not be_nil
- result["modules"].should_not be_nil
- end
-
it "should only allow mount names that are alphanumeric plus dashes" do
mock_file_content "[a*b]\n"
proc { @parser.parse }.should raise_error(ArgumentError)