Search in sources :

Example 11 with WSNode

use of org.apache.airavata.workflow.model.graph.ws.WSNode in project airavata by apache.

the class Workflow method getWorkflowServiceNodeIDs.

public List<String> getWorkflowServiceNodeIDs() {
    List<NodeImpl> nodes = getGraph().getNodes();
    ArrayList<String> nodeIDs = new ArrayList<String>();
    for (Node node : nodes) {
        if (node instanceof WSNode) {
            nodeIDs.add(node.getID());
        }
    }
    return nodeIDs;
}
Also used : WSNode(org.apache.airavata.workflow.model.graph.ws.WSNode) NodeImpl(org.apache.airavata.workflow.model.graph.impl.NodeImpl) InputNode(org.apache.airavata.workflow.model.graph.system.InputNode) Node(org.apache.airavata.workflow.model.graph.Node) WSNode(org.apache.airavata.workflow.model.graph.ws.WSNode) OutputNode(org.apache.airavata.workflow.model.graph.system.OutputNode) ArrayList(java.util.ArrayList)

Example 12 with WSNode

use of org.apache.airavata.workflow.model.graph.ws.WSNode in project airavata by apache.

the class Workflow method bindComponents.

/**
 * Binds WSNodes to components
 *
 * @throws ComponentException
 * @throws GraphException
 */
public void bindComponents() throws ComponentException, GraphException {
    // This map is to avoid creating multiple instances for the a component
    Map<WSComponentKey, WSComponent> components = new HashMap<WSComponentKey, WSComponent>();
    for (WSNode node : GraphUtil.getWSNodes(this.graph)) {
        String id = node.getWSDLID();
        logger.debug("id: " + id);
    // WsdlDefinitions wsdl = this.wsdlMap.get(id);
    // 
    // if (wsdl == null) {
    // // XXX This happens while loading a workflow that is created by
    // // the version 2.2.6_2 or below from GPEL.
    // // Need to look for wsdl manually.
    // // id should be look like
    // // {http://www.extreme.indiana.edu/math/}Adder
    // for (WsdlDefinitions w : this.wsdlMap.values()) {
    // QName name = WSDLUtil.getWSDLQName(w);
    // if (name.toString().equals(id)) {
    // wsdl = w;
    // break;
    // }
    // }
    // }
    // if (wsdl == null) {
    // continue;
    // }
    // try {
    // QName portType = node.getPortTypeQName();
    // if (portType == null) {
    // // XXX This happens while parsing xwf created by the version
    // // 2.2.6_1 or below.
    // portType = WSDLUtil.getFirstPortTypeQName(wsdl);
    // }
    // String operation = node.getOperationName();
    // if (operation == null) {
    // // XXX This happens while parsing xwf created by the version
    // // 2.2.6_1 or below.
    // operation = WSDLUtil.getFirstOperationName(wsdl, portType);
    // }
    // WSComponentKey key = new WSComponentKey(id, portType, operation);
    // 
    // WSComponent component = null;
    // if (components.containsKey(key)) {
    // component = components.get(key);
    // } else {
    // //FIXME
    // //                    component = WSComponentFactory.createComponent(wsdl, portType, operation);
    // components.put(key, component);
    // }
    // node.setComponent(component);
    // } catch (UtilsException e) {
    // logger.error(e.getMessage(), e);
    // }
    }
    this.graph.fixParameterNodes();
    GraphUtil.propagateTypes(this.graph);
}
Also used : WSNode(org.apache.airavata.workflow.model.graph.ws.WSNode) HashMap(java.util.HashMap) WSComponent(org.apache.airavata.workflow.model.component.ws.WSComponent) WSComponentKey(org.apache.airavata.workflow.model.component.ws.WSComponentKey)

Example 13 with WSNode

use of org.apache.airavata.workflow.model.graph.ws.WSNode in project airavata by apache.

the class WorkflowInterpreter method setupNodeDetailsInput.

private void setupNodeDetailsInput(Node node, WorkflowNodeDetails nodeDetails) {
    List<DataPort> inputPorts = node.getInputPorts();
    for (DataPort dataPort : inputPorts) {
        Node fromNode = dataPort.getFromNode();
        String portInputValue = null;
        if (fromNode instanceof InputNode) {
            portInputValue = (String) ((InputNode) fromNode).getDefaultValue();
        } else if (fromNode instanceof WSNode) {
            Map<String, String> outputData = nodeOutputData.get(fromNode);
            portInputValue = outputData.get(dataPort.getName());
            if (portInputValue == null) {
                portInputValue = outputData.get(dataPort.getEdge(0).getFromPort().getName());
            }
        }
        // 123456789
        InputDataObjectType elem = new InputDataObjectType();
        elem.setName(dataPort.getName());
        elem.setValue(portInputValue);
        if (dataPort instanceof WSPort) {
            WSPort port = (WSPort) dataPort;
            elem.setInputOrder(port.getComponentPort().getInputOrder());
            elem.setApplicationArgument((port.getComponentPort().getApplicationArgument() != null ? port.getComponentPort().getApplicationArgument() : ""));
            elem.setType(port.getType());
        }
        nodeDetails.addToNodeInputs(elem);
    }
    try {
        getExperimentCatalog().update(ExperimentCatalogModelType.WORKFLOW_NODE_DETAIL, nodeDetails, nodeDetails.getNodeInstanceId());
    } catch (RegistryException e) {
        log.error(e.getMessage(), e);
    }
}
Also used : DataPort(org.apache.airavata.workflow.model.graph.DataPort) WSPort(org.apache.airavata.workflow.model.graph.ws.WSPort) WSNode(org.apache.airavata.workflow.model.graph.ws.WSNode) DynamicNode(org.apache.airavata.workflow.model.graph.dynamic.DynamicNode) Node(org.apache.airavata.workflow.model.graph.Node) SubWorkflowNode(org.apache.airavata.workflow.model.graph.subworkflow.SubWorkflowNode) WSNode(org.apache.airavata.workflow.model.graph.ws.WSNode) RegistryException(org.apache.airavata.registry.cpi.RegistryException)

Aggregations

WSNode (org.apache.airavata.workflow.model.graph.ws.WSNode)13 Node (org.apache.airavata.workflow.model.graph.Node)8 InputNode (org.apache.airavata.workflow.model.graph.system.InputNode)6 DataPort (org.apache.airavata.workflow.model.graph.DataPort)5 OutputNode (org.apache.airavata.workflow.model.graph.system.OutputNode)5 WSComponent (org.apache.airavata.workflow.model.component.ws.WSComponent)4 NodeImpl (org.apache.airavata.workflow.model.graph.impl.NodeImpl)4 ConstantNode (org.apache.airavata.workflow.model.graph.system.ConstantNode)4 EndifNode (org.apache.airavata.workflow.model.graph.system.EndifNode)4 IfNode (org.apache.airavata.workflow.model.graph.system.IfNode)4 MemoNode (org.apache.airavata.workflow.model.graph.system.MemoNode)4 ArrayList (java.util.ArrayList)3 Port (org.apache.airavata.workflow.model.graph.Port)3 WSPort (org.apache.airavata.workflow.model.graph.ws.WSPort)3 LinkedList (java.util.LinkedList)2 QName (javax.xml.namespace.QName)2 Pair (org.apache.airavata.common.utils.Pair)2 RegistryException (org.apache.airavata.registry.cpi.RegistryException)2 DynamicNode (org.apache.airavata.workflow.model.graph.dynamic.DynamicNode)2 SubWorkflowNode (org.apache.airavata.workflow.model.graph.subworkflow.SubWorkflowNode)2