Sha256: d49c0b391e65c2d49f1c3ee41da1600a01366f6ad43284b6c54a04148f904b1e
Contents?: true
Size: 1.99 KB
Versions: 32
Compression:
Stored size: 1.99 KB
Contents
# frozen_string_literal: true require_relative '../../puppet/face' require_relative '../../puppet/configurer/plugin_handler' Puppet::Face.define(:plugin, '0.0.1') do copyright "Puppet Inc.", 2011 license _("Apache 2 license; see COPYING") summary _("Interact with the Puppet plugin system.") description <<-'EOT' This subcommand provides network access to the puppet master's store of plugins. The puppet master serves Ruby code collected from the `lib` directories of its modules. These plugins can be used on agent nodes to extend Facter and implement custom types and providers. Plugins are normally downloaded by puppet agent during the course of a run. EOT action :download do summary _("Download plugins from the puppet master.") description <<-'EOT' Downloads plugins from the configured puppet master. Any plugins downloaded in this way will be used in all subsequent Puppet activity. This action modifies files on disk. EOT returns _(<<-'EOT') A list of the files downloaded, or a confirmation that no files were downloaded. When used from the Ruby API, this action returns an array of the files downloaded, which will be empty if none were retrieved. EOT examples <<-'EOT' Retrieve plugins from the puppet master: $ puppet plugin download Retrieve plugins from the puppet master (API example): $ Puppet::Face[:plugin, '0.0.1'].download EOT when_invoked do |_options| remote_environment_for_plugins = Puppet::Node::Environment.remote(Puppet[:environment]) begin handler = Puppet::Configurer::PluginHandler.new handler.download_plugins(remote_environment_for_plugins) ensure Puppet.runtime[:http].close end end when_rendering :console do |value| if value.empty? then _("No plugins downloaded.") else _("Downloaded these plugins: %{plugins}") % { plugins: value.join(', ') } end end end end
Version data entries
32 entries across 32 versions & 1 rubygems