Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package it.inaf.oats.vospace;
import it.inaf.oats.vospace.persistence.JobDAO;
import net.ivoa.xml.uws.v1.ExecutionPhase;
import net.ivoa.xml.uws.v1.JobSummary;
import net.ivoa.xml.vospace.v2.Transfer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class JobService {
@Autowired
private JobDAO jobDAO;
@Autowired
private UriService uriService;
@Autowired
private TapeService tapeService;
enum JobType {
pullToVoSpace,
pullFromVoSpace,
moveNode,
copyNode
}
public void startJob(JobSummary job) {
switch (getJobType(job)) {
case pullToVoSpace:
handlePullToVoSpace(job);
break;
case pullFromVoSpace:
handlePullFromVoSpace(job);
break;
default:
throw new UnsupportedOperationException("Not implemented yet");
}
}
private void handlePullToVoSpace(JobSummary job) {
// TODO: check protocol
tapeService.startJob(job);
}
private void handlePullFromVoSpace(JobSummary job) {
job.setPhase(ExecutionPhase.EXECUTING);
uriService.setTransferJobResult(job);
jobDAO.updateJob(job);
}
private JobType getJobType(JobSummary job) {
// TODO: check types
Transfer transfer = (Transfer) job.getJobInfo().getAny().get(0);
return JobType.valueOf(transfer.getDirection());
}
}