Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(388)

Unified Diff: scheduler/appengine/apiservers/scheduler.go

Issue 2945843002: scheduler WIP: add GetAllJobs api. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
+}

Powered by Google App Engine
This is Rietveld 408576698