summaryrefslogtreecommitdiffstats
path: root/lib/puppet/agent/plugin_handler.rb
blob: 306b8b6df752d6157721b98187a155bc8efd99b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Break out the code related to plugins.  This module is
# just included into the agent, but having it here makes it
# easier to test.
module Puppet::Agent::PluginHandler
    def download_plugins?
        Puppet[:pluginsync]
    end

    # Retrieve facts from the central server.
    def download_plugins
        return nil unless download_plugins?
        Puppet::Agent::Downloader.new("plugin", Puppet[:pluginsource], Puppet[:plugindest], Puppet[:pluginsignore]).evaluate.each { |file| load_plugin(file) }
    end

    def load_plugin(file)
        return if FileTest.directory?(file)

        begin
            Puppet.info "Loading downloaded plugin %s" % file
            load file
        rescue Exception => detail
            Puppet.err "Could not load downloaded file %s: %s" % [file, detail]
        end
    end
end