summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBritt Gresham <britt@puppetlabs.com>2014-10-08 15:54:44 -0700
committerBritt Gresham <britt@puppetlabs.com>2014-10-08 16:50:01 -0700
commit19832b23f18216cfd557ac9b26a3fbc886b94147 (patch)
tree9d78eb39749030a5c50c2a3ba45be22636634ace /lib
parentadd62f23db7f66ce1b74ae7f98b5b9958b9063be (diff)
downloadpuppet-19832b23f18216cfd557ac9b26a3fbc886b94147.tar.gz
(PUP-3244) Add Puppet::Environment::Directories#get! method
This new function will return the directory environment or raise an error if a directory environment does not exist. This gets rid of the need to check if environments exist across the codebase before continuing for the areas where we need.
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/environments.rb48
-rw-r--r--lib/puppet/node.rb9
2 files changed, 50 insertions, 7 deletions
diff --git a/lib/puppet/environments.rb b/lib/puppet/environments.rb
index 9f7ac5c31..6af5622de 100644
--- a/lib/puppet/environments.rb
+++ b/lib/puppet/environments.rb
@@ -48,6 +48,14 @@ module Puppet::Environments
# we are looking up
# @return [Puppet::Setting::EnvironmentConf, nil] the configuration for the
# requested environment, or nil if not found or no configuration is available
+ #
+ # @!macro [new] loader_get_or_fail
+ # Find a named environment or raise
+ # Puppet::Environments::EnvironmentNotFound when the named environment is
+ # does not exist.
+ #
+ # @param name [String,Symbol] The name of environment to find
+ # @return [Puppet::Node::Environment] the requested environment
# A source of pre-defined environments.
#
@@ -76,6 +84,14 @@ module Puppet::Environments
end
end
+ # @!macro loader_get_or_fail
+ def get!(name)
+ if !environment = get(name)
+ raise EnvironmentNotFound, name
+ end
+ environment
+ end
+
# Returns a basic environment configuration object tied to the environment's
# implementation values. Will not interpolate.
#
@@ -144,6 +160,14 @@ module Puppet::Environments
Puppet::Node::Environment.new(name)
end
+ # @note Because the Legacy system cannot list out all of its environments,
+ # this method will never fail and is only calling get directly.
+ #
+ # @!macro loader_get_or_fail
+ def get!(name)
+ get(name)
+ end
+
# @note we could return something here, but since legacy environments
# are deprecated, there is no point.
#
@@ -206,6 +230,14 @@ module Puppet::Environments
list.find { |env| env.name == name.intern }
end
+ # @!macro loader_get_or_fail
+ def get!(name)
+ if !environment = get(name)
+ raise EnvironmentNotFound, name
+ end
+ environment
+ end
+
# @!macro loader_get_conf
def get_conf(name)
valid_directories.each do |envdir|
@@ -259,6 +291,14 @@ module Puppet::Environments
nil
end
+ # @!macro loader_get_or_fail
+ def get!(name)
+ if !environment = get(name)
+ raise EnvironmentNotFound, name
+ end
+ environment
+ end
+
# @!macro loader_get_conf
def get_conf(name)
@loaders.each do |loader|
@@ -289,6 +329,14 @@ module Puppet::Environments
end
end
+ # @!macro loader_get_or_fail
+ def get!(name)
+ if !environment = get(name)
+ raise EnvironmentNotFound, name
+ end
+ environment
+ end
+
# Clears the cache of the environment with the given name.
# (The intention is that this could be used from a MANUAL cache eviction command (TBD)
def clear(name)
diff --git a/lib/puppet/node.rb b/lib/puppet/node.rb
index 8f79224b1..6f0d89dba 100644
--- a/lib/puppet/node.rb
+++ b/lib/puppet/node.rb
@@ -76,14 +76,9 @@ class Puppet::Node
def environment=(env)
if env.is_a?(String) or env.is_a?(Symbol)
- if !Puppet.lookup(:environments).get(env)
- raise Puppet::Environments::EnvironmentNotFound, env
- end
- @environment = Puppet.lookup(:environments).get(env)
- elsif env.is_a?(Puppet::Node::Environment)
- @environment = env
+ @environment = Puppet.lookup(:environments).get!(env)
else
- raise Puppet::Environments::EnvironmentNotFound, env
+ @environment = env
end
end