| OLD | NEW |
| 1 // Copyright 2016 The LUCI Authors. | 1 // Copyright 2016 The LUCI Authors. |
| 2 // | 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
| 6 // | 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // | 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 State: &scheduler.JobState{ | 67 State: &scheduler.JobState{ |
| 68 UiStatus: string(presentation.GetPublicStateKind
(ej, traits)), | 68 UiStatus: string(presentation.GetPublicStateKind
(ej, traits)), |
| 69 }, | 69 }, |
| 70 Paused: ej.Paused, | 70 Paused: ej.Paused, |
| 71 } | 71 } |
| 72 } | 72 } |
| 73 return &scheduler.JobsReply{Jobs: jobs, NextCursor: ""}, nil | 73 return &scheduler.JobsReply{Jobs: jobs, NextCursor: ""}, nil |
| 74 } | 74 } |
| 75 | 75 |
| 76 func (s SchedulerServer) GetInvocations(ctx context.Context, in *scheduler.Invoc
ationsRequest) (*scheduler.InvocationsReply, error) { | 76 func (s SchedulerServer) GetInvocations(ctx context.Context, in *scheduler.Invoc
ationsRequest) (*scheduler.InvocationsReply, error) { |
| 77 ejob, err := s.Engine.GetVisibleJob(ctx, getJobId(in.GetJobRef())) | |
| 78 if err != nil { | |
| 79 return nil, grpc.Errorf(codes.Internal, "internal error: %s", er
r) | |
| 80 } | |
| 81 if ejob == nil { | |
| 82 return nil, grpc.Errorf(codes.NotFound, "Job does not exist or y
ou have no access") | |
| 83 } | |
| 84 | |
| 85 pageSize := 50 | 77 pageSize := 50 |
| 86 if in.PageSize > 0 && int(in.PageSize) < pageSize { | 78 if in.PageSize > 0 && int(in.PageSize) < pageSize { |
| 87 pageSize = int(in.PageSize) | 79 pageSize = int(in.PageSize) |
| 88 } | 80 } |
| 89 | 81 |
| 90 » einvs, cursor, err := s.Engine.ListVisibleInvocations(ctx, ejob.JobID, p
ageSize, in.GetCursor()) | 82 » einvs, cursor, err := s.Engine.ListVisibleInvocations(ctx, getJobId(in.G
etJobRef()), pageSize, in.GetCursor()) |
| 91 » if err != nil { | 83 » switch { |
| 84 » case err == engine.ErrNoSuchJob: |
| 85 » » return nil, grpc.Errorf(codes.NotFound, "Job does not exist or n
o access") |
| 86 » case err != nil: |
| 92 return nil, grpc.Errorf(codes.Internal, "internal error: %s", er
r) | 87 return nil, grpc.Errorf(codes.Internal, "internal error: %s", er
r) |
| 93 } | 88 } |
| 94 invs := make([]*scheduler.Invocation, len(einvs)) | 89 invs := make([]*scheduler.Invocation, len(einvs)) |
| 95 for i, einv := range einvs { | 90 for i, einv := range einvs { |
| 96 invs[i] = &scheduler.Invocation{ | 91 invs[i] = &scheduler.Invocation{ |
| 97 InvocationRef: &scheduler.InvocationRef{ | 92 InvocationRef: &scheduler.InvocationRef{ |
| 98 JobRef: &scheduler.JobRef{ | 93 JobRef: &scheduler.JobRef{ |
| 99 » » » » » Project: ejob.ProjectID, | 94 » » » » » Project: in.GetJobRef().GetProject(), |
| 100 » » » » » Job: ejob.GetJobName(), | 95 » » » » » Job: in.GetJobRef().GetJob(), |
| 101 }, | 96 }, |
| 102 InvocationId: einv.ID, | 97 InvocationId: einv.ID, |
| 103 }, | 98 }, |
| 104 StartedTs: einv.Started.UnixNano() / 1000, | 99 StartedTs: einv.Started.UnixNano() / 1000, |
| 105 TriggeredBy: string(einv.TriggeredBy), | 100 TriggeredBy: string(einv.TriggeredBy), |
| 106 Status: string(einv.Status), | 101 Status: string(einv.Status), |
| 107 Final: einv.Status.Final(), | 102 Final: einv.Status.Final(), |
| 108 ConfigRevision: einv.Revision, | 103 ConfigRevision: einv.Revision, |
| 109 ViewUrl: einv.ViewURL, | 104 ViewUrl: einv.ViewURL, |
| 110 } | 105 } |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 case err == engine.ErrNoSuchInvocation: | 150 case err == engine.ErrNoSuchInvocation: |
| 156 return nil, grpc.Errorf(codes.NotFound, "no such invocation") | 151 return nil, grpc.Errorf(codes.NotFound, "no such invocation") |
| 157 default: | 152 default: |
| 158 return nil, grpc.Errorf(codes.Internal, "internal error: %s", er
r) | 153 return nil, grpc.Errorf(codes.Internal, "internal error: %s", er
r) |
| 159 } | 154 } |
| 160 } | 155 } |
| 161 | 156 |
| 162 func getJobId(jobRef *scheduler.JobRef) string { | 157 func getJobId(jobRef *scheduler.JobRef) string { |
| 163 return jobRef.GetProject() + "/" + jobRef.GetJob() | 158 return jobRef.GetProject() + "/" + jobRef.GetJob() |
| 164 } | 159 } |
| OLD | NEW |