def _connected(self): judge = self.judge = Judge.objects.get(name=self.name) judge.start_time = timezone.now() judge.online = True judge.problems.set( Problem.objects.filter(code__in=list(self.problems.keys()))) judge.runtimes.set( Language.objects.filter(key__in=list(self.executors.keys()))) # Delete now in case we somehow crashed and left some over from the last connection RuntimeVersion.objects.filter(judge=judge).delete() versions = [] for lang in judge.runtimes.all(): versions += [ RuntimeVersion(language=lang, name=name, version='.'.join(map(str, version)), priority=idx, judge=judge) for idx, (name, version) in enumerate(self.executors[lang.key]) ] RuntimeVersion.objects.bulk_create(versions) judge.last_ip = self.client_address[0] judge.save() self.judge_address = '[%s]:%s' % (self.client_address[0], self.client_address[1]) json_log.info( self._make_json_log(action='auth', info='judge successfully authenticated', executors=list(self.executors.keys())))
def _connected(self): judge = Judge.objects.get(name=self.name) judge.start_time = timezone.now() judge.online = True judge.problems = Problem.objects.filter(code__in=self.problems.keys()) judge.runtimes = Language.objects.filter(key__in=self.executors.keys()) # Delete now in case we somehow crashed and left some over from the last connection RuntimeVersion.objects.filter(judge=judge).delete() for lang in judge.runtimes.all(): runtimes = [] for idx, data in enumerate(self.executors[lang.key]): name, version = data runtimes.append( RuntimeVersion(language=lang, name=name, version='.'.join(map(str, version)), priority=idx, judge=judge)) RuntimeVersion.objects.bulk_create(runtimes) judge.last_ip = self.client_address[0] judge.save()