def add_reverse_dependency_to(self, block_version, new_reverse_dep): block_version = LengthySerializedBlockVersion(block_version.block, block_version.time) new_reverse_dep = LengthySerializedBlockVersion(new_reverse_dep.block, new_reverse_dep.time) dbcol = self.mongo_server_store.db[self.REVERSE_DEPENDENCIES_ST] try: tmp = {ReverseDependency.SERIAL_DEPS_ON_KEY: new_reverse_dep.serialize()} dbcol.update(block_version.serialize(), {"$addToSet": tmp}) except Exception as e: logger.error(e) raise e
def read_direct_reverse_deps_for_brl_block(self, brl_block): block_version = LengthySerializedBlockVersion(brl_block, -1) dbcol = self.mongo_server_store.db[self.REVERSE_DEPENDENCIES_ST] tmp = block_version.serialize() # remove time key from query del tmp[LengthySerializedBlockVersion.SERIAL_VERSION_KEY] docs = dbcol.find(tmp) for doc in docs: obj = ReverseDependency.deserialize(doc) yield obj
def read_direct_reverse_dependencies(self, block_version): block_version = LengthySerializedBlockVersion(block_version.block, block_version.time) dbcol = self.mongo_server_store.db[self.REVERSE_DEPENDENCIES_ST] doc = dbcol.find_one(block_version.serialize()) if not doc: raise NotInStoreException("No %s found with _id = %s" % (self.REVERSE_DEPENDENCIES_ST, block_version)) obj = ReverseDependency.deserialize(doc) return obj