class Puppet::Configurer::PluginHandler

Constants

SUPPORTED_LOCALES_MOUNT_AGENT_VERSION

Public Instance Methods

download_plugins(environment) click to toggle source
   # File lib/puppet/configurer/plugin_handler.rb
10 def download_plugins(environment)
11   source_permissions = Puppet::Util::Platform.windows? ? :ignore : :use
12 
13   plugin_downloader = Puppet::Configurer::Downloader.new(
14     "plugin",
15     Puppet[:plugindest],
16     Puppet[:pluginsource],
17     Puppet[:pluginsignore],
18     environment
19   )
20   plugin_fact_downloader = Puppet::Configurer::Downloader.new(
21     "pluginfacts",
22     Puppet[:pluginfactdest],
23     Puppet[:pluginfactsource],
24     Puppet[:pluginsignore],
25     environment,
26     source_permissions
27   )
28 
29   result = []
30   result += plugin_fact_downloader.evaluate
31   result += plugin_downloader.evaluate
32 
33   unless Puppet[:disable_i18n]
34     # until file metadata/content are using the rest client, we need to check
35     # both :server_agent_version and the session to see if the server supports
36     # the "locales" mount
37     server_agent_version = Puppet.lookup(:server_agent_version) { "0.0" }
38     locales = Gem::Version.new(server_agent_version) >= SUPPORTED_LOCALES_MOUNT_AGENT_VERSION
39     unless locales
40       session = Puppet.lookup(:http_session)
41       locales = session.supports?(:fileserver, 'locales') || session.supports?(:puppet, 'locales')
42     end
43 
44     if locales
45       locales_downloader = Puppet::Configurer::Downloader.new(
46         "locales",
47         Puppet[:localedest],
48         Puppet[:localesource],
49         Puppet[:pluginsignore] + " *.pot config.yaml",
50         environment
51       )
52       result += locales_downloader.evaluate
53     end
54   end
55 
56   Puppet::Util::Autoload.reload_changed(Puppet.lookup(:current_environment))
57 
58   result
59 end