public static ExperimentStatus getExperimentStatus(StatusResource status){ if (status != null){ ExperimentStatus experimentStatus = new ExperimentStatus(); if (status.getState() == null || status.getState().equals("")){ status.setState("UNKNOWN"); } experimentStatus.setExperimentState(ExperimentState.valueOf(status.getState())); experimentStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime()); return experimentStatus; } return null; }
public String updateExperimentStatus(ExperimentStatus experimentStatus, String expId) throws RegistryException { try { ExperimentResource experiment = gatewayResource.getExperiment(expId); StatusResource status = experiment.getExperimentStatus(); if (status == null) { status = (StatusResource) experiment.create(ResourceType.STATUS); } status.setExperimentResource(experiment); status.setStatusUpdateTime(AiravataUtils.getTime(experimentStatus.getTimeOfStateChange())); if (status.getState() == null) { status.setState(ExperimentState.UNKNOWN.name()); } if (isValidStatusTransition(ExperimentState.valueOf(status.getState()), experimentStatus.getExperimentState())) { status.setState(experimentStatus.getExperimentState().toString()); status.setStatusType(StatusType.EXPERIMENT.toString()); status.save(); logger.debugId(expId, "Updated experiment {} status to {}.", expId, experimentStatus.toString()); } } catch (Exception e) { logger.errorId(expId, "Error while updating experiment status...", e); throw new RegistryException(e); } return expId; }
JOptionPane.showMessageDialog(null, "Experiment Launched. You will be alerted on completion."); String status = airavataClient.getExperimentStatus(experiment.getExperimentID()).getExperimentState().toString().trim(); while(!status.equals("COMPLETED") && !status.equals("FAILED")){ try { Thread.sleep(1000); status = airavataClient.getExperimentStatus(experiment.getExperimentID()).getExperimentState().toString().trim(); } catch (InterruptedException e) {
ExperimentStatus experimentStatus = new ExperimentStatus(); experimentStatus.setExperimentState(ExperimentState.CREATED); updateExperimentStatus(experimentStatus, experimentID);