# class Puppet::Application::Filebucket

### Attributes

args[R]

### Public Instance Methods

backup() click to toggle source

    # File lib/puppet/application/filebucket.rb, line 128
    def backup
      raise "You must specify a file to back up" unless args.length > 0

      args.each do |file|
        unless FileTest.exists?(file)
          $stderr.puts "#{file}: no such file"
          next
        end
        unless FileTest.readable?(file)
          $stderr.puts "#{file}: cannot read file"
          next
        end
        md5 = @client.backup(file)
        puts "#{file}: #{md5}"
      end
    end

get() click to toggle source

    # File lib/puppet/application/filebucket.rb, line 122
    def get
      md5 = args.shift
      out = @client.getfile(md5)
      print out
    end

help() click to toggle source

    # File lib/puppet/application/filebucket.rb, line 13
      def help
        <<-'HELP'

    puppet-filebucket(8) -- Store and retrieve files in a filebucket
    ========

    SYNOPSIS
    --------
    A stand-alone Puppet filebucket client.

    USAGE
    -----
    puppet filebucket <mode> [-h|--help] [-V|--version] [-d|--debug]
      [-v|--verbose] [-l|--local] [-r|--remote] [-s|--server <server>]
      [-b|--bucket <directory>] <file> <file> ...

    Puppet filebucket can operate in three modes, with only one mode per call:

    backup:
      Send one or more files to the specified file bucket. Each sent file is
      printed with its resulting md5 sum.

    get:
      Return the text associated with an md5 sum. The text is printed to
      stdout, and only one file can be retrieved at a time.

    restore:
      Given a file path and an md5 sum, store the content associated with
      the sum into the specified file path. You can specify an entirely new
      path to this argument; you are not restricted to restoring the content
      to its original location.

    DESCRIPTION
    -----------
    This is a stand-alone filebucket client for sending files to a local or
    central filebucket.

    Note that 'filebucket' defaults to using a network-based filebucket
    available on the server named 'puppet'. To use this, you'll have to be
    running as a user with valid Puppet certificates. Alternatively, you can
    use your local file bucket by specifying '--local'.

    OPTIONS
    -------
    Note that any configuration parameter that's valid in the configuration
    file is also a valid long argument. For example, 'ssldir' is a valid
    configuration parameter, so you can specify '--ssldir <directory>' as an
    argument.

    See the configuration file documentation at
    http://docs.puppetlabs.com/references/stable/configuration.html for the
    full list of acceptable parameters. A commented list of all
    configuration options can also be generated by running puppet with
    '--genconfig'.

    * --debug:
      Enable full debugging.

    * --help:
      Print this help message

    * --local:
      Use the local filebucket. This will use the default configuration
      information.

    * --remote:
      Use a remote filebucket. This will use the default configuration
      information.

    * --server:
      The server to send the file to, instead of locally.

    * --verbose:
      Print extra information.

    * --version:
      Print version information.

    EXAMPLE
    -------
        $ puppet filebucket backup /etc/passwd
        /etc/passwd: 429b225650b912a2ee067b0a4cf1e949
        $ puppet filebucket restore /tmp/passwd 429b225650b912a2ee067b0a4cf1e949

    AUTHOR
    ------
    Luke Kanies

    COPYRIGHT
    ---------
    Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License

        HELP
      end

restore() click to toggle source

    # File lib/puppet/application/filebucket.rb, line 145
    def restore
      file = args.shift
      md5 = args.shift
      @client.restore(file, md5)
    end

run_command() click to toggle source

    # File lib/puppet/application/filebucket.rb, line 115
    def run_command
      @args = command_line.args
      command = args.shift
      return send(command) if %w{get backup restore}.include? command
      help
    end

setup() click to toggle source

    # File lib/puppet/application/filebucket.rb, line 151
    def setup
      Puppet::Log.newdestination(:console)

      @client = nil
      @server = nil

      Signal.trap(:INT) do
        $stderr.puts "Cancelling"
        exit(1)
      end

      if options[:debug]
        Puppet::Log.level = :debug
      elsif options[:verbose]
        Puppet::Log.level = :info
      end

        exit(Puppet.settings.print_configs ? 0 : 1) if Puppet.settings.print_configs?

      require 'puppet/file_bucket/dipper'
      begin
        if options[:local] or options[:bucket]
          path = options[:bucket] || Puppet[:bucketdir]
          @client = Puppet::FileBucket::Dipper.new(:Path => path)
        else
          @client = Puppet::FileBucket::Dipper.new(:Server => Puppet[:server])
        end
      rescue => detail
        Puppet.log_exception(detail)
        exit(1)
      end
    end