Verified Commit 35765495 authored by Peter Stanko's avatar Peter Stanko
Browse files

Submission service added to submission processor

parent 7560f739
Loading
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ from portal.database import Project, Submission, SubmissionState, Worker
from portal.database.enums import WorkerState
from portal.service import errors
from portal.storage import UploadedEntity, entities
from portal.service.submissions import SubmissionsService

log = logger.get_logger(__name__)

@@ -18,6 +19,10 @@ class SubmissionProcessor:
        from portal.service.services_collection import ServicesCollection
        self._services = ServicesCollection()

    @property
    def submission_service(self) -> SubmissionsService:
        return self._services.submissions(self.submission)

    @property
    def submission(self) -> Submission:
        return self._submission
@@ -42,7 +47,7 @@ class SubmissionProcessor:

    def reset_task_id(self, state=None, message: str = None):
        if state is not None:
            self._services.submissions.set_state(state, message=message)
            self.submission_service.set_state(state, message=message)

        self.submission.async_task_id = None
        self._save_submission()
@@ -144,8 +149,7 @@ class SubmissionProcessor:
    def execute_submission(self, worker: Worker):
        worker_client = self._services.workers(worker).worker_client
        message = "Executing submission using worker"
        self._services.submissions(self.submission).set_state(SubmissionState.IN_PROGRESS,
                                                              message=message)
        self.submission_service.set_state(SubmissionState.IN_PROGRESS, message=message)
        self._save_submission()
        worker_client.execute_submission(self.submission)

@@ -175,8 +179,7 @@ class SubmissionProcessor:
        return self.submission

    def abort_submission(self, message: str = 'Unknown error!'):
        self._services.submissions(self.submission).set_state(SubmissionState.ABORTED,
                                                              message=message)
        self.submission_service.set_state(SubmissionState.ABORTED, message=message)

    def _save_submission(self):
        self._services.submissions.write_entity(self.submission)