django-daiquiri / daiquiri

A framework for the publication of scientific databases
https://escience.aip.de/daiquiri
Apache License 2.0
26 stars 8 forks source link

Upload async job can not be archived #61

Closed agy-why closed 3 years ago

agy-why commented 3 years ago

Summary

an xml element is missing preventing archiving uploaded tables.

Context

After uploading some table from rave into my user space on gaia.aip.de I wanted to archive my jobs to free space. I could archive all my jobs except the uploaded job.

The Issue

The issue is that to archive a job I need to recreate the Job object from the job_url in order to call: job.delete() method. But calling pyvo.dal.tap.AsyncTapJob with the url of an upload-job fails. The problem is that this class require the <uws:executionDuration/> information to create an instance, however uploading does not require execution time and as a result this value is set to None, and the instantiation fails.

How to solve ?

There maybe another class, less specific than pyvo.dal.tap.AsyncTapJob that could allow to create a job without a <uws:executionDuration/> flag set.

After discussing with Jochen, he could found the place where the executionDuration is not properly setted.

The upload is done in two possible ways:

  • via TAP
  • via Web interface

In the case of the web interface method, a fake job is submitted: see query/viewsets.py (l.172) in the @action/upload method.

The upload is then done in query/models.py (l.162) when upload is True the execution_duration attribute is not setted remaining None. It should be setted to 0.

agy-why commented 3 years ago

solved in #68