use of org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType in project airavata by apache.
the class JSDLGenerator method buildJSDLInstance.
public static synchronized JobDefinitionDocument buildJSDLInstance(ProcessContext context, String smsUrl) throws Exception {
JobDefinitionDocument jobDefDoc = JobDefinitionDocument.Factory.newInstance();
JobDefinitionType value = jobDefDoc.addNewJobDefinition();
// build Identification
createJobIdentification(value, context);
ResourceProcessor.generateResourceElements(value, context);
ApplicationProcessor.generateJobSpecificAppElements(value, context);
UASDataStagingProcessor.generateDataStagingElements(value, context, smsUrl);
return jobDefDoc;
}
use of org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType in project airavata by apache.
the class JSDLUtils method getOrCreateSPMDApplication.
public static SPMDApplicationType getOrCreateSPMDApplication(JobDefinitionType value) {
ApplicationType application = getOrCreateApplication(value);
if (getSPMDApplication(value) == null) {
XmlCursor acursor = application.newCursor();
acursor.toEndToken();
acursor.insertElement(SPMD_APPLICATION);
acursor.dispose();
}
return getSPMDApplication(value);
}
use of org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType in project airavata by apache.
the class JSDLUtils method getPOSIXApplication.
public static POSIXApplicationType getPOSIXApplication(JobDefinitionType value) {
if (value != null && value.getJobDescription() != null && value.getJobDescription().isSetApplication()) {
XmlCursor acursor = value.getJobDescription().getApplication().newCursor();
if (acursor.toFirstChild()) {
do {
if (acursor.getName().equals(POSIX_APPLICATION)) {
XmlObject result = acursor.getObject();
acursor.dispose();
return (POSIXApplicationType) result;
}
} while (acursor.toNextSibling());
acursor.dispose();
return null;
} else {
acursor.dispose();
return null;
}
} else {
return null;
}
}
use of org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType in project airavata by apache.
the class ResourceProcessor method generateResourceElements.
public static void generateResourceElements(JobDefinitionType value, ProcessContext context) throws Exception {
ProcessModel processModel = context.getProcessModel();
if (processModel != null) {
try {
ComputationalResourceSchedulingModel crs = processModel.getProcessResourceSchedule();
if (crs.getTotalPhysicalMemory() > 0) {
RangeValueType rangeType = new RangeValueType();
rangeType.setLowerBound(Double.NaN);
rangeType.setUpperBound(Double.NaN);
rangeType.setExact(crs.getTotalPhysicalMemory());
JSDLUtils.setIndividualPhysicalMemoryRequirements(value, rangeType);
}
if (crs.getNodeCount() > 0) {
RangeValueType rangeType = new RangeValueType();
rangeType.setLowerBound(Double.NaN);
rangeType.setUpperBound(Double.NaN);
rangeType.setExact(crs.getNodeCount());
JSDLUtils.setTotalResourceCountRequirements(value, rangeType);
}
if (crs.getWallTimeLimit() > 0) {
RangeValueType cpuTime = new RangeValueType();
cpuTime.setLowerBound(Double.NaN);
cpuTime.setUpperBound(Double.NaN);
long wallTime = crs.getWallTimeLimit() * 60;
cpuTime.setExact(wallTime);
JSDLUtils.setIndividualCPUTimeRequirements(value, cpuTime);
}
// the total cpu count is total cpus per node
if (crs.getTotalCPUCount() > 0) {
RangeValueType rangeType = new RangeValueType();
rangeType.setLowerBound(Double.NaN);
rangeType.setUpperBound(Double.NaN);
int nodeCount = crs.getNodeCount();
if (nodeCount <= 0) {
nodeCount = 1;
}
rangeType.setExact(crs.getTotalCPUCount() / nodeCount);
JSDLUtils.setIndividualCPUCountRequirements(value, rangeType);
}
String qName = crs.getQueueName();
if (!(qName == null || "".equals(qName))) {
// ignore "default" queue names
if (!(crs.getQueueName().trim().equalsIgnoreCase("default"))) {
ResourceRequestDocument rqDoc = ResourceRequestDocument.Factory.newInstance();
ResourceRequestType rq = rqDoc.addNewResourceRequest();
rq.setName("Queue");
rq.setValue(qName);
ResourcesType res = JSDLUtils.getOrCreateResources(value);
WSUtilities.insertAny(rqDoc, res);
}
}
} catch (NullPointerException npe) {
throw new Exception("No value set for resource requirements.", npe);
}
}
}
use of org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType in project airavata by apache.
the class JSDLGenerator method buildJSDLInstance.
public static synchronized JobDefinitionDocument buildJSDLInstance(JobExecutionContext context) throws Exception {
JobDefinitionDocument jobDefDoc = JobDefinitionDocument.Factory.newInstance();
JobDefinitionType value = jobDefDoc.addNewJobDefinition();
// build Identification
createJobIdentification(value, context);
ResourceProcessor.generateResourceElements(value, context);
ApplicationProcessor.generateJobSpecificAppElements(value, context);
return jobDefDoc;
}
Aggregations