You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2019/06/27 22:50:23 UTC
[airavata-php-gateway] 02/02: AIRAVATA-3089 Use last status in
array since it is the most recent one
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch staging
in repository https://gitbox.apache.org/repos/asf/airavata-php-gateway.git
commit ea03e19640d44a6613f8e312ee6ee17e62af01d2
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Thu Jun 27 18:47:49 2019 -0400
AIRAVATA-3089 Use last status in array since it is the most recent one
---
app/controllers/ExperimentController.php | 2 +-
app/libraries/ExperimentUtilities.php | 10 +++++++---
app/views/experiment/summary.blade.php | 6 +++---
app/views/partials/experiment-info.blade.php | 16 ++++++++--------
4 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/app/controllers/ExperimentController.php b/app/controllers/ExperimentController.php
index f754213..c44aef6 100755
--- a/app/controllers/ExperimentController.php
+++ b/app/controllers/ExperimentController.php
@@ -176,7 +176,7 @@ class ExperimentController extends BaseController
// var_dump( $jobDetails); exit;
foreach( $jobDetails as $index => $jobDetail){
if(isset($jobDetail->jobStatuses) and !empty($jobDetail->jobStatuses)){
- $jobDetails[ $index]->jobStatuses[0]->jobStateName = JobState::$__names[$jobDetail->jobStatuses[0]->jobState];
+ ExperimentUtilities::latestStatus($jobDetails[$index]->jobStatuses)->jobStateName = JobState::$__names[ExperimentUtilities::latestStatus($jobDetail->jobStatuses)->jobState];
}
else{
$jobDetails[ $index]->jobStatuses = [new stdClass()];
diff --git a/app/libraries/ExperimentUtilities.php b/app/libraries/ExperimentUtilities.php
index 16612fd..b150de4 100755
--- a/app/libraries/ExperimentUtilities.php
+++ b/app/libraries/ExperimentUtilities.php
@@ -1112,7 +1112,7 @@ class ExperimentUtilities
if( is_array( $experiment->experimentStatus ) )
- $experimentStatusString = $expVal["experimentStates"][$experiment->experimentStatus[0]->state];
+ $experimentStatusString = $expVal["experimentStates"][ExperimentUtilities::latestStatus($experiment->experimentStatus)->state];
else {
$experimentStatusString = $experiment->experimentStatus;
}
@@ -1122,7 +1122,7 @@ class ExperimentUtilities
$experimentStatus = $experiment->experimentStatus;
if( is_array( $experiment->experimentStatus ) )
- $expVal["experimentTimeOfStateChange"] = $experimentStatus[0]->timeOfStateChange / 1000; // divide by 1000 since timeOfStateChange is in ms
+ $expVal["experimentTimeOfStateChange"] = ExperimentUtilities::latestStatus($experimentStatus)->timeOfStateChange / 1000; // divide by 1000 since timeOfStateChange is in ms
$expVal["experimentCreationTime"] = $experiment->creationTime / 1000; // divide by 1000 since creationTime is in ms
}
@@ -1193,7 +1193,7 @@ class ExperimentUtilities
}
}*/
if (isset($jobStatus) && count($jobStatus) > 0) {
- $jobState = JobState::$__names[array_values($jobStatus)[0]->jobState];
+ $jobState = JobState::$__names[ExperimentUtilities::latestStatus(array_values($jobStatus))->jobState];
} else {
$jobState = null;
}
@@ -1521,6 +1521,10 @@ class ExperimentUtilities
ExperimentUtilities::share_experiment($expId, $users);
}
+ public static function latestStatus($statusArray) {
+ return $statusArray ? $statusArray[count($statusArray) - 1] : null;
+ }
+
/**
* Set sharing privileges for a given experiment.
* @param $expId
diff --git a/app/views/experiment/summary.blade.php b/app/views/experiment/summary.blade.php
index 647d26c..8214d3a 100755
--- a/app/views/experiment/summary.blade.php
+++ b/app/views/experiment/summary.blade.php
@@ -25,7 +25,7 @@
var currentJobStatuses = {};
@foreach( $expVal["jobDetails"] as $index => $jobDetail)
- currentJobStatuses["{{$jobDetail->jobId}}"] = "{{ $jobDetail->jobStatuses[0]->jobStateName}}";
+ currentJobStatuses["{{$jobDetail->jobId}}"] = "{{ ExperimentUtilities::latestStatus($jobDetail->jobStatuses)->jobStateName}}";
@endforeach
var isStatusChanged = function(experimentTimeOfStateChange, jobStatuses) {
@@ -68,8 +68,8 @@
for (var jobIndex in jobDetails){
if (jobDetails.hasOwnProperty(jobIndex)) {
var jobDetail = jobDetails[jobIndex];
- // Assuming only one job status per job
- jobStatuses[jobDetail["jobId"]] = jobDetail["jobStatuses"]["0"]["jobStateName"];
+ // last status is the most recent one
+ jobStatuses[jobDetail["jobId"]] = jobDetail["jobStatuses"][jobDetail["jobStatuses"].length - 1]["jobStateName"];
}
}
diff --git a/app/views/partials/experiment-info.blade.php b/app/views/partials/experiment-info.blade.php
index e174900..93768dd 100644
--- a/app/views/partials/experiment-info.blade.php
+++ b/app/views/partials/experiment-info.blade.php
@@ -105,7 +105,7 @@
<tr>
<td>{{$jobDetail->jobName}}</td>
<td>{{ $jobDetail->jobId}}</td>
- <td>{{$jobDetail->jobStatuses[0]->jobStateName }}</td>
+ <td>{{ ExperimentUtilities::latestStatus($jobDetail->jobStatuses)->jobStateName }}</td>
<td class="time" unix-time="{{$jobDetail->creationTime}}"></td>
</tr>
</table>
@@ -184,7 +184,7 @@
</tr>
<tr>
<td><strong>Outputs</strong></td>
- <td>{{ ExperimentUtilities::list_output_files($experiment->experimentOutputs, $experiment->experimentStatus[0]->state, false) }}</td>
+ <td>{{ ExperimentUtilities::list_output_files($experiment->experimentOutputs, ExperimentUtilities::latestStatus($experiment->experimentStatus)->state, false) }}</td>
</tr>
<tr>
<td><strong>Storage Directory</strong></td>
@@ -211,8 +211,8 @@
</tr>
{{--@endif--}}
@foreach( $expVal["jobDetails"] as $index => $jobDetail)
- @if($experiment->experimentStatus[0]->state == \Airavata\Model\Status\ExperimentState::FAILED
- || $jobDetail->jobStatuses[0]->jobStateName == "FAILED")
+ @if(ExperimentUtilities::latestStatus($experiment->experimentStatus)->state == \Airavata\Model\Status\ExperimentState::FAILED
+ || ExperimentUtilities::latestStatus($jobDetail->jobStatuses)->jobStateName == "FAILED")
<tr>
<th>Job Submission Response</th>
<td>{{$jobDetail->stdOut . $jobDetail->stdErr}}</td>
@@ -352,9 +352,9 @@
<dl class="well dl-horizontal">
<dt>Task Id : </dt> <dd>{{ $task->taskId }}</dd>
<dt>Task Type : </dt> <dd>{{ $expVal["taskTypes"][$task->taskType] }}</dd>
- <dt>Task Status : </dt> <dd>{{ $expVal["taskStates"][$task->taskStatuses[0]->state] }}</dd>
- <dt>Task Status Time : </dt> <dd class="time" unix-time="{{{ $task->taskStatuses[0]->timeOfStateChange}}}"></dd>
- <dt>Task Status Reason : </dt> <dd>{{{ $task->taskStatuses[0]->reason }}}</dd>
+ <dt>Task Status : </dt> <dd>{{ $expVal["taskStates"][ExperimentUtilities::latestStatus($task->taskStatuses)->state] }}</dd>
+ <dt>Task Status Time : </dt> <dd class="time" unix-time="{{{ ExperimentUtilities::latestStatus($task->taskStatuses)->timeOfStateChange}}}"></dd>
+ <dt>Task Status Reason : </dt> <dd>{{{ ExperimentUtilities::latestStatus($task->taskStatuses)->reason }}}</dd>
@if( is_object( $task->taskErrors))
<dt>Task Error Id : </dt><dd>{{ $task->taskErrors[0]->errorId }}</dd>
<dt>Task Error Msg : </dt><dd>{{ $task->taskErrors[0]->userFriendlyMessage }} <a tabindex="0" class="popover-taskinfo btn btn-sm btn-default" role="button" data-toggle="popover" data-html="true" title="Detailed Task Information" data-content="{{ str_replace( ',', '<br/><br/>', $task->taskError->actualErrorMessage ) }}">More Info</a></dd>
@@ -376,7 +376,7 @@
<li>
<span class="alert"><i class="icon-time"></i>
<p>Outputs<hr/>
- {{ ExperimentUtilities::list_process_output_files( $process->processOutputs, $process->processStatuses[0]->state) }}</p>
+ {{ ExperimentUtilities::list_process_output_files( $process->processOutputs, ExperimentUtilities::latestStatus($process->processStatuses)->state) }}</p>
</span>
</li>
</ul>