1 package fr.in2p3.jsaga.impl.job.instance;
2
3 import fr.in2p3.jsaga.impl.job.service.AbstractSyncJobServiceImpl;
4 import fr.in2p3.jsaga.impl.job.staging.mgr.DataStagingManager;
5 import org.ogf.saga.error.*;
6 import org.ogf.saga.job.Job;
7 import org.ogf.saga.job.JobDescription;
8 import org.ogf.saga.session.Session;
9 import org.ogf.saga.task.State;
10 import org.ogf.saga.task.TaskMode;
11
12 import java.io.InputStream;
13 import java.io.OutputStream;
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public class JobImpl extends AbstractAsyncJobImpl implements Job {
28 private String m_scheme;
29
30
31 public JobImpl(Session session, String nativeJobDesc, JobDescription jobDesc, DataStagingManager stagingMgr, String uniqId, AbstractSyncJobServiceImpl service) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, PermissionDeniedException, BadParameterException, TimeoutException, NoSuccessException {
32 super(session, nativeJobDesc, jobDesc, stagingMgr, uniqId, service);
33 m_scheme = service.m_resourceManager.getScheme();
34 }
35
36
37 public JobImpl(Session session, String nativeJobId, DataStagingManager stagingMgr, AbstractSyncJobServiceImpl service) throws NotImplementedException, BadParameterException, TimeoutException, NoSuccessException {
38 super(session, nativeJobId, stagingMgr, service);
39 m_scheme = service.m_resourceManager.getScheme();
40 }
41
42
43
44 public void run() throws NotImplementedException, IncorrectStateException, TimeoutException, NoSuccessException {
45 float timeout = this.getTimeout("run");
46 if (timeout == WAIT_FOREVER) {
47 super.run();
48 } else {
49 try {
50 getResult(super.run(TaskMode.ASYNC), timeout);
51 }
52 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
53 catch (AuthenticationFailedException e) {throw new NoSuccessException(e);}
54 catch (AuthorizationFailedException e) {throw new NoSuccessException(e);}
55 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
56 catch (BadParameterException e) {throw new NoSuccessException(e);}
57 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
58 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
59 catch (SagaIOException e) {throw new NoSuccessException(e);}
60 }
61 }
62
63 public void cancel() throws NotImplementedException, IncorrectStateException, TimeoutException, NoSuccessException {
64 float timeout = this.getTimeout("cancel");
65 if (timeout == WAIT_FOREVER) {
66 super.cancel();
67 } else {
68 try {
69 getResult(super.cancel(TaskMode.ASYNC), timeout);
70 }
71 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
72 catch (AuthenticationFailedException e) {throw new NoSuccessException(e);}
73 catch (AuthorizationFailedException e) {throw new NoSuccessException(e);}
74 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
75 catch (BadParameterException e) {throw new NoSuccessException(e);}
76 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
77 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
78 catch (SagaIOException e) {throw new NoSuccessException(e);}
79 }
80 }
81
82 public State getState() throws NotImplementedException, TimeoutException, NoSuccessException {
83 float timeout = this.getTimeout("getState");
84 if (timeout == WAIT_FOREVER) {
85 return super.getState();
86 } else {
87 try {
88 return (State) getResult(super.getState(TaskMode.ASYNC), timeout);
89 }
90 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
91 catch (AuthenticationFailedException e) {throw new NoSuccessException(e);}
92 catch (AuthorizationFailedException e) {throw new NoSuccessException(e);}
93 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
94 catch (BadParameterException e) {throw new NoSuccessException(e);}
95 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
96 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
97 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
98 catch (SagaIOException e) {throw new NoSuccessException(e);}
99 }
100 }
101
102
103
104 public JobDescription getJobDescription() throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, PermissionDeniedException, DoesNotExistException, TimeoutException, NoSuccessException {
105 float timeout = this.getTimeout("getJobDescription");
106 if (timeout == WAIT_FOREVER) {
107 return super.getJobDescriptionSync();
108 } else {
109 try {
110 return (JobDescription) getResult(super.getJobDescription(TaskMode.ASYNC), timeout);
111 }
112 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
113 catch (BadParameterException e) {throw new NoSuccessException(e);}
114 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
115 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
116 catch (SagaIOException e) {throw new NoSuccessException(e);}
117 }
118 }
119
120 public OutputStream getStdin() throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, PermissionDeniedException, BadParameterException, DoesNotExistException, TimeoutException, IncorrectStateException, NoSuccessException {
121
122 return super.getStdinSync();
123 }
124
125 public InputStream getStdout() throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, PermissionDeniedException, BadParameterException, DoesNotExistException, TimeoutException, IncorrectStateException, NoSuccessException {
126
127 return super.getStdoutSync();
128 }
129
130 public InputStream getStderr() throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, PermissionDeniedException, BadParameterException, DoesNotExistException, TimeoutException, IncorrectStateException, NoSuccessException {
131
132 return super.getStderrSync();
133 }
134
135 public void suspend() throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, PermissionDeniedException, IncorrectStateException, TimeoutException, NoSuccessException {
136 float timeout = this.getTimeout("suspend");
137 if (timeout == WAIT_FOREVER) {
138 super.suspendSync();
139 } else {
140 try {
141 getResult(super.suspend(TaskMode.ASYNC), timeout);
142 }
143 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
144 catch (BadParameterException e) {throw new NoSuccessException(e);}
145 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
146 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
147 catch (SagaIOException e) {throw new NoSuccessException(e);}
148 }
149 }
150
151 public void resume() throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, PermissionDeniedException, IncorrectStateException, TimeoutException, NoSuccessException {
152 float timeout = this.getTimeout("resume");
153 if (timeout == WAIT_FOREVER) {
154 super.resumeSync();
155 } else {
156 try {
157 getResult(super.resume(TaskMode.ASYNC), timeout);
158 }
159 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
160 catch (BadParameterException e) {throw new NoSuccessException(e);}
161 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
162 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
163 catch (SagaIOException e) {throw new NoSuccessException(e);}
164 }
165 }
166
167 public void checkpoint() throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, PermissionDeniedException, IncorrectStateException, TimeoutException, NoSuccessException {
168 float timeout = this.getTimeout("checkpoint");
169 if (timeout == WAIT_FOREVER) {
170 super.checkpointSync();
171 } else {
172 try {
173 getResult(super.checkpoint(TaskMode.ASYNC), timeout);
174 }
175 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
176 catch (BadParameterException e) {throw new NoSuccessException(e);}
177 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
178 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
179 catch (SagaIOException e) {throw new NoSuccessException(e);}
180 }
181 }
182
183 public void migrate(JobDescription jd) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, PermissionDeniedException, BadParameterException, IncorrectStateException, TimeoutException, NoSuccessException {
184 float timeout = this.getTimeout("migrate");
185 if (timeout == WAIT_FOREVER) {
186 super.migrateSync(jd);
187 } else {
188 try {
189 getResult(super.migrate(TaskMode.ASYNC, jd), timeout);
190 }
191 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
192 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
193 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
194 catch (SagaIOException e) {throw new NoSuccessException(e);}
195 }
196 }
197
198 public void signal(int signum) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, PermissionDeniedException, BadParameterException, IncorrectStateException, TimeoutException, NoSuccessException {
199 float timeout = this.getTimeout("signal");
200 if (timeout == WAIT_FOREVER) {
201 super.signalSync(signum);
202 } else {
203 try {
204 getResult(super.signal(TaskMode.ASYNC, signum), timeout);
205 }
206 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
207 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
208 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
209 catch (SagaIOException e) {throw new NoSuccessException(e);}
210 }
211 }
212
213
214
215 private float getTimeout(String methodName) throws NoSuccessException {
216 return getTimeout(Job.class, methodName, m_scheme);
217 }
218 }