1 package fr.in2p3.jsaga.impl.resource.manager;
2
3 import fr.in2p3.jsaga.adaptor.resource.ResourceAdaptor;
4 import org.ogf.saga.error.*;
5 import org.ogf.saga.job.JobService;
6 import org.ogf.saga.resource.Type;
7 import org.ogf.saga.resource.description.ComputeDescription;
8 import org.ogf.saga.resource.description.NetworkDescription;
9 import org.ogf.saga.resource.description.ResourceDescription;
10 import org.ogf.saga.resource.description.StorageDescription;
11 import org.ogf.saga.resource.instance.Compute;
12 import org.ogf.saga.resource.instance.Network;
13 import org.ogf.saga.resource.instance.Storage;
14 import org.ogf.saga.resource.manager.ResourceManager;
15 import org.ogf.saga.session.Session;
16 import org.ogf.saga.task.TaskMode;
17 import org.ogf.saga.url.URL;
18
19 import java.util.List;
20
21
22
23
24
25 public class ResourceManagerImpl extends AbstractAsyncResourceManagerImpl implements ResourceManager {
26
27 public ResourceManagerImpl(Session session, URL rm, ResourceAdaptor adaptor) {
28 super(session, rm, adaptor);
29 }
30
31
32
33 @SuppressWarnings("unchecked")
34 public List<String> listResources(Type type) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, TimeoutException, NoSuccessException {
35 float timeout = this.getTimeout("listResources");
36 if (timeout == WAIT_FOREVER) {
37 return super.listResourcesSync(type);
38 } else {
39 try {
40 return (List<String>) getResult(super.listResources(TaskMode.ASYNC, type), timeout);
41 }
42 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
43 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
44 catch (BadParameterException e) {throw new NoSuccessException(e);}
45 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
46 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
47 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
48 catch (SagaIOException e) {throw new NoSuccessException(e);}
49 }
50 }
51
52 @SuppressWarnings("unchecked")
53 public List<String> listTemplates(Type type) throws NotImplementedException, TimeoutException, NoSuccessException {
54 float timeout = this.getTimeout("listTemplates");
55 if (timeout == WAIT_FOREVER) {
56 return super.listTemplatesSync(type);
57 } else {
58 try {
59 return (List<String>) getResult(super.listTemplates(TaskMode.ASYNC, type), timeout);
60 }
61 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
62 catch (AuthorizationFailedException e) {throw new NoSuccessException(e);}
63 catch (AuthenticationFailedException e) {throw new NoSuccessException(e);}
64 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
65 catch (BadParameterException e) {throw new NoSuccessException(e);}
66 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
67 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
68 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
69 catch (SagaIOException e) {throw new NoSuccessException(e);}
70 }
71 }
72 public ResourceDescription getTemplate(String id) throws NotImplementedException, BadParameterException, DoesNotExistException, TimeoutException, NoSuccessException {
73 float timeout = this.getTimeout("getTemplate");
74 if (timeout == WAIT_FOREVER) {
75 return super.getTemplateSync(id);
76 } else {
77 try {
78 return (ResourceDescription) getResult(super.getTemplate(TaskMode.ASYNC, id), timeout);
79 }
80 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
81 catch (AuthenticationFailedException e) {throw new NoSuccessException(e);}
82 catch (AuthorizationFailedException e) {throw new NoSuccessException(e);}
83 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
84 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
85 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
86 catch (SagaIOException e) {throw new NoSuccessException(e);}
87 }
88 }
89
90
91
92 public Compute acquireCompute(ComputeDescription description) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, TimeoutException, NoSuccessException {
93 float timeout = this.getTimeout("acquireCompute");
94 if (timeout == WAIT_FOREVER) {
95 return super.acquireComputeSync(description);
96 } else {
97 try {
98 return (Compute) getResult(super.acquireCompute(TaskMode.ASYNC, description), timeout);
99 }
100 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
101 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
102 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
103 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
104 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
105 catch (SagaIOException e) {throw new NoSuccessException(e);}
106 }
107 }
108 public Compute acquireCompute(String id) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, DoesNotExistException, TimeoutException, NoSuccessException {
109 float timeout = this.getTimeout("acquireCompute");
110 if (timeout == WAIT_FOREVER) {
111 return super.acquireComputeSync(id);
112 } else {
113 try {
114 return (Compute) getResult(super.acquireCompute(TaskMode.ASYNC, id), timeout);
115 }
116 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
117 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
118 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
119 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
120 catch (SagaIOException e) {throw new NoSuccessException(e);}
121 }
122 }
123 public void releaseCompute(String id) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, DoesNotExistException, TimeoutException, NoSuccessException, IncorrectStateException {
124 float timeout = this.getTimeout("releaseCompute");
125 if (timeout == WAIT_FOREVER) {
126 super.releaseComputeSync(id);
127 } else {
128 try {
129 getResult(super.releaseCompute(TaskMode.ASYNC, id), timeout);
130 }
131 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
132 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
133 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
134 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
135 catch (SagaIOException e) {throw new NoSuccessException(e);}
136 }
137 }
138 public void releaseCompute(String id, boolean drain) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, DoesNotExistException, TimeoutException, NoSuccessException, IncorrectStateException {
139 float timeout = this.getTimeout("releaseCompute");
140 if (timeout == WAIT_FOREVER) {
141 super.releaseComputeSync(id, drain);
142 } else {
143 try {
144 getResult(super.releaseCompute(TaskMode.ASYNC, id, drain), timeout);
145 }
146 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
147 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
148 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
149 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
150 catch (SagaIOException e) {throw new NoSuccessException(e);}
151 }
152 }
153
154
155
156 public Network acquireNetwork(NetworkDescription description) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, TimeoutException, NoSuccessException {
157 float timeout = this.getTimeout("acquireNetwork");
158 if (timeout == WAIT_FOREVER) {
159 return super.acquireNetworkSync(description);
160 } else {
161 try {
162 return (Network) getResult(super.acquireNetwork(TaskMode.ASYNC, description), timeout);
163 }
164 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
165 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
166 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
167 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
168 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
169 catch (SagaIOException e) {throw new NoSuccessException(e);}
170 }
171 }
172 public Network acquireNetwork(String id) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, DoesNotExistException, TimeoutException, NoSuccessException {
173 float timeout = this.getTimeout("acquireNetwork");
174 if (timeout == WAIT_FOREVER) {
175 return super.acquireNetworkSync(id);
176 } else {
177 try {
178 return (Network) getResult(super.acquireNetwork(TaskMode.ASYNC, id), timeout);
179 }
180 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
181 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
182 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
183 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
184 catch (SagaIOException e) {throw new NoSuccessException(e);}
185 }
186 }
187 public void releaseNetwork(String id) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, DoesNotExistException, TimeoutException, NoSuccessException, IncorrectStateException {
188 float timeout = this.getTimeout("releaseNetwork");
189 if (timeout == WAIT_FOREVER) {
190 super.releaseNetworkSync(id);
191 } else {
192 try {
193 getResult(super.releaseNetwork(TaskMode.ASYNC, id), timeout);
194 }
195 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
196 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
197 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
198 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
199 catch (SagaIOException e) {throw new NoSuccessException(e);}
200 }
201 }
202
203
204
205 public Storage acquireStorage(StorageDescription description) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, TimeoutException, NoSuccessException {
206 float timeout = this.getTimeout("acquireStorage");
207 if (timeout == WAIT_FOREVER) {
208 return super.acquireStorageSync(description);
209 } else {
210 try {
211 return (Storage) getResult(super.acquireStorage(TaskMode.ASYNC, description), timeout);
212 }
213 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
214 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
215 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
216 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
217 catch (DoesNotExistException e) {throw new NoSuccessException(e);}
218 catch (SagaIOException e) {throw new NoSuccessException(e);}
219 }
220 }
221 public Storage acquireStorage(String id) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, DoesNotExistException, TimeoutException, NoSuccessException {
222 float timeout = this.getTimeout("acquireStorage");
223 if (timeout == WAIT_FOREVER) {
224 return super.acquireStorageSync(id);
225 } else {
226 try {
227 return (Storage) getResult(super.acquireStorage(TaskMode.ASYNC, id), timeout);
228 }
229 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
230 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
231 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
232 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
233 catch (SagaIOException e) {throw new NoSuccessException(e);}
234 }
235 }
236 public void releaseStorage(String id) throws NotImplementedException, AuthenticationFailedException, AuthorizationFailedException, BadParameterException, DoesNotExistException, TimeoutException, NoSuccessException, IncorrectStateException {
237 float timeout = this.getTimeout("releaseStorage");
238 if (timeout == WAIT_FOREVER) {
239 super.releaseStorageSync(id);
240 } else {
241 try {
242 getResult(super.releaseStorage(TaskMode.ASYNC, id), timeout);
243 }
244 catch (IncorrectURLException e) {throw new NoSuccessException(e);}
245 catch (PermissionDeniedException e) {throw new NoSuccessException(e);}
246 catch (IncorrectStateException e) {throw new NoSuccessException(e);}
247 catch (AlreadyExistsException e) {throw new NoSuccessException(e);}
248 catch (SagaIOException e) {throw new NoSuccessException(e);}
249 }
250 }
251
252
253
254 private float getTimeout(String methodName) throws NoSuccessException {
255 return getTimeout(JobService.class, methodName, m_url.getScheme());
256 }
257 }