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..fe0f6cf2288e173e08120e53f67ded0d973c5ba1 100644 |
| --- a/scheduler/appengine/apiservers/scheduler.go |
| +++ b/scheduler/appengine/apiservers/scheduler.go |
| @@ -9,6 +9,9 @@ import ( |
| "github.com/luci/luci-go/scheduler/appengine/catalog" |
| "github.com/luci/luci-go/scheduler/appengine/engine" |
| ) |
| +import ( |
| + context "golang.org/x/net/context" |
|
Vadim Sh.
2017/06/19 17:44:19
move this import to existing imports section, befo
tandrii(chromium)
2017/06/20 11:48:05
Done.
TBH, i learned to ignore import sections in
|
| +) |
| // SchedulerServer implements scheduler.Scheduler API. |
| type SchedulerServer struct { |
| @@ -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, err |
|
Vadim Sh.
2017/06/19 17:44:19
gRPC methods should always return grpc errors, e.g
tandrii(chromium)
2017/06/20 11:48:05
Done.
|
| + } |
| + |
| + jobs := make([]*scheduler.JobWithState, len(ejobs)) |
| + for i, ej := range ejobs { |
| + jobs[i] = &scheduler.JobWithState{ |
| + Id: ej.JobID, |
| + Project: ej.ProjectID, |
| + Schedule: ej.Schedule, |
| + State: &scheduler.JobState{ |
| + Kind: string(ej.State.State), |
| + }, |
| + } |
| + } |
| + return &scheduler.JobsReply{Jobs: jobs}, nil |
| +} |