View Javadoc

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   * *** Centre de Calcul de l'IN2P3 - Lyon (France) ***
23   * ***             http://cc.in2p3.fr/             ***
24   * ***************************************************/
25  public class ResourceManagerImpl extends AbstractAsyncResourceManagerImpl implements ResourceManager {
26      /** constructor */
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     ////////////////////////////////////////// private methods //////////////////////////////////////////
253 
254     private float getTimeout(String methodName) throws NoSuccessException {
255         return getTimeout(JobService.class, methodName, m_url.getScheme());
256     }
257 }