def MultiWritePathInfos(self, path_infos): """Writes a collection of path info records for specified clients.""" try: self._MultiWritePathInfos(path_infos) except MySQLdb.IntegrityError as error: client_ids = list(iterkeys(path_infos)) raise db.AtLeastOneUnknownClientError(client_ids=client_ids, cause=error)
def WriteClientMessages(self, messages): """Writes messages that should go to the client to the db.""" client_ids = [db_utils.ClientIdFromGrrMessage(msg) for msg in messages] for client_id in client_ids: if client_id not in self.metadatas: raise db.AtLeastOneUnknownClientError(client_ids=client_ids) for m in messages: client_id = db_utils.ClientIdFromGrrMessage(m) self.client_messages.setdefault(client_id, {})[m.task_id] = m