diff options
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/indirector/module_files.rb | 4 | ||||
-rw-r--r-- | lib/puppet/node.rb | 19 | ||||
-rw-r--r-- | lib/puppet/node/environment.rb | 1 |
3 files changed, 14 insertions, 10 deletions
diff --git a/lib/puppet/indirector/module_files.rb b/lib/puppet/indirector/module_files.rb index c79fae57b..84286d8a5 100644 --- a/lib/puppet/indirector/module_files.rb +++ b/lib/puppet/indirector/module_files.rb @@ -57,10 +57,8 @@ class Puppet::Indirector::ModuleFiles < Puppet::Indirector::Terminus def environment(node_name) if node_name and node = Puppet::Node.find(node_name) node.environment - elsif env = Puppet.settings[:environment] and env != "" - env else - nil + Puppet::Node::Environment.new.name end end diff --git a/lib/puppet/node.rb b/lib/puppet/node.rb index 9758c895c..2d87b6515 100644 --- a/lib/puppet/node.rb +++ b/lib/puppet/node.rb @@ -3,6 +3,7 @@ require 'puppet/indirector' # A simplistic class for managing the node information itself. class Puppet::Node require 'puppet/node/facts' + require 'puppet/node/environment' # Set up indirection, so that nodes can be looked for in # the node sources. @@ -19,19 +20,23 @@ class Puppet::Node attr_accessor :name, :classes, :parameters, :source, :ipaddress, :names attr_reader :time - attr_writer :environment + + # Set the environment, making sure that it's valid. + def environment=(value) + raise(ArgumentError, "Invalid environment %s" % value) unless Puppet::Node::Environment.valid?(value) + @environment = value + end # Do not return environments that are the empty string, and use # explicitly set environments, then facts, then a central env # value. def environment - unless @environment and @environment != "" - if env = parameters["environment"] and env != "" - @environment = env - elsif env = Puppet[:environment] and env != "" + unless @environment + if env = parameters["environment"] + raise(ArgumentError, "Invalid environment %s from parameters" % env) unless Puppet::Node::Environment.valid?(env) @environment = env else - @environment = nil + @environment = Puppet::Node::Environment.new.name.to_s end end @environment @@ -66,7 +71,7 @@ class Puppet::Node @parameters = options[:parameters] || {} - @environment = options[:environment] + self.environment = options[:environment] if options[:environment] @time = Time.now end diff --git a/lib/puppet/node/environment.rb b/lib/puppet/node/environment.rb index ada7f4eea..2a314803f 100644 --- a/lib/puppet/node/environment.rb +++ b/lib/puppet/node/environment.rb @@ -9,6 +9,7 @@ class Puppet::Node::Environment # Is the provided environment valid? def self.valid?(name) + return false if name.to_s == "" valid.include?(name.to_sym) end |