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
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