add judge_server related api

This commit is contained in:
virusdefender
2016-11-20 19:18:25 +08:00
parent 294fd8b5b2
commit f56d75cf91
9 changed files with 254 additions and 11 deletions

View File

@@ -1,12 +1,12 @@
from utils.api import serializers
from utils.api import serializers, DateTimeTZField
from .models import SMTPConfig, WebsiteConfig
from .models import SMTPConfig, WebsiteConfig, JudgeServer
class EditSMTPConfigSerializer(serializers.Serializer):
server = serializers.CharField(max_length=128)
port = serializers.IntegerField(default=25)
email = serializers.CharField(max_length=128)
email = serializers.EmailField(max_length=128)
password = serializers.CharField(max_length=128, required=False, allow_null=True, allow_blank=True)
tls = serializers.BooleanField()
@@ -37,4 +37,23 @@ class CreateEditWebsiteConfigSerializer(serializers.Serializer):
class WebsiteConfigSerializer(serializers.ModelSerializer):
class Meta:
model = WebsiteConfig
exclude = ["id"]
exclude = ["id"]
class JudgeServerSerializer(serializers.ModelSerializer):
create_time = DateTimeTZField()
last_heartbeat = DateTimeTZField()
class Meta:
model = JudgeServer
class JudgeServerHeartbeatSerializer(serializers.Serializer):
hostname = serializers.CharField(max_length=64)
judger_version = serializers.CharField(max_length=24)
cpu_core = serializers.IntegerField(min_value=1)
memory = serializers.FloatField(min_value=0, max_value=100)
cpu = serializers.FloatField(min_value=0, max_value=100)
action = serializers.ChoiceField(choices=("heartbeat", ))
service_url = serializers.CharField(max_length=128, required=False)