public String addWorkflowNodeStatus(WorkflowNodeStatus status, CompositeIdentifier ids) throws RegistryException { try { ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier()); WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getSecondLevelIdentifier()); StatusResource statusResource = (StatusResource) experiment.create(ResourceType.STATUS); statusResource.setExperimentResource(experiment); statusResource.setWorkflowNodeDetail(workflowNode); statusResource.setStatusType(StatusType.WORKFLOW_NODE.toString()); statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange())); if (status.getWorkflowNodeState() == null) { statusResource.setState(WorkflowNodeState.UNKNOWN.toString()); } else { statusResource.setState(status.getWorkflowNodeState().toString()); } statusResource.save(); return String.valueOf(statusResource.getStatusId()); } catch (Exception e) { logger.error("Error while adding workflow node status...", e); throw new RegistryException(e); } }
public String updateWorkflowNodeStatus(WorkflowNodeStatus status, String nodeId) throws RegistryException { try { ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT); WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode(nodeId); StatusResource statusResource = workflowNode.getWorkflowNodeStatus(); if (statusResource == null) { statusResource = (StatusResource) workflowNode.create(ResourceType.STATUS); } statusResource.setExperimentResource(workflowNode.getExperimentResource()); statusResource.setWorkflowNodeDetail(workflowNode); statusResource.setStatusType(StatusType.WORKFLOW_NODE.toString()); statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange())); statusResource.setState(status.getWorkflowNodeState().toString()); statusResource.save(); logger.debugId(nodeId, "Updated workflow node {} status to {}.", nodeId, status.toString()); return String.valueOf(statusResource.getStatusId()); } catch (Exception e) { logger.errorId(nodeId, "Error while updating workflow node status to " + status.toString() + "...", e); throw new RegistryException(e); } }