Search in sources :

Example 6 with JobDefinitionType

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;
}
Also used : JobDefinitionDocument(org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionDocument) JobDefinitionType(org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType)

Example 7 with JobDefinitionType

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);
}
Also used : POSIXApplicationType(org.ggf.schemas.jsdl.x2005.x11.jsdlPosix.POSIXApplicationType) HPCProfileApplicationType(org.ggf.schemas.jsdl.x2006.x07.jsdlHpcpa.HPCProfileApplicationType) SPMDApplicationType(org.ogf.schemas.jsdl.x2007.x02.jsdlSpmd.SPMDApplicationType) XmlCursor(org.apache.xmlbeans.XmlCursor)

Example 8 with JobDefinitionType

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;
    }
}
Also used : POSIXApplicationType(org.ggf.schemas.jsdl.x2005.x11.jsdlPosix.POSIXApplicationType) XmlObject(org.apache.xmlbeans.XmlObject) XmlCursor(org.apache.xmlbeans.XmlCursor)

Example 9 with JobDefinitionType

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);
        }
    }
}
Also used : ProcessModel(org.apache.airavata.model.process.ProcessModel) ResourcesType(org.ggf.schemas.jsdl.x2005.x11.jsdl.ResourcesType) ResourceRequestDocument(eu.unicore.jsdl.extensions.ResourceRequestDocument) ResourceRequestType(eu.unicore.jsdl.extensions.ResourceRequestType) ComputationalResourceSchedulingModel(org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel)

Example 10 with JobDefinitionType

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;
}
Also used : JobDefinitionDocument(org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionDocument) JobDefinitionType(org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType)

Aggregations

POSIXApplicationType (org.ggf.schemas.jsdl.x2005.x11.jsdlPosix.POSIXApplicationType)10 XmlCursor (org.apache.xmlbeans.XmlCursor)8 ApplicationType (org.ggf.schemas.jsdl.x2005.x11.jsdl.ApplicationType)7 JobDefinitionType (org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType)7 JobDefinitionDocument (org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionDocument)6 HPCProfileApplicationType (org.ggf.schemas.jsdl.x2006.x07.jsdlHpcpa.HPCProfileApplicationType)5 SPMDApplicationType (org.ogf.schemas.jsdl.x2007.x02.jsdlSpmd.SPMDApplicationType)5 ApplicationDeploymentDescription (org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription)2 URIException (org.apache.commons.httpclient.URIException)2 XmlObject (org.apache.xmlbeans.XmlObject)2 CreationFlagEnumeration (org.ggf.schemas.jsdl.x2005.x11.jsdl.CreationFlagEnumeration)2 DataStagingType (org.ggf.schemas.jsdl.x2005.x11.jsdl.DataStagingType)2 JobDescriptionType (org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDescriptionType)2 JSchException (com.jcraft.jsch.JSchException)1 ActivityClient (de.fzj.unicore.bes.client.ActivityClient)1 FactoryClient (de.fzj.unicore.bes.client.FactoryClient)1 StorageClient (de.fzj.unicore.uas.client.StorageClient)1 ResourceRequestDocument (eu.unicore.jsdl.extensions.ResourceRequestDocument)1 ResourceRequestType (eu.unicore.jsdl.extensions.ResourceRequestType)1 IOException (java.io.IOException)1