コード例 #1
0
ファイル: views.py プロジェクト: yuede/klee-web
    def submit(self, request):
        worker_config = WorkerConfig()

        code = request.data.get("code")
        email = request.data.get("email")
        args = request.data.get("run_configuration", {})

        task = submit_code.apply_async(
            [code,
             email,
             args,
             request.build_absolute_uri(reverse('jobs_notify'))],
            soft_time_limit=worker_config.timeout
        )

        Task.objects.create(task_id=task.task_id,
                            email_address=email,
                            ip_address=get_client_ip(request),
                            created_at=datetime.datetime.now())

        return Response({'task_id': task.task_id})
コード例 #2
0
 def setUp(self):
     self.worker_config = WorkerConfig()
     self.worker_config.r = fakeredis.FakeStrictRedis()
コード例 #3
0
ファイル: runner.py プロジェクト: ccadar/klee-web
from worker.worker_config import WorkerConfig

from worker.mailer.mailgun_mailer import MailgunMailer
from worker.mailer.dummy_mailer import DummyMailer

from worker.processor.failed_test import FailedTestProcessor
from worker.processor.coverage import CoverageProcessor
from worker.processor.upload import UploadProcessor
from worker.processor.klee_run import KleeRunProcessor
from worker.processor.stats import StatsProcessor

ANSI_ESCAPE_PATTERN = re.compile(r'\x1b[^m]*m')
LXC_MESSAGE_PATTERN = re.compile(r'lxc-start: .*')
DEVELOPMENT = True if os.environ['DEVELOPMENT'] == "1" else False

worker_config = WorkerConfig()


class WorkerRunner():
    CODE_FILE_NAME = 'code.c'
    OBJECT_FILE_NAME = 'code.o'
    DOCKER_MOUNT_DIR = '/tmp/code'
    DOCKER_CODE_FILE = os.path.join(DOCKER_MOUNT_DIR, CODE_FILE_NAME)
    DOCKER_OBJECT_FILE = os.path.join(DOCKER_MOUNT_DIR, OBJECT_FILE_NAME)
    DEFAULT_PROCESSOR_PIPELINE = [
        KleeRunProcessor, UploadProcessor, FailedTestProcessor, StatsProcessor,
        CoverageProcessor
    ]

    def __init__(self,
                 task_id,
コード例 #4
0
ファイル: views.py プロジェクト: ccadar/klee-web
from django.shortcuts import render

from .decorators import group_required
from .forms import AdminConfigForm
from worker.worker import celery
from worker.worker_config import WorkerConfig
from . import usage_stats
from . import klee_tasks

HUMAN_READABLE_FIELD_NAMES = {
    "timeout": "Timeout",
    "cpu_share": "CPU Share",
    "memory_limit": "Memory Limit"
}

worker_configuration = WorkerConfig()


@group_required("admin")
def index(request):
    attrs = {
        'total_done': len(klee_tasks.done_tasks()),
        'avg_time': usage_stats.avg_job_duration(),
        'jobs_per_day': usage_stats.avg_jobs_per_day(),
        'today': datetime.datetime.now().strftime("%a %d/%m/%Y %H:%M")
    }
    return render(request, "control_panel/index.html", attrs)


@group_required("admin")
def get_job_history(request):