def run
      if done?
        #we might not have ANY external parameters!
        report_success
        return true
      end

      @audit.create_new_section('Retrieving credentials')

      #Preflight to check validity of cred objects
      ok = true
      @executables_inputs.each_pair do |exe, inputs|
        inputs.each_pair do |name, location|
          next if location.is_a?(RightScale::SecureDocumentLocation)
          msg = "The provided credential (#{location.class.name}) is incompatible with this version of RightLink"
          report_failure('Cannot process external input', msg)
          ok = false
        end
      end

      return false unless ok

      @executables_inputs.each_pair do |exe, inputs|
        inputs.each_pair do |name, location|
          payload = {
            :ticket => location.ticket,
            :namespace => location.namespace,
            :names => [location.name]
          }
          options = {
            :targets => location.targets
          }
          self.send_retryable_request('/vault/read_documents', payload, options) do |data|
            handle_response(exe, name, location, data)
          end
        end
      end
    rescue Exception => e
      report_failure('Credential gathering failed', "The following execption occurred while gathering credentials", e)
    end
def run
      if done?
        #we might not have ANY external parameters!
        report_success
        return true
      end

      @audit.create_new_section('Retrieving credentials')

      #Preflight to check validity of cred objects
      ok = true
      @executables_inputs.each_pair do |exe, inputs|
        inputs.each_pair do |name, location|
          next if location.is_a?(RightScale::SecureDocumentLocation)
          msg = "The provided credential (#{location.class.name}) is incompatible with this version of RightLink"
          report_failure('Cannot process external input', msg)
          ok = false
        end
      end

      return false unless ok

      @executables_inputs.each_pair do |exe, inputs|
        inputs.each_pair do |name, location|
          payload = {
            :ticket => location.ticket,
            :namespace => location.namespace,
            :names => [location.name]
          }
          options = {
            :targets => location.targets
          }
          self.send_retryable_request('/vault/read_documents', payload, options) do |data|
            handle_response(exe, name, location, data)
          end
        end
      end
    rescue Exception => e
      report_failure('Credential gathering failed', "The following execption occurred while gathering credentials", e)
    end
Initialize parameter gatherer

 === Parameters
 bundle<RightScale::ExecutableBundle>:: the bundle for which to gather inputs
 options[:listen_port]:: Command server listen port
 options[:cookie]:: Command protocol cookie

 === Return
 true:: Always return true
 Retrieve from RightNet and process credential values in bundle's executables.

 == Returns:
 @return [TrueClass] true on success and false on error