[Bio] / FigKernelPackages / RAST_submission.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/RAST_submission.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1, Mon Oct 19 20:12:18 2009 UTC revision 1.2, Tue Oct 20 20:43:30 2009 UTC
# Line 35  Line 35 
35  {  {
36      my($self, $params) = @_;      my($self, $params) = @_;
37    
38      my $job_num = $params->{-job};      my @job_nums;
39      if ($job_num !~ /^\d+/)      my $job_num_param = $params->{-job};
40        if (ref($job_num_param) eq 'ARRAY')
41      {      {
42          die "Invalid job identifier\n";          @job_nums = @$job_num_param;
43        }
44        else
45        {
46            @job_nums = ($job_num_param);
47        }
48    
49        my $res = {};
50        for my $job_num (@job_nums)
51        {
52            my $job = $self->rast_dbmaster->Job->init({ id => $job_num });
53            if (!ref($job))
54            {
55                $res->{$job_num} = { status => 'error', error_msg => 'Job not found'};
56                next;
57            }
58    
59            if (!$self->user_may_access_job($job))
60            {
61                $res->{$job_num} = { status => 'error', error_msg => 'Access denied' };
62                next;
63            }
64    
65            my $dir = $job->dir;
66            if (open(E, "<$dir/ERROR"))
67            {
68                local $/;
69                undef $/;
70                my $emsg = <E>;
71                close(E);
72                $res->{job_num} = { status => 'error', error_msg => $emsg };
73                next;
74      }      }
75    
76      my @status = Job48->get_status_of_job($job_num, $self->user_obj);          #
77      print STDERR "Getting status of $job_num: @status\n";          # Retrieve status flags from the meta file (not the database,
78            # so that we can get the very latest state).
79            #
80    
81            #
82            # For now we only check status.export because that is what the
83            # bulk API cares about.
84            #
85    
86            my $status_list = [];
87            my $cur_stage;
88            my $stages = $job->stages();
89            my %status;
90            for my $stage (@$stages)
91            {
92                my $status = $job->metaxml->get_metadata($stage) || 'not_started';
93                $status{$stage} = $status;
94                push(@$status_list, [$stage => $status]);
95                if ($status ne 'complete')
96                {
97                    $cur_stage = $stage;
98                }
99            }
100    
101            $res->{$job_num} = { status => $status{'status.export'}, verbose_status => $status_list };
102        }
103        return $res;
104    }
105    
106    sub user_may_access_job
107    {
108        my($self, $job_id) = @_;
109    
110      return \@status;      return 1;
111  }  }
112    
113    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3