You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ms...@apache.org on 2014/11/24 16:14:23 UTC
[4/4] airavata git commit: the provider is compilable
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 <sh...@gmail.com>
Authored: Mon Nov 24 16:17:01 2014 +0100
Committer: msmemon <sh...@gmail.com>
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;