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