mirror of
https://github.com/QingdaoU/JudgeServer.git
synced 2025-11-04 14:50:01 +08:00
parent
de58bb33f2
commit
cbcc9cb313
@ -5,10 +5,9 @@ services:
|
|||||||
before_install:
|
before_install:
|
||||||
- sudo mkdir -p /data/log
|
- sudo mkdir -p /data/log
|
||||||
- pip install requests
|
- pip install requests
|
||||||
- echo "token" > token.txt
|
|
||||||
script:
|
script:
|
||||||
- docker pull qduoj/judge_server
|
- docker pull qduoj/judge_server
|
||||||
- cp docker-compose.example.yml docker-compose.yml
|
- cp docker-compose.example.yml docker-compose.yml
|
||||||
- docker-compose up -d
|
- docker-compose up -d
|
||||||
- docker ps -a
|
- docker ps -a
|
||||||
- python tests/tests.py
|
- python tests/tests.py
|
||||||
|
|||||||
@ -18,9 +18,9 @@ services:
|
|||||||
- $PWD/tests/test_case:/test_case
|
- $PWD/tests/test_case:/test_case
|
||||||
- /data/log:/log
|
- /data/log:/log
|
||||||
- $PWD/server:/code:ro
|
- $PWD/server:/code:ro
|
||||||
- $PWD/token.txt:/token.txt
|
|
||||||
environment:
|
environment:
|
||||||
- service_discovery_url=https://virusdefender.net/service.php
|
- service_discovery_url=https://virusdefender.net/service.php
|
||||||
- service_url=http://1.2.3.4:12358
|
- service_url=http://1.2.3.4:12358
|
||||||
|
- token=YOUR_TOKEN_HERE
|
||||||
ports:
|
ports:
|
||||||
- "0.0.0.0:12358:8080"
|
- "0.0.0.0:12358:8080"
|
||||||
|
|||||||
@ -20,5 +20,3 @@ COMPILER_GROUP_GID = grp.getgrnam("compiler").gr_gid
|
|||||||
TEST_CASE_DIR = "/test_case"
|
TEST_CASE_DIR = "/test_case"
|
||||||
SPJ_SRC_DIR = "/spj"
|
SPJ_SRC_DIR = "/spj"
|
||||||
SPJ_EXE_DIR = "/spj"
|
SPJ_EXE_DIR = "/spj"
|
||||||
|
|
||||||
TOKEN_FILE_PATH = "/token.txt"
|
|
||||||
|
|||||||
@ -11,14 +11,14 @@ from utils import server_info, logger, token
|
|||||||
|
|
||||||
class JudgeService(object):
|
class JudgeService(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
# this container's ip and port, if these are not set, web server will think it's a linked container
|
||||||
|
self.service_url = os.environ.get("service_url")
|
||||||
|
|
||||||
# exists if docker link oj_web_server:oj_web_server
|
# exists if docker link oj_web_server:oj_web_server
|
||||||
self.service_discovery_host = os.environ.get("OJ_WEB_SERVER_PORT_8080_TCP_ADDR")
|
self.service_discovery_host = os.environ.get("OJ_WEB_SERVER_PORT_8080_TCP_ADDR")
|
||||||
self.service_discovery_port = os.environ.get("OJ_WEB_SERVER_PORT_8080_TCP_PORT")
|
self.service_discovery_port = os.environ.get("OJ_WEB_SERVER_PORT_8080_TCP_PORT")
|
||||||
self.service_discovery_url = os.environ.get("service_discovery_url", "")
|
self.service_discovery_url = os.environ.get("service_discovery_url", "")
|
||||||
|
|
||||||
# this container's ip and port, if these are not set, web server will think it's a linked container
|
|
||||||
self.service_url = os.environ.get("service_url")
|
|
||||||
|
|
||||||
if not self.service_discovery_url:
|
if not self.service_discovery_url:
|
||||||
if not (self.service_discovery_host and self.service_discovery_port):
|
if not (self.service_discovery_host and self.service_discovery_port):
|
||||||
raise JudgeServiceError("service discovery host or port not found")
|
raise JudgeServiceError("service discovery host or port not found")
|
||||||
|
|||||||
@ -5,8 +5,8 @@ import psutil
|
|||||||
import socket
|
import socket
|
||||||
import logging
|
import logging
|
||||||
import hashlib
|
import hashlib
|
||||||
|
import os
|
||||||
|
|
||||||
from config import TOKEN_FILE_PATH
|
|
||||||
from exception import JudgeClientError
|
from exception import JudgeClientError
|
||||||
|
|
||||||
|
|
||||||
@ -28,11 +28,11 @@ def server_info():
|
|||||||
|
|
||||||
|
|
||||||
def get_token():
|
def get_token():
|
||||||
try:
|
token = os.environ.get("token")
|
||||||
with open(TOKEN_FILE_PATH, "r") as f:
|
if token:
|
||||||
return f.read().strip()
|
return token
|
||||||
except IOError:
|
else:
|
||||||
raise JudgeClientError("token.txt not found")
|
raise JudgeClientError("ENV token not found")
|
||||||
|
|
||||||
|
|
||||||
token = hashlib.sha256(get_token()).hexdigest()
|
token = hashlib.sha256(get_token()).hexdigest()
|
||||||
|
|||||||
@ -24,7 +24,7 @@ class JudgeServerClientForTokenHeaderTest(JudgeServerClient):
|
|||||||
|
|
||||||
class JudgeServerTest(unittest.TestCase):
|
class JudgeServerTest(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.token = "token"
|
self.token = "YOUR_TOKEN_HERE"
|
||||||
self.server_base_url = "http://127.0.0.1:12358"
|
self.server_base_url = "http://127.0.0.1:12358"
|
||||||
self.client = JudgeServerClient(token=self.token, server_base_url=self.server_base_url)
|
self.client = JudgeServerClient(token=self.token, server_base_url=self.server_base_url)
|
||||||
|
|
||||||
@ -44,4 +44,4 @@ class JudgeServerTest(unittest.TestCase):
|
|||||||
self.assertEqual(data["err"], "TokenVerificationFailed")
|
self.assertEqual(data["err"], "TokenVerificationFailed")
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
PLEASE_USE_YOUR_OWN_TOKEN
|
|
||||||
Loading…
Reference in New Issue
Block a user