def is_blacklisted(self, app_id, txid, retries=5):
    if self.needs_connection or not self.handle.connected:
      self.reestablish_connection()

    try:
      blacklist_root = self.get_blacklist_root_path(app_id)
      blacklist_txn = PATH_SEPARATOR.join([blacklist_root, 
        str(txid)]) 
      return self.run_with_retry(self.handle.exists, blacklist_txn)
    except kazoo.exceptions.KazooException as kazoo_exception:
      logging.exception(kazoo_exception)
      if retries > 0:
        logging.info('Trying again to see if transaction {} is blacklisted '
          'with retry #{}'.format(txid, retries))
        time.sleep(self.ZK_RETRY_TIME)
        return self.is_blacklisted(app_id=app_id, txid=txid,
          retries=retries - 1)
      self.reestablish_connection()
      raise ZKInternalException("Couldn't see if appid {0}'s transaction, " \
        "{1}, is blacklisted.".format(app_id, txid))
Converts this cluster into a dictionary (to be used with json serializers).
dataset/ETHPy150Open AppScale/appscale/AppDB/zkappscale/zktransaction.py/ZKTransaction.is_blacklisted--crossover with--dataset/ETHPy150Open victor-gil-sepulveda/pyProCT/pyproct/clustering/cluster.py/Cluster.to_dic