def nextPut(self): #TODO: косяк в status_service # Подводим итоги предыдущего раунда self.statistic.summary(self.round_count) # Очищаем предыдущие задачи self.checkerManager.clear() self.round_count += 1 Message.success('Round: ' + str(self.round_count)) for team in self.config.get_all_teams(): for service in self.config.get_all_services(): flag = self.generate_flags() flag_id = self.generate_flag_ids() Message.info(team['name'] + ' ' + service['name'] + ' ' + flag) self.checkerManager.put(team=team, service=service, flag=flag, flag_id=flag_id, round=self.round_count, action='put') self.checkerManager.run()
def start(self): Message.success( 'Class is initialized. Starting...\nListening on port {}'.format( CHECKER['PORT'])) try: self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.bind(('0.0.0.0', self.port)) self.socket.listen( CHECKER['MAX_CONNECTIONS'] ) # максимальное число соединений. учитывайте это при конфигурировании сервиса while True: self.conn, self.address = self.socket.accept() Message.info('connected:' + self.address[0]) process = multiprocessing.Process(target=self.recv, args=(self.conn, self.address)) process.daemon = True process.start() except KeyboardInterrupt: print('Module flags is shutdown') self.conn.close() exit(0)
def create_teams(self): Message.success('Generate teams') for e in self.config.teams: Message.info("\tInit team {" + e["name"] + "} (Network: " + e["network"] + ")") self.db.teams.insert_one(e)
def next(self): #TODO: косяк в status_service # Подводим итоги предыдущего раунда self.statistic.summary(self.round_count) # Очищаем предыдущие задачи self.checkerManager.clear() self.round_count += 1 Message.success('Round: ' + str(self.round_count)) for team in self.config.get_all_teams(): for service in self.config.get_all_services(): flag = self.generate_flags() flag_id = self.generate_flag_ids() print(team['name'] + ' ' + service['name'] + ' ' + flag) self.checkerManager.put( team = team, service = service, flag = flag, flag_id = flag_id, round = self.round_count ) self.checkerManager.run()
def create_service(self): Message.success('Generate services') for e in self.config.services: Message.info("\tInit service {" + e["name"] + "}"); self.db.services.insert_one(e) self.create_program(e['name'], e['program'])
def delete_old_data(self): Message.success('Removing old data ... ') self.db.teams.delete_many({}) self.db.services.delete_many({}) self.db.scoreboard.delete_many({}) self.db.flags.delete_many({}) self.db.stolen_flags.delete_many({})
def generate_scoreboard(self): Message.success('Generate scoreboard') for team in self.db.teams.find({}): for service in self.db.services.find({}): self.db.scoreboard.insert_one({ 'team': team, 'service': service, 'status': 'UP', 'message': '', 'up_round': 0, 'attack': 0, 'defense': 0 })
def nextCheck(self): Message.success('Check availability of services... ') for team in self.config.get_all_teams(): for service in self.config.get_all_services(): self.checkerManager.put(team=team, service=service, flag=None, flag_id=None, round=self.round_count, action='check') self.checkerManager.run()
def start(self): Message.success("Class is initialized. Starting") try: self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.bind(("0.0.0.0", self.port)) self.socket.listen(1) while True: self.conn, self.address = self.socket.accept() Message.info("connected:" + self.address[0]) process = multiprocessing.Process(target=self.recv, args=(self.conn, self.address)) process.daemon = True process.start() except KeyboardInterrupt: print("Module flags is shutdown") self.conn.close() exit(0)
def start(self): Message.success('Class is initialized. Starting') try: self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.bind(('0.0.0.0', self.port)) self.socket.listen(1) while True: self.conn, self.address = self.socket.accept() Message.info('connected:' + self.address[0]) process = multiprocessing.Process(target=self.recv, args=(self.conn, self.address)) process.daemon = True process.start() except KeyboardInterrupt: print('Module flags is shutdown') self.conn.close() exit(0)
def __init__(self, db): self.db = db self.config = ConfigGet(self.db) self.statistic = Statistic(self.db, self.config) self.status_service = {} # if CHECKER_METHOD == 'queue': from classes.checker.queue import Queue self.checkerManager = Queue() # else: # self.checkerManager = Threads() Message.info('Get last round number') self.get_round_number() Message.info('\t Last round number - ' + str(self.round_count)) Message.success('All ready!') Message.info('Now use python3 main.py init --slave for starting slave client')
def create_settings(self): Message.success('Generate settings') self.db.settings.insert_one(self.config.settings)
def create_teams(self): Message.success('Generate teams') for e in self.config.teams: Message.info("Init team {" + e["name"] + "} (Network: " + e["network"] + ")"); self.db.teams.insert_one(e)