Esempio n. 1
0
    def log_key(self, type, id, query):
        if type not in self.log:
            self.log[type] = set()
        self.log[type].add(id)

        keyname = self.make_key(type, id)
        if keyname not in self.log:
            self.log[keyname] = dict()
        self.log[keyname][utils.dict_to_qs(query)] = deepcopy(query)
Esempio n. 2
0
    def log_key(self, type, id, query):
        if type not in self.log:
            self.log[type] = set()
        self.log[type].add(id)

        keyname = self.make_key(type, id)
        if keyname not in self.log:
            self.log[keyname] = dict()
        self.log[keyname][utils.dict_to_qs(query)] = deepcopy(query)
Esempio n. 3
0
    def query_to_key(self, query):
        """
        Take a query in the form of a dictionary and turn it into something
        that can be used in a cache key
        """
        if query is None:
            return ''

        return utils.dict_to_qs(query)
Esempio n. 4
0
    def query_to_key(self, query):
        """
        Take a query in the form of a dictionary and turn it into something
        that can be used in a cache key
        """
        if query is None:
            return ''

        return utils.dict_to_qs(query)
Esempio n. 5
0
    def log_remove(self, type, id, query):
        if type in self.log:
            if id in self.log[type]:
                self.log[type].remove(id)
            if len(self.log[type]) == 0:
                del self.log[type]

        keyname = self.make_key(type, id)
        query_str = utils.dict_to_qs(query)
        if keyname in self.log:
            if query_str in self.log[keyname]:
                del self.log[keyname][query_str]
            if len(self.log[keyname]) == 0:
                del self.log[keyname]
Esempio n. 6
0
    def log_remove(self, type, id, query):
        if type in self.log:
            if id in self.log[type]:
                self.log[type].remove(id)
            if len(self.log[type]) == 0:
                del self.log[type]

        keyname = self.make_key(type, id)
        query_str = utils.dict_to_qs(query)
        if keyname in self.log:
            if query_str in self.log[keyname]:
                del self.log[keyname][query_str]
            if len(self.log[keyname]) == 0:
                del self.log[keyname]
Esempio n. 7
0
    def get(self, url, query=None, if_modified_since=None):
        if query is not None:
            url += '?' + utils.dict_to_qs(query)

        resp = self.s.get(
            self.config['P2P_API_ROOT'] + url,
            headers=self.http_headers(if_modified_since=if_modified_since),
            verify=False)

        resp_log = self._check_for_errors(resp, url)
        try:
            ret = utils.parse_response(resp.json())
            if 'ETag' in resp.headers:
                ret['etag'] = resp.headers['ETag']
            return ret
        except ValueError:
            log.error('JSON VALUE ERROR ON SUCCESSFUL RESPONSE %s' % resp_log)
            raise
Esempio n. 8
0
    def get(self, url, query=None, if_modified_since=None):
        if query is not None:
            url += '?' + utils.dict_to_qs(query)
        log.debug("GET: %s" % url)
        resp = self.s.get(
            self.config['P2P_API_ROOT'] + url,
            headers=self.http_headers(if_modified_since=if_modified_since),
            verify=False)

        resp_log = self._check_for_errors(resp, url)
        try:
            ret = utils.parse_response(resp.json())
            if 'ETag' in resp.headers:
                ret['etag'] = resp.headers['ETag']
            return ret
        except ValueError:
            log.error('JSON VALUE ERROR ON SUCCESSFUL RESPONSE %s' % resp_log)
            raise
Esempio n. 9
0
    def get(self, url, query=None):
        if query is not None:
            url += '?' + utils.dict_to_qs(query)

        resp = requests.get(
            self.config['P2P_API_ROOT'] + url,
            headers=self.http_headers(),
            verify=False)
        if self.debug:
            log.debug('URL: %s' % url)
            log.debug('HEADERS: %s' % self.http_headers())
            log.debug('STATUS: %s' % resp.status_code)
            log.debug('RESPONSE_BODY: %s' % resp.content)
        if resp.status_code >= 500:
            resp.raise_for_status()
        elif resp.status_code >= 400:
            try:
                data = resp.json()
            except ValueError:
                data = resp.text
            raise P2PException(resp.content, data)
        return utils.parse_response(resp.json())
Esempio n. 10
0
        def query_to_key(self, query):
            if query is None:
                return ''

            return utils.dict_to_qs(query)