Beispiel #1
0
 def _cb_get_element(self, response, uri):
     """This is called when the document related to the element is retrieved."""
     if response.code == 404:     ## XXX why not let the storage raise?
         raise errors.ResourceNotFound("The requested document %s was not found on this server" % uri.doc_selector)
     result = element.get(response.data, uri.node_selector.element_selector)
     if not result:
         msg = "The requested element %s was not found in the document %s" % (uri.node_selector, uri.doc_selector)
         raise errors.ResourceNotFound(msg)
     return StatusResponse(200, response.etag, result)
Beispiel #2
0
 def _cb_get_element(self, response, uri):
     """This is called when the document related to the element is retrieved."""
     if response.code == 404:     ## XXX why not let the storage raise?
         raise errors.ResourceNotFound("The requested document %s was not found on this server" % uri.doc_selector)
     result = element.get(response.data, uri.node_selector.element_selector)
     if not result:
         msg = "The requested element %s was not found in the document %s" % (uri.node_selector, uri.doc_selector)
         raise errors.ResourceNotFound(msg)
     return StatusResponse(200, response.etag, result)
Beispiel #3
0
        if response.code == 404:          ### XXX let the storate raise
            raise errors.NoParentError    ### catch error in errback and attach http_error

        fixed_element_selector = uri.node_selector.element_selector.fix_star(element_body)

        try:
            result = element.put(response.data, fixed_element_selector, element_body)
        except element.SelectorError, ex:
            ex.http_error = errors.NoParentError(comment=str(ex))
            raise

        if result is None:
            raise errors.NoParentError

        new_document, created = result
        get_result = element.get(new_document, uri.node_selector.element_selector)

        if get_result != element_body.strip():
            raise errors.CannotInsertError('PUT request failed GET(PUT(x))==x invariant')

        d = self.put_document(uri, new_document, check_etag)

        def set_201_code(response):
            try:
                if response.code==200:
                    response.code = 201
            except AttributeError:
                pass
            return response

        if created:
Beispiel #4
0
        if response.code == 404:          ### XXX let the storate raise
            raise errors.NoParentError    ### catch error in errback and attach http_error

        fixed_element_selector = uri.node_selector.element_selector.fix_star(element_body)

        try:
            result = element.put(response.data, fixed_element_selector, element_body)
        except element.SelectorError, ex:
            ex.http_error = errors.NoParentError(comment=str(ex))
            raise

        if result is None:
            raise errors.NoParentError

        new_document, created = result
        get_result = element.get(new_document, uri.node_selector.element_selector)

        if get_result != element_body.strip():
            raise errors.CannotInsertError('PUT request failed GET(PUT(x))==x invariant')

        d = self.put_document(uri, new_document, check_etag)

        def set_201_code(response):
            try:
                if response.code==200:
                    response.code = 201
            except AttributeError:
                pass
            return response

        if created: