public static TransferStatus getTransferStatus (StatusResource status){ if (status != null){ TransferStatus transferStatus = new TransferStatus(); if (status.getState() == null || status.getState().equals("")){ status.setState("UNKNOWN"); } transferStatus.setTransferState(TransferState.valueOf(status.getState())); transferStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime()); return transferStatus; } return null; }
/** * @param status data transfer status * @param ids contains taskId and transfer id * @return status id */ public String addTransferStatus(TransferStatus status, CompositeIdentifier ids) throws RegistryException { try { ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT); WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL); TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier()); DataTransferDetailResource dataTransferDetail = taskDetail.getDataTransferDetail((String) ids.getSecondLevelIdentifier()); StatusResource statusResource = (StatusResource) dataTransferDetail.create(ResourceType.STATUS); statusResource.setExperimentResource(taskDetail.getWorkflowNodeDetailResource().getExperimentResource()); statusResource.setWorkflowNodeDetail(taskDetail.getWorkflowNodeDetailResource()); statusResource.setTaskDetailResource(taskDetail); statusResource.setDataTransferDetail(dataTransferDetail); statusResource.setStatusType(StatusType.DATA_TRANSFER.toString()); statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange())); if (status.getTransferState() == null) { statusResource.setState(TransferState.UNKNOWN.toString()); } else { statusResource.setState(status.getTransferState().toString()); } statusResource.save(); return String.valueOf(statusResource.getStatusId()); } catch (Exception e) { logger.error("Error while adding transfer status...", e); throw new RegistryException(e); } }
public void updateTransferStatus(TransferStatus status, String transferId) throws RegistryException { try { ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT); WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL); TaskDetailResource taskDetail = (TaskDetailResource) workflowNode.create(ResourceType.TASK_DETAIL); DataTransferDetailResource dataTransferDetail = taskDetail.getDataTransferDetail(transferId); StatusResource statusResource = dataTransferDetail.getDataTransferStatus(); WorkflowNodeDetailResource workflowNodeDetailResource = dataTransferDetail.getTaskDetailResource().getWorkflowNodeDetailResource(); if (workflowNodeDetailResource != null) { statusResource.setExperimentResource(workflowNodeDetailResource.getExperimentResource()); statusResource.setWorkflowNodeDetail(workflowNodeDetailResource); } statusResource.setTaskDetailResource(dataTransferDetail.getTaskDetailResource()); statusResource.setDataTransferDetail(dataTransferDetail); statusResource.setStatusType(StatusType.DATA_TRANSFER.toString()); statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange())); statusResource.setState(status.getTransferState().toString()); statusResource.save(); } catch (Exception e) { logger.error("Error while updating transfer status...", e); throw new RegistryException(e); } }