public static function get_experiment_values($experiment, $project, $forSearch = false) { $expVal = array(); //$expVal["experimentStatusString"] = ""; $expVal["experimentTimeOfStateChange"] = ""; $expVal["experimentCreationTime"] = ""; $expVal["experimentStates"] = ExperimentState::$__names; $expVal["processStates"] = ProcessState::$__names; $expVal["jobStates"] = JobState::$__names; $expVal["taskStates"] = TaskState::$__names; $expVal["taskTypes"] = TaskTypes::$__names; $experimentStatusString = $expVal["experimentStates"][$experiment->experimentStatus->state]; $expVal["experimentStatusString"] = $experimentStatusString; if ($experimentStatusString == ExperimentState::FAILED) { $expVal["editable"] = false; } $expVal["cancelable"] = false; if ($experimentStatusString == ExperimentState::LAUNCHED || $experimentStatusString == ExperimentState::EXECUTING) { $expVal["cancelable"] = true; } if ($experiment->experimentStatus != null) { $experimentStatus = $experiment->experimentStatus; /* $experimentState = $experimentStatus->state; $experimentStatusString = ExperimentState::$__names[$experimentState]; $expVal["experimentStatusString"] = $experimentStatusString; */ $expVal["experimentTimeOfStateChange"] = $experimentStatus->timeOfStateChange / 1000; // divide by 1000 since timeOfStateChange is in ms $expVal["experimentCreationTime"] = $experiment->creationTime / 1000; // divide by 1000 since creationTime is in ms } if (!$forSearch) { $userConfigData = $experiment->userConfigurationData; $scheduling = $userConfigData->computationalResourceScheduling; $expVal['scheduling'] = $scheduling; try { $expVal["computeResource"] = CRUtilities::get_compute_resource($scheduling->resourceHostId); } catch (Exception $ex) { //Error while retrieving CR $expVal["computeResource"] = ""; } } try { $expVal["applicationInterface"] = AppUtilities::get_application_interface($experiment->executionId); } catch (Exception $ex) { //Failed retrieving Application Interface (May be it's deleted) Fix for Airavata-1801 $expVal["applicationInterface"] = new ApplicationInterfaceDescription(); $expVal["applicationInterface"]->applicationName = substr($experiment->executionId, -8); } switch (ExperimentState::$__names[$experiment->experimentStatus->state]) { case 'CREATED': case 'VALIDATED': case 'SCHEDULED': case 'FAILED': $expVal["editable"] = true; break; default: $expVal["editable"] = false; break; } switch (ExperimentState::$__names[$experiment->experimentStatus->state]) { case 'VALIDATED': case 'SCHEDULED': case 'LAUNCHED': case 'EXECUTING': $expVal["cancelable"] = true; break; default: $expVal["cancelable"] = false; break; } return $expVal; }
echo '</div>'; $experiments = ProjectUtilities::get_experiments_in_project($project->projectID); echo '<div class="table-responsive">'; echo '<table class="table">'; echo '<tr>'; echo '<th>Name</th>'; echo '<th>Application</th>'; echo '<th>Compute Resource</th>'; echo '<th>Last Modified Time</th>'; echo '<th>Experiment Status</th>'; echo '<th>Job Status</th>'; echo '</tr>'; foreach ($experiments as $experiment) { $expValues = ExperimentUtilities::get_experiment_values($experiment, ProjectUtilities::get_project($experiment->projectId), true); $expValues["jobState"] = ExperimentUtilities::get_job_status($experiment); $applicationInterface = AppUtilities::get_application_interface($experiment->executionId); echo '<tr>'; echo '<td>' . $experiment->experimentName . '</td>'; echo "<td>{$applicationInterface->applicationName}</td>"; echo '<td>'; try { $cr = CRUtilities::get_compute_resource($experiment->userConfigurationData->computationalResourceScheduling->resourceHostId); if (!empty($cr)) { echo $cr->hostName; } } catch (Exception $ex) { //Error while retrieving the CR } echo '</td>'; echo '<td class="time" unix-time="' . $expValues["experimentTimeOfStateChange"] . '"></td>'; echo '<td>';
public static function get_experiment_values($experiment, $project, $forSearch = false) { //var_dump( $experiment); exit; $expVal = array(); $expVal["experimentStatusString"] = ""; $expVal["experimentTimeOfStateChange"] = ""; $expVal["experimentCreationTime"] = ""; if ($experiment->experimentStatus != null) { $experimentStatus = $experiment->experimentStatus; $experimentState = $experimentStatus->state; $experimentStatusString = ExperimentState::$__names[$experimentState]; $expVal["experimentStatusString"] = $experimentStatusString; $expVal["experimentTimeOfStateChange"] = $experimentStatus->timeOfStateChange / 1000; // divide by 1000 since timeOfStateChange is in ms $expVal["experimentCreationTime"] = $experiment->creationTime / 1000; // divide by 1000 since creationTime is in ms } if (!$forSearch) { $userConfigData = $experiment->userConfigurationData; $scheduling = $userConfigData->computationalResourceScheduling; $expVal['scheduling'] = $scheduling; try { $expVal["computeResource"] = CRUtilities::get_compute_resource($scheduling->resourceHostId); } catch (Exception $ex) { //Error while retrieving CR $expVal["computeResource"] = ""; } } $expVal["applicationInterface"] = AppUtilities::get_application_interface($experiment->executionId); switch ($experimentStatusString) { case 'CREATED': case 'VALIDATED': case 'SCHEDULED': case 'FAILED': $expVal["editable"] = true; break; default: $expVal["editable"] = false; break; } switch ($experimentStatusString) { case 'CREATED': case 'VALIDATED': case 'SCHEDULED': case 'LAUNCHED': case 'EXECUTING': $expVal["cancelable"] = true; break; default: $expVal["cancelable"] = false; break; } return $expVal; }