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