code: def get(self, relpath=None, params=None):
      
      for retry in xrange(self.retries + 1):
        if retry:
          time.sleep(self.retry_sleep)
        try:
          return self.invoke("GET", relpath, params)
        except (socket.error, urllib2.URLError) as e:
          if "timed out" in str(e).lower():
            log_message = "Timeout issuing GET request for %s." \
                % (self._join_uri(relpath), )
            if retry < self.retries:
              log_message += " Will retry."
            else:
              log_message += " No retries left."
            LOG.warn(log_message, exc_info=True)
          else:
            raise
      else:
        raise e
docs: Invoke the GET method on a resource.
      @param relpath: Optional. A relative path to this resource's path.
      @param params: Key-value data.
  
      @return: A dictionary of the JSON result.