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

Unified Diff: go/src/infra/crimson/proto/crimsonserver_dec.go

Issue 2219193002: Roll luci/luci-go and luci/gae DEPS. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 4 years, 4 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
« no previous file with comments | « go/src/infra/appengine/sheriff-o-matic/main.go ('k') | go/src/infra/crimson/proto/pb.discovery.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: go/src/infra/crimson/proto/crimsonserver_dec.go
diff --git a/go/src/infra/crimson/proto/crimsonserver_dec.go b/go/src/infra/crimson/proto/crimsonserver_dec.go
index b2d6d64108117ef39dd6479ab55130c60da0618e..ebe80db1193bab1b8d1292fa7f73f64673c4276c 100644
--- a/go/src/infra/crimson/proto/crimsonserver_dec.go
+++ b/go/src/infra/crimson/proto/crimsonserver_dec.go
@@ -10,55 +10,92 @@ import (
type DecoratedCrimson struct {
// Service is the service to decorate.
Service CrimsonServer
- // Prelude is called in each method before forwarding the call to Service.
- // If Prelude returns an error, it is returned without forwarding the call.
+ // Prelude is called for each method before forwarding the call to Service.
+ // If Prelude returns an error, it the call is skipped and the error is
+ // processed via the Postlude (if one is defined), or it is returned directly.
Prelude func(c context.Context, methodName string, req proto.Message) (context.Context, error)
+ // Postlude is called for each method after Service has processed the call, or
+ // after the Prelude has returned an error. This takes the the Service's
+ // response proto (which may be nil) and/or any error. The decorated
+ // service will return the response (possibly mutated) and error that Postlude
+ // returns.
+ Postlude func(c context.Context, methodName string, rsp proto.Message, err error) error
}
-func (s *DecoratedCrimson) CreateIPRange(c context.Context, req *IPRange) (*IPRangeStatus, error) {
- c, err := s.Prelude(c, "CreateIPRange", req)
- if err != nil {
- return nil, err
+func (s *DecoratedCrimson) CreateIPRange(c context.Context, req *IPRange) (rsp *IPRangeStatus, err error) {
+ if s.Prelude != nil {
+ c, err = s.Prelude(c, "CreateIPRange", req)
}
- return s.Service.CreateIPRange(c, req)
+ if err == nil {
+ rsp, err = s.Service.CreateIPRange(c, req)
+ }
+ if s.Postlude != nil {
+ err = s.Postlude(c, "CreateIPRange", rsp, err)
+ }
+ return
}
-func (s *DecoratedCrimson) ReadIPRange(c context.Context, req *IPRangeQuery) (*IPRanges, error) {
- c, err := s.Prelude(c, "ReadIPRange", req)
- if err != nil {
- return nil, err
+func (s *DecoratedCrimson) ReadIPRange(c context.Context, req *IPRangeQuery) (rsp *IPRanges, err error) {
+ if s.Prelude != nil {
+ c, err = s.Prelude(c, "ReadIPRange", req)
+ }
+ if err == nil {
+ rsp, err = s.Service.ReadIPRange(c, req)
}
- return s.Service.ReadIPRange(c, req)
+ if s.Postlude != nil {
+ err = s.Postlude(c, "ReadIPRange", rsp, err)
+ }
+ return
}
-func (s *DecoratedCrimson) DeleteIPRange(c context.Context, req *IPRangeDeleteList) (*IPRangeStatus, error) {
- c, err := s.Prelude(c, "DeleteIPRange", req)
- if err != nil {
- return nil, err
+func (s *DecoratedCrimson) DeleteIPRange(c context.Context, req *IPRangeDeleteList) (rsp *IPRangeStatus, err error) {
+ if s.Prelude != nil {
+ c, err = s.Prelude(c, "DeleteIPRange", req)
+ }
+ if err == nil {
+ rsp, err = s.Service.DeleteIPRange(c, req)
+ }
+ if s.Postlude != nil {
+ err = s.Postlude(c, "DeleteIPRange", rsp, err)
}
- return s.Service.DeleteIPRange(c, req)
+ return
}
-func (s *DecoratedCrimson) CreateHost(c context.Context, req *HostList) (*HostStatus, error) {
- c, err := s.Prelude(c, "CreateHost", req)
- if err != nil {
- return nil, err
+func (s *DecoratedCrimson) CreateHost(c context.Context, req *HostList) (rsp *HostStatus, err error) {
+ if s.Prelude != nil {
+ c, err = s.Prelude(c, "CreateHost", req)
}
- return s.Service.CreateHost(c, req)
+ if err == nil {
+ rsp, err = s.Service.CreateHost(c, req)
+ }
+ if s.Postlude != nil {
+ err = s.Postlude(c, "CreateHost", rsp, err)
+ }
+ return
}
-func (s *DecoratedCrimson) ReadHost(c context.Context, req *HostQuery) (*HostList, error) {
- c, err := s.Prelude(c, "ReadHost", req)
- if err != nil {
- return nil, err
+func (s *DecoratedCrimson) ReadHost(c context.Context, req *HostQuery) (rsp *HostList, err error) {
+ if s.Prelude != nil {
+ c, err = s.Prelude(c, "ReadHost", req)
+ }
+ if err == nil {
+ rsp, err = s.Service.ReadHost(c, req)
}
- return s.Service.ReadHost(c, req)
+ if s.Postlude != nil {
+ err = s.Postlude(c, "ReadHost", rsp, err)
+ }
+ return
}
-func (s *DecoratedCrimson) DeleteHost(c context.Context, req *HostDeleteList) (*HostStatus, error) {
- c, err := s.Prelude(c, "DeleteHost", req)
- if err != nil {
- return nil, err
+func (s *DecoratedCrimson) DeleteHost(c context.Context, req *HostDeleteList) (rsp *HostStatus, err error) {
+ if s.Prelude != nil {
+ c, err = s.Prelude(c, "DeleteHost", req)
+ }
+ if err == nil {
+ rsp, err = s.Service.DeleteHost(c, req)
+ }
+ if s.Postlude != nil {
+ err = s.Postlude(c, "DeleteHost", rsp, err)
}
- return s.Service.DeleteHost(c, req)
+ return
}
« no previous file with comments | « go/src/infra/appengine/sheriff-o-matic/main.go ('k') | go/src/infra/crimson/proto/pb.discovery.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698