Module: Puppet::ApplicationSupport
- Defined in:
- lib/puppet/application_support.rb
Class Method Summary collapse
-
.configure_indirector_routes(application_name) ⇒ void
private
Reads the routes YAML settings from the file specified by Puppet and resets indirector termini for the current application class if listed.
-
.push_application_context(run_mode, environment_mode = :local) ⇒ void
private
Pushes a Puppet Context configured with a remote environment for an agent (one that exists at the master end), and a regular environment for other modes.
Class Method Details
.configure_indirector_routes(application_name) ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Reads the routes YAML settings from the file specified by Puppet and resets indirector termini for the current application class if listed.
For instance, PE uses this to set the master facts terminus to ‘puppetdb’ and its cache terminus to ‘yaml’.
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/puppet/application_support.rb', line 53 def self.configure_indirector_routes(application_name) route_file = Puppet[:route_file] if Puppet::FileSystem.exist?(route_file) routes = Puppet::Util::Yaml.safe_load_file(route_file, [Symbol]) if routes["server"] && routes["master"] Puppet.warning("Route file #{route_file} contains both server and master route settings.") elsif routes["server"] && !routes["master"] routes["master"] = routes["server"] elsif routes["master"] && !routes["server"] routes["server"] = routes["master"] end application_routes = routes[application_name] Puppet::Indirector.configure_routes(application_routes) if application_routes end end |
.push_application_context(run_mode, environment_mode = :local) ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Pushes a Puppet Context configured with a remote environment for an agent (one that exists at the master end), and a regular environment for other modes. The configuration is overridden with options from the command line before being set in a pushed Puppet Context.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/puppet/application_support.rb', line 22 def self.push_application_context(run_mode, environment_mode = :local) Puppet.push_context_global(Puppet.base_context(Puppet.settings), "Update for application settings (#{run_mode})") # This use of configured environment is correct, this is used to establish # the defaults for an application that does not override, or where an override # has not been made from the command line. # configured_environment_name = Puppet[:environment] if run_mode.name == :agent configured_environment = Puppet::Node::Environment.remote(configured_environment_name) elsif environment_mode == :not_required configured_environment = Puppet.lookup(:environments).get(configured_environment_name) || Puppet::Node::Environment.remote(configured_environment_name) else configured_environment = Puppet.lookup(:environments).get!(configured_environment_name) end configured_environment = configured_environment.override_from_commandline(Puppet.settings) # Setup a new context using the app's configuration Puppet.push_context({ :current_environment => configured_environment }, "Update current environment from application's configuration") end |