Ejemplo n.º 1
0
    def handleVerb(self, verb, kw):
        # validate kw first
        validation.validateArguments(verb, kw)
        # encode datetimes as datestamps
        from_ = kw.get('from_')
        if from_ is not None:
            # turn it into 'from', not 'from_' before doing actual request
            kw['from'] = datetime_to_datestamp(from_,
                                               self._day_granularity)
        if 'from_' in kw:
            # always remove it from the kw, no matter whether it be None or not
            del kw['from_']

        until = kw.get('until')
        if until is not None:
            kw['until'] = datetime_to_datestamp(until,
                                                self._day_granularity)
        elif 'until' in kw:
            # until is None but is explicitly in kw, remove it
            del kw['until']

        # now call underlying implementation
        method_name = verb + '_impl'
        return getattr(self, method_name)(
            kw, self.makeRequestErrorHandling(verb=verb, **kw))
Ejemplo n.º 2
0
    def handleVerb(self, verb, kw):
        # if kw contains 'setSpec' transform the keymap to 'set'
        if kw.has_key('setSpec'):
            kw['set'] = kw['setSpec']
            del kw['setSpec']
        # validate kw first
        validation.validateArguments(verb, kw)
        # encode datetimes as datestamps
        from_ = kw.get('from_')
        if from_ is not None:
            # turn it into 'from', not 'from_' before doing actual request
            kw['from'] = datetime_to_datestamp(from_,
                                               self._day_granularity)
        if 'from_' in kw:
            # always remove it from the kw, no matter whether it be None or not
            del kw['from_']

        until = kw.get('until')
        if until is not None:
            kw['until'] = datetime_to_datestamp(until,
                                                self._day_granularity)
        elif 'until' in kw:
            # until is None but is explicitly in kw, remove it
            del kw['until']

        # There can be no resumptionToken and metadataPrefix at the same time.
        # Otherwise, we will receive an error when doing the request.
        # However, we may need both if we are recovering from a network
        # problem. thus, we will save kw[metadataPrefix] in
        # metadataPrefixSaved.
        if verb == 'ListRecords' and kw.get('resumptionToken'):
            metadataPrefixSaved = kw['metadataPrefix']
            del(kw['metadataPrefix'])
        else:
            metadataPrefixSaved = None
        # Do the request
        tree = self.makeRequestErrorHandling(verb=verb, **kw)
        # We need to add the metadataPrefixSaved back, if exists
        if metadataPrefixSaved:
            kw['metadataPrefix'] = metadataPrefixSaved
        # now call underlying implementation
        method_name = verb + '_impl'
        return getattr(self, method_name)(kw, tree)