def update_attack_data(current_round: int) -> None: tasks = storage.tasks.get_tasks() tasks = list(filter(lambda x: x.checker_provides_public_flag_data, tasks)) attack_data = storage.flags.get_attack_data(current_round, tasks) with utils.redis_pipeline(transaction=False) as pipe: pipe.set(CacheKeys.attack_data(), kjson.dumps(attack_data)) pipe.execute()
def get_attack_data() -> str: """Get public flag ids for tasks that provide them, as json string.""" with utils.redis_pipeline(transaction=False) as pipe: attack_data, = pipe.get(CacheKeys.attack_data()).execute() return attack_data or 'null'