From 53008e567fd64f391e0b45652b2f4ac1551ccf47 Mon Sep 17 00:00:00 2001 From: Luke Kanies Date: Mon, 19 Nov 2007 23:27:07 -0600 Subject: The Puppet settings instance now validates environments when you set an environment. --- lib/puppet/defaults.rb | 6 ++++-- spec/unit/node/environment.rb | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/puppet/defaults.rb b/lib/puppet/defaults.rb index da830952a..400cc98fd 100644 --- a/lib/puppet/defaults.rb +++ b/lib/puppet/defaults.rb @@ -131,11 +131,13 @@ module Puppet This is more useful as a server-side setting than client, but any environment chosen must be in this list. Values should be separated by a comma."], - :environment => ["development", "The environment Puppet is running in. For clients + :environment => {:default => "development", :desc => "The environment Puppet is running in. For clients (e.g., ``puppetd``) this determines the environment itself, which is used to find modules and much more. For servers (i.e., ``puppetmasterd``) this provides the default environment for nodes - we know nothing about."], + we know nothing about.", + :hook => proc { |value| raise(ArgumentError, "Invalid environment %s" % value) unless Puppet::Node::Environment.valid?(value) } + }, :diff_args => ["", "Which arguments to pass to the diff command when printing differences between files."], :diff => ["diff", "Which diff command to use when printing differences between files."], :show_diff => [false, "Whether to print a contextual diff when files are being replaced. The diff diff --git a/spec/unit/node/environment.rb b/spec/unit/node/environment.rb index cccff7b97..69d7acb47 100755 --- a/spec/unit/node/environment.rb +++ b/spec/unit/node/environment.rb @@ -29,6 +29,11 @@ describe Puppet::Node::Environment do Puppet::Node::Environment.valid?(:one).should be_true end + it "should be used to determine when an environment setting is valid" do + Puppet.settings.expects(:value).with(:environments).returns("one,two") + proc { Puppet.settings[:environment] = :three }.should raise_error(ArgumentError) + end + it "should use the default environment if no name is provided while initializing an environment" do Puppet.settings.expects(:value).with(:environments).returns("one,two") Puppet.settings.expects(:value).with(:environment).returns("one") -- cgit