the provider is compilable Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/897d765c Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/897d765c Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/897d765c
Branch: refs/heads/master Commit: 897d765c8bf702dd66d77f6fb37517b522f826c0 Parents: afc05ea Author: msmemon <[email protected]> Authored: Mon Nov 24 16:17:01 2014 +0100 Committer: msmemon <[email protected]> Committed: Mon Nov 24 16:17:01 2014 +0100 ---------------------------------------------------------------------- .../gfac/bes/provider/impl/BESProvider.java | 209 +------------------ 1 file changed, 1 insertion(+), 208 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/897d765c/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java index b0fa422..7cf2d7c 100644 --- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java +++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java @@ -46,7 +46,6 @@ import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtoco import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission; import org.apache.airavata.model.workspace.experiment.JobDetails; import org.apache.airavata.model.workspace.experiment.JobState; -import org.apache.airavata.schemas.gfac.UnicoreHostType; import org.apache.xmlbeans.XmlCursor; import org.bouncycastle.asn1.x500.style.BCStyle; import org.ggf.schemas.bes.x2006.x08.besFactory.ActivityStateEnumeration; @@ -190,8 +189,7 @@ public class BESProvider extends AbstractProvider implements GFacProvider, JobState applicationJobStatus = getApplicationJobStatus(activityStatus); String jobStatusMessage = "Status of job " + jobId + "is " + applicationJobStatus; - GFacUtils.updateJobStatus(jobExecutionContext, jobDetails, - applicationJobStatus); + GFacUtils.updateJobStatus(jobExecutionContext, jobDetails, applicationJobStatus); jobExecutionContext.getNotifier().publish( new StatusChangeEvent(jobStatusMessage)); @@ -266,211 +264,6 @@ public class BESProvider extends AbstractProvider implements GFacProvider, } - UnicoreHostType host = (UnicoreHostType) jobExecutionContext - .getApplicationContext().getHostDescription().getType(); - - String factoryUrl = host.getUnicoreBESEndPointArray()[0]; - - EndpointReferenceType eprt = EndpointReferenceType.Factory - .newInstance(); - eprt.addNewAddress().setStringValue(factoryUrl); - - // WSUtilities.addServerIdentity(eprt, serverDN); - - String userDN = getUserName(jobExecutionContext); - - // TODO: to be removed - if (userDN == null || userDN.equalsIgnoreCase("admin")) { - userDN = "CN=zdv575, O=Ultrascan Gateway, C=DE"; - } - - StorageClient sc = null; - - try { - - CreateActivityDocument cad = CreateActivityDocument.Factory - .newInstance(); - JobDefinitionDocument jobDefDoc = JobDefinitionDocument.Factory - .newInstance(); - -// String xlogin = getCNFromUserDN(userDN); - - // create storage - StorageCreator storageCreator = new StorageCreator(secProperties, - factoryUrl, 5, null); - - try { - sc = storageCreator.createStorage(); - } catch (Exception e2) { - log.error("Cannot create storage.."); - throw new GFacProviderException("Cannot create storage..", e2); - } - - JobDefinitionType jobDefinition = jobDefDoc.addNewJobDefinition(); - try { - jobDefinition = JSDLGenerator.buildJSDLInstance( - jobExecutionContext, sc.getUrl()).getJobDefinition(); - cad.addNewCreateActivity().addNewActivityDocument() - .setJobDefinition(jobDefinition); - log.info("JSDL" + jobDefDoc.toString()); - } catch (Exception e1) { - throw new GFacProviderException( - "Cannot generate JSDL instance from the JobExecutionContext.", - e1); - } - - // upload files if any - DataTransferrer dt = new DataTransferrer(jobExecutionContext, sc); - dt.uploadLocalFiles(); - - FactoryClient factory = null; - JobDetails jobDetails = new JobDetails(); - - try { - factory = new FactoryClient(eprt, secProperties); - } catch (Exception e) { - throw new GFacProviderException(e.getLocalizedMessage(), e); - } - CreateActivityResponseDocument response = null; - try { - log.info(String.format("Activity Submitting to %s ... \n", - factoryUrl)); - jobExecutionContext.getNotifier().publish(new StartExecutionEvent()); - response = factory.createActivity(cad); - log.info(String.format("Activity Submitted to %s \n", factoryUrl)); - } catch (Exception e) { - throw new GFacProviderException("Cannot create activity.", e); - } - EndpointReferenceType activityEpr = response.getCreateActivityResponse().getActivityIdentifier(); - - log.info("Activity : " + activityEpr.getAddress().getStringValue() + " Submitted."); - - // factory.waitWhileActivityIsDone(activityEpr, 1000); - jobId = WSUtilities.extractResourceID(activityEpr); - if (jobId == null) { - jobId = new Long(Calendar.getInstance().getTimeInMillis()) - .toString(); - } - log.info("JobID: " + jobId); - jobDetails.setJobID(jobId); - jobDetails.setJobDescription(jobId); - - jobExecutionContext.setJobDetails(jobDetails); - try { - log.info(formatStatusMessage(activityEpr.getAddress() - .getStringValue(), factory.getActivityStatus(activityEpr) - .toString())); - - jobExecutionContext.getNotifier().publish(new UnicoreJobIDEvent(jobId)); -// GFacUtils.saveJobStatus(jobExecutionContext, details,JobState.SUBMITTED); - - factory.getActivityStatus(activityEpr); - log.info(formatStatusMessage(activityEpr.getAddress() - .getStringValue(), factory.getActivityStatus(activityEpr) - .toString())); - - // TODO publish the status messages to the message bus - while ((factory.getActivityStatus(activityEpr) != ActivityStateEnumeration.FINISHED) - && (factory.getActivityStatus(activityEpr) != ActivityStateEnumeration.FAILED) - && (factory.getActivityStatus(activityEpr) != ActivityStateEnumeration.CANCELLED)) { - - ActivityStatusType activityStatus = null; - try { - activityStatus = getStatus(factory, activityEpr); - JobState applicationJobStatus = getApplicationJobStatus(activityStatus); - String jobStatusMessage = "Status of job " + jobId + "is " - + applicationJobStatus; - //TODO: properly use GFacUtils.. -// GFacUtils.updateJobStatus(jobExecutionContext, jobDetails, applicationJobStatus); - - jobExecutionContext.getNotifier().publish( - new StatusChangeEvent(jobStatusMessage)); - - // GFacUtils.updateApplicationJobStatus(jobExecutionContext,jobId, - // applicationJobStatus); - } catch (UnknownActivityIdentifierFault e) { - throw new GFacProviderException(e.getMessage(), - e.getCause()); - } - - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - } - continue; - } - }catch(Exception e) { - throw new GFacProviderException(e.getMessage(), - e.getCause()); - - } - - ActivityStatusType activityStatus = null; - try { - activityStatus = getStatus(factory, activityEpr); - log.info(formatStatusMessage(activityEpr.getAddress().getStringValue(), activityStatus.getState().toString())); - ActivityClient activityClient; - activityClient = new ActivityClient(activityEpr,secProperties); - dt.setStorageClient(activityClient.getUspaceClient()); - } catch (Exception e1) { - throw new GFacProviderException(e1.getMessage(), - e1.getCause()); - } - - - - if ((activityStatus.getState() == ActivityStateEnumeration.FAILED)) { - String error = activityStatus.getFault().getFaultcode() - .getLocalPart() - + "\n" - + activityStatus.getFault().getFaultstring() - + "\n EXITCODE: " + activityStatus.getExitCode(); - log.info(error); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - } - dt.downloadStdOuts(); - } else if (activityStatus.getState() == ActivityStateEnumeration.CANCELLED) { - JobState applicationJobStatus = JobState.CANCELED; - String jobStatusMessage = "Status of job " + jobId + "is " - + applicationJobStatus; - jobExecutionContext.getNotifier().publish( - new StatusChangeEvent(jobStatusMessage)); - //TODO: properly use GFacUtils.. -// GFacUtils.updateJobStatus(jobExecutionContext, jobDetails, applicationJobStatus); - throw new GFacProviderException( - jobExecutionContext.getExperimentID() + "Job Canceled"); - } - - else if (activityStatus.getState() == ActivityStateEnumeration.FINISHED) { - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - } - if (activityStatus.getExitCode() == 0) { - dt.downloadRemoteFiles(); - } else { - dt.downloadStdOuts(); - } - } - - } finally { - // destroy sms instance - try { - if (sc != null) { - sc.destroy(); - } - } catch (Exception e) { - log.warn( - "Cannot destroy temporary SMS instance:" + sc.getUrl(), - e); - } - } - - } - - private JobState getApplicationJobStatus(ActivityStatusType activityStatus) { if (activityStatus == null) { return JobState.UNKNOWN;
