def UnlockSubject(self, subject, transid): """Unlocks subject using lock id.""" request = rdf_data_store.DataStoreRequest(subject=[subject]) blob = rdf_protodict.DataBlob(string=transid) value = rdf_data_store.DataStoreValue(value=blob) request.values.Append(value) # We do not care about the server response. typ = rdf_data_server.DataStoreCommand.Command.UNLOCK_SUBJECT self._MakeSyncRequest(request, typ) return transid
def UnlockSubject(self, subject, transid, token): """Unlocks subject using transaction id.""" self.security_manager.CheckDataStoreAccess(token, [subject], "w") request = rdf_data_store.DataStoreRequest(subject=[subject]) if token: request.token = token blob = rdf_protodict.DataBlob(string=transid) value = rdf_data_store.DataStoreValue(value=blob) request.values.Append(value) # We do not care about the server response. typ = rdf_data_server.DataStoreCommand.Command.UNLOCK_SUBJECT self._MakeSyncRequest(request, typ) return transid
def ExtendSubjectLock(self, subject, transid, lease_time): """Extends lock of subject.""" request = rdf_data_store.DataStoreRequest(subject=[subject]) specific = rdf_data_store.TimestampSpec.Type.SPECIFIC_TIME request.timestamp = rdf_data_store.TimestampSpec(start=lease_time, type=specific) blob = rdf_protodict.DataBlob(string=transid) value = rdf_data_store.DataStoreValue(value=blob) request.values.Append(value) typ = rdf_data_server.DataStoreCommand.Command.EXTEND_SUBJECT response = self._MakeSyncRequest(request, typ) if not response.results: return None result = response.results[0] if not result.values: return None value = result.values[0].value.string return transid if transid == value else None
def _AddTransactionId(self, response, subject, transid): blob = rdf_protodict.DataBlob(string=transid) value = rdf_data_store.DataStoreValue(value=blob) response.results.Append(subject=subject, values=[value])