diff --git a/src/MGRAST/lib/resources/resource.pm b/src/MGRAST/lib/resources/resource.pm index 507f13a2..92646264 100644 --- a/src/MGRAST/lib/resources/resource.pm +++ b/src/MGRAST/lib/resources/resource.pm @@ -1220,10 +1220,12 @@ sub get_task_report { my $rfile = "awe_".$type.".txt"; # check shock if missing - if ((! $rtext) && exists($task->{outputs}) && exists($task->{outputs}{$rfile})) { - my $rnode = $task->{outputs}{$rfile}{node}; - if ($rnode && ($rnode ne "-")) { - ($rtext, undef) = $self->get_shock_file($rnode, undef, $auth, undef, $authPrefix); + if ((! $rtext) && exists($task->{outputs})) { + foreach my $out (@{$task->{outputs}}) { + if (($out->{filename} eq $rfile) && $out->{node} && ($out->{node} ne "-")) { + ($rtext, undef) = $self->get_shock_file($out->{node}, undef, $auth, undef, $authPrefix); + last; + } } } return $rtext || ""; diff --git a/src/MGRAST/lib/resources/submission.pm b/src/MGRAST/lib/resources/submission.pm index 69255fc1..4b97223e 100644 --- a/src/MGRAST/lib/resources/submission.pm +++ b/src/MGRAST/lib/resources/submission.pm @@ -303,7 +303,7 @@ sub status { foreach my $task (@{$submit->{tasks}}) { my $summery = { stage => $task->{cmd}{description}, - inputs => [ keys %{$task->{inputs}} ], + inputs => [ map { $_->{filename} } @{$task->{inputs}} ], status => $task->{state} }; if ($task->{state} eq 'suspend') { @@ -757,10 +757,13 @@ sub submission_jobs { sub get_param_node { my ($self, $job) = @_; if ($job->{tasks} && (@{$job->{tasks}} > 0)) { - return $job->{tasks}[-1]{inputs}{$self->{param_file}}{node}; - } else { - return undef; + foreach my $out (@{$job->{tasks}[-1]{inputs}}) { + if ($out->{filename} eq $self->{param_file}) { + return $out->{node}; + } + } } + return undef; } sub parse_submit_output {