Chromium Code Reviews| Index: scheduler/appengine/apiservers/scheduler.go |
| diff --git a/scheduler/appengine/apiservers/scheduler.go b/scheduler/appengine/apiservers/scheduler.go |
| index 114d7cf115f825909c66d9d3fa8f6f5ab756d69a..77c075568641eb47d7cbff10be9c48f452992024 100644 |
| --- a/scheduler/appengine/apiservers/scheduler.go |
| +++ b/scheduler/appengine/apiservers/scheduler.go |
| @@ -8,6 +8,9 @@ import ( |
| "github.com/luci/luci-go/scheduler/api/scheduler/v1" |
| "github.com/luci/luci-go/scheduler/appengine/catalog" |
| "github.com/luci/luci-go/scheduler/appengine/engine" |
| + "golang.org/x/net/context" |
| + "google.golang.org/grpc" |
| + "google.golang.org/grpc/codes" |
| ) |
| // SchedulerServer implements scheduler.Scheduler API. |
| @@ -17,3 +20,30 @@ type SchedulerServer struct { |
| } |
| var _ scheduler.SchedulerServer = (*SchedulerServer)(nil) |
| + |
| +// GetJobs fetches all jobs satisfying JobsRequest and visibility ACLs. |
| +func (s SchedulerServer) GetJobs(ctx context.Context, in *scheduler.JobsRequest) (*scheduler.JobsReply, error) { |
| + var ejobs []*engine.Job |
| + var err error |
| + if in.GetProject() == "" { |
| + ejobs, err = s.Engine.GetAllJobs(ctx) |
| + } else { |
| + ejobs, err = s.Engine.GetProjectJobs(ctx, in.GetProject()) |
| + } |
| + if err != nil { |
| + return nil, grpc.Errorf(codes.Internal, "datastore error: %s", err) |
| + } |
| + |
| + jobs := make([]*scheduler.Job, len(ejobs)) |
| + for i, ej := range ejobs { |
| + jobs[i] = &scheduler.Job{ |
| + Id: ej.JobID, |
| + Project: ej.ProjectID, |
| + Schedule: ej.Schedule, |
| + State: &scheduler.JobState{ |
| + UiStatus: string(ej.State.State), |
|
tandrii(chromium)
2017/06/20 13:41:02
hold on, I didn't actually make this use UI-friend
|
| + }, |
| + } |
| + } |
| + return &scheduler.JobsReply{Jobs: jobs}, nil |
| +} |