diff options
author | Luke Kanies <luke@madstop.com> | 2008-10-02 22:56:35 -0500 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2008-10-03 14:07:05 +1000 |
commit | 1a9b5677de01fc1ed5a9a6ebbea99a73def7f689 (patch) | |
tree | 4008bf1b6a4975dbf6526cb4181a90b1fc68619f | |
parent | 397c8416f78c7a1d081f673dcfe2d70e2d7cee16 (diff) | |
download | puppet-1a9b5677de01fc1ed5a9a6ebbea99a73def7f689.tar.gz puppet-1a9b5677de01fc1ed5a9a6ebbea99a73def7f689.tar.xz puppet-1a9b5677de01fc1ed5a9a6ebbea99a73def7f689.zip |
Fixing #1614 - Environments no longer have to be listed out.
Signed-off-by: Luke Kanies <luke@madstop.com>
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | lib/puppet/defaults.rb | 7 | ||||
-rw-r--r-- | lib/puppet/node/environment.rb | 18 | ||||
-rwxr-xr-x | spec/unit/node/environment.rb | 52 |
4 files changed, 4 insertions, 75 deletions
@@ -1,4 +1,6 @@ 0.24.x + Fixing #1614 - Environments no longer have to be listed out + Fixed #1628 - Changed node search to use certname rather than Facter hostname Updated puppet binary documentation diff --git a/lib/puppet/defaults.rb b/lib/puppet/defaults.rb index a2900fd43..e1b6dc423 100644 --- a/lib/puppet/defaults.rb +++ b/lib/puppet/defaults.rb @@ -122,16 +122,11 @@ module Puppet namespaces and methods. This can be used as a coarse-grained authorization system for both ``puppetd`` and ``puppetmasterd``." ], - :environments => ["production,development", "The valid environments for Puppet clients. - 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 => {:default => "production", :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.", - :hook => proc { |value| raise(ArgumentError, "Invalid environment %s" % value) unless Puppet::Node::Environment.valid?(value) } + we know nothing about." }, :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."], diff --git a/lib/puppet/node/environment.rb b/lib/puppet/node/environment.rb index 343720a62..b64b9c2c4 100644 --- a/lib/puppet/node/environment.rb +++ b/lib/puppet/node/environment.rb @@ -1,30 +1,14 @@ # Model the environment that a node can operate in. This class just # provides a simple wrapper for the functionality around environments. class Puppet::Node::Environment - # Return the list of valid environments. Just looks them up in - # the settings. - def self.valid - # LAK:NOTE See http://snurl.com/21zf8 [groups_google_com] - x = Puppet.settings.value(:environments).split(",").collect { |e| e.to_sym } - end - - # Is the provided environment valid? - def self.valid?(name) - return false if name.to_s == "" - valid.include?(name.to_sym) - end - @seen = {} - # Return an existing environment instance, or create a new one, - # validating the environment name. + # Return an existing environment instance, or create a new one. def self.new(name = nil) name ||= Puppet.settings.value(:environment) raise ArgumentError, "Environment name must be specified" unless name - raise(ArgumentError, "'%s' is not a valid environment" % name) unless valid?(name) - symbol = name.to_sym return @seen[symbol] if @seen[symbol] diff --git a/spec/unit/node/environment.rb b/spec/unit/node/environment.rb index 8433a9877..872c70912 100755 --- a/spec/unit/node/environment.rb +++ b/spec/unit/node/environment.rb @@ -5,73 +5,21 @@ require File.dirname(__FILE__) + '/../../spec_helper' require 'puppet/node/environment' describe Puppet::Node::Environment do - it "should provide a list of valid environments" do - Puppet::Node::Environment.valid.should be_instance_of(Array) - end - - it "should determine its list of valid environments from splitting the :environments setting on commas" do - Puppet.settings.stubs(:value).with(:environments).returns("one,two") - Puppet::Node::Environment.valid.collect { |e| e.to_s }.sort.should == %w{one two}.sort - end - - it "should not use an environment when determining the list of valid environments" do - Puppet.settings.expects(:value).with(:environments).returns("one,two") - Puppet::Node::Environment.valid - end - - it "should provide a means of identifying invalid environments" do - Puppet.settings.expects(:value).with(:environments).returns("one,two") - Puppet::Node::Environment.valid?(:three).should be_false - end - - it "should provide a means of identifying valid environments" do - Puppet.settings.expects(:value).with(:environments).returns("one,two") - 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") Puppet::Node::Environment.new().name.should == :one end it "should treat environment instances as singletons" do - Puppet.settings.stubs(:value).with(:environments).returns("one") Puppet::Node::Environment.new("one").should equal(Puppet::Node::Environment.new("one")) end it "should treat an environment specified as names or strings as equivalent" do - Puppet.settings.stubs(:value).with(:environments).returns("one") Puppet::Node::Environment.new(:one).should equal(Puppet::Node::Environment.new("one")) end - - it "should fail if an invalid environment instance is asked for" do - Puppet.settings.stubs(:value).with(:environments).returns("one,two") - proc { Puppet::Node::Environment.new("three") }.should raise_error(ArgumentError) - end - - it "should consider environments that are empty strings invalid" do - Puppet::Node::Environment.valid?("").should be_false - end - - it "should fail if a no-longer-valid environment instance is asked for" do - Puppet.settings.expects(:value).with(:environments).returns("one") - Puppet::Node::Environment.new("one") - Puppet.settings.expects(:value).with(:environments).returns("two") - proc { Puppet::Node::Environment.new("one") }.should raise_error(ArgumentError) - end end describe Puppet::Node::Environment, " when modeling a specific environment" do - before do - Puppet.settings.expects(:value).with(:environments).returns("testing") - end - it "should have a method for returning the environment name" do Puppet::Node::Environment.new("testing").name.should == :testing end |