Пример #1
0
    def doModifyRow(self, table_name, row):
        def _do_modify(conn):
            d = conn.modify(table_name, row)
            d.addCallback(_modify_cb)
            return d

        def _modify_cb(res):
            if res[0] == Storage.SUCCESS:
                # TBD: setting response code here is causing errors deep
                # TBD: in twisted.  Need to figure out why.
                #self.request.setResponseCode("204")
                self.request.finish() # No body for 204 response
                return
            else:
                msg = "Modify success callback called with unexpected "\
                      "results"
                lg.error(msg)
                webservice.internalError(self.request, msg)

        # Strip out link entries added by web service
        for k in row.keys():
            if k.endswith(".link"):
                del(row[k])

        d = StorageTableUtil.get_connection_if_none(self.db)
        d.addCallback(_do_modify)
        d.addErrback(self._handle_err)
        return d
Пример #2
0
 def _get_guid_cb(rows):
     if len(rows) == 0:
         notFound(self.request,
                  "Table %s does not have row with GUID: %s"
                  % (self.table_name,
                     self._query["GUID"][1].encode("hex")))
     elif len(rows) > 1:
         msg = "Multiple rows returned (unexpectedly) by the "\
                 "database and possibly removed."
         lg.error(msg)
         webservice.internalError(request, msg)
     else:
         d = StorageTableUtil.get_connection_if_none(self.db)
         d.addCallback(_do_remove, rows[0])
         return d