Sha256: 314a5b403a8a763e89a765c93ddec3367af63537aa23dd7457c492d085f2c7da

Contents?: true

Size: 1.24 KB

Versions: 5

Compression:

Stored size: 1.24 KB

Contents

require 'puppet/indirector'

# Provide any attributes or functionality needed for indirected
# instances.
class Puppet::Indirector::Request
    attr_accessor :indirection_name, :key, :method, :options, :instance, :node, :ip, :authenticated

    # Is this an authenticated request?
    def authenticated?
        # Double negative, so we just get true or false
        ! ! authenticated
    end

    def initialize(indirection_name, method, key, options = {})
        options ||= {}
        raise ArgumentError, "Request options must be a hash, not %s" % options.class unless options.is_a?(Hash)

        @indirection_name, @method = indirection_name, method

        @options = options.inject({}) do |result, ary|
            param, value = ary
            if respond_to?(param.to_s + "=")
                send(param.to_s + "=", value)
            else
                result[param] = value
            end
            result
        end

        if key.is_a?(String) or key.is_a?(Symbol)
            @key = key
        else
            @instance = key
            @key = @instance.name
        end
    end

    # Look up the indirection based on the name provided.
    def indirection
        Puppet::Indirector::Indirection.instance(@indirection_name)
    end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
puppet-0.24.9 lib/puppet/indirector/request.rb
puppet-0.24.6 lib/puppet/indirector/request.rb
puppet-0.24.5 lib/puppet/indirector/request.rb
puppet-0.24.7 lib/puppet/indirector/request.rb
puppet-0.24.8 lib/puppet/indirector/request.rb