summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSunil Shetye2025-03-21 00:50:17 +0530
committerSunil Shetye2025-03-21 00:52:32 +0530
commit971554fc3f5813773b9a9112aa659eb962482818 (patch)
tree11c8601c98ff19e3991c5ff7cae88a03dfd31c2e
parentff40fb61e7c9b1664b08875cafc472aa6a8d95aa (diff)
downloadCommon-Interface-Project-971554fc3f5813773b9a9112aa659eb962482818.tar.gz
Common-Interface-Project-971554fc3f5813773b9a9112aa659eb962482818.tar.bz2
Common-Interface-Project-971554fc3f5813773b9a9112aa659eb962482818.zip
add type and workspace_file columns to Task model
use worker logger in serializers and views of simulationAPI
-rw-r--r--blocks/simulationAPI/models.py7
-rw-r--r--blocks/simulationAPI/serializers.py9
-rw-r--r--blocks/simulationAPI/views.py7
3 files changed, 15 insertions, 8 deletions
diff --git a/blocks/simulationAPI/models.py b/blocks/simulationAPI/models.py
index b2f09505..2a121941 100644
--- a/blocks/simulationAPI/models.py
+++ b/blocks/simulationAPI/models.py
@@ -8,6 +8,11 @@ import uuid
from celery.result import AsyncResult
+TASK_TYPE_CHOICES = [
+ ("XCOS", "Xcos"),
+ ("SCRIPT", "Scilab Script"),
+]
+
TASK_STATUS_CHOICES = [
("PENDING", "Pending"),
("STARTED", "Started"),
@@ -61,10 +66,12 @@ class Session(models.Model):
class Task(models.Model):
task_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
file = models.FileField(storage=FileSystemStorage(location=settings.MEDIA_ROOT))
+ type = models.CharField(max_length=20, choices=TASK_TYPE_CHOICES, null=False, default="XCOS")
status = models.CharField(max_length=20, choices=TASK_STATUS_CHOICES, null=False, default="PENDING")
parameters = models.TextField(blank=True, null=True)
upload_time = models.DateTimeField(auto_now=True)
log_name = models.CharField(max_length=500, blank=True, null=True)
+ workspace_file = models.CharField(max_length=500, blank=True, null=True)
returncode = models.IntegerField(blank=True, null=True)
session = models.ForeignKey(Session, on_delete=models.CASCADE, related_name='task', null=True)
start_time = models.DateTimeField(null=True)
diff --git a/blocks/simulationAPI/serializers.py b/blocks/simulationAPI/serializers.py
index 01579427..8a872bf1 100644
--- a/blocks/simulationAPI/serializers.py
+++ b/blocks/simulationAPI/serializers.py
@@ -1,10 +1,10 @@
import json
-from celery.utils.log import get_task_logger
+import logging
from rest_framework import serializers
from simulationAPI.models import Task, Session
-logger = get_task_logger(__name__)
+logger = logging.getLogger("celery")
class SessionSerializer(serializers.ModelSerializer):
@@ -18,8 +18,9 @@ class TaskSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Task
- fields = ('task_id', 'file', 'status', 'parameters', 'upload_time',
- 'log_name', 'returncode', 'session', 'start_time', 'end_time')
+ fields = ('task_id', 'file', 'type', 'status',
+ 'parameters', 'upload_time', 'log_name', 'workspace_file',
+ 'returncode', 'session', 'start_time', 'end_time')
def create(self, validated_data):
# Takes file from request and stores it along with a taskid
diff --git a/blocks/simulationAPI/views.py b/blocks/simulationAPI/views.py
index 1c1b5416..4d08c8fc 100644
--- a/blocks/simulationAPI/views.py
+++ b/blocks/simulationAPI/views.py
@@ -1,9 +1,9 @@
import os
from django.conf import settings
+import logging
import time
import uuid
from celery.result import AsyncResult
-from celery.utils.log import get_task_logger
from django.http import StreamingHttpResponse, JsonResponse
from rest_framework import status
from rest_framework.exceptions import ValidationError
@@ -34,7 +34,7 @@ DATA = 2
# to indicate there is no line in log file further
NOLINE = -1
-logger = get_task_logger(__name__)
+logger = logging.getLogger("celery")
class XmlUploader(APIView):
@@ -53,8 +53,7 @@ class XmlUploader(APIView):
if serializer.is_valid():
serializer.save()
task_id = serializer.data['task_id']
- celery_task = process_task.apply_async(
- kwargs={'task_id': str(task_id)}, task_id=str(task_id))
+ celery_task = process_task.delay(str(task_id))
response_data = {
'state': celery_task.state,
'details': serializer.data,