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

Unified Diff: filter/featureBreaker/mod.go

Issue 1772943003: Add wrappers for the module module (Closed) Base URL: https://github.com/luci/gae.git@master
Patch Set: CL comments Created 4 years, 9 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 | « filter/featureBreaker/mc.go ('k') | filter/featureBreaker/rds.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: filter/featureBreaker/mod.go
diff --git a/filter/featureBreaker/mod.go b/filter/featureBreaker/mod.go
new file mode 100644
index 0000000000000000000000000000000000000000..57350bf0fc12b0a967efaee157b4a638db16f552
--- /dev/null
+++ b/filter/featureBreaker/mod.go
@@ -0,0 +1,75 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package featureBreaker
+
+import (
+ "golang.org/x/net/context"
+
+ "github.com/luci/gae/service/module"
+)
+
+type modState struct {
+ *state
+
+ module.Interface
+}
+
+func (m *modState) List() (ret []string, err error) {
+ err = m.run(func() (err error) {
+ ret, err = m.Interface.List()
+ return
+ })
+ return
+}
+
+func (m *modState) NumInstances(mod, ver string) (ret int, err error) {
+ err = m.run(func() (err error) {
+ ret, err = m.Interface.NumInstances(mod, ver)
+ return
+ })
+ return
+}
+
+func (m *modState) SetNumInstances(mod, ver string, instances int) error {
+ return m.run(func() (err error) {
+ return m.Interface.SetNumInstances(mod, ver, instances)
+ })
+}
+
+func (m *modState) Versions(mod string) (ret []string, err error) {
+ err = m.run(func() (err error) {
+ ret, err = m.Interface.Versions(mod)
+ return
+ })
+ return
+}
+
+func (m *modState) DefaultVersion(mod string) (ret string, err error) {
+ err = m.run(func() (err error) {
+ ret, err = m.Interface.DefaultVersion(mod)
+ return
+ })
+ return
+}
+
+func (m *modState) Start(mod, ver string) error {
+ return m.run(func() (err error) {
+ return m.Interface.Start(mod, ver)
+ })
+}
+
+func (m *modState) Stop(mod, ver string) error {
+ return m.run(func() (err error) {
+ return m.Interface.Stop(mod, ver)
+ })
+}
+
+// FilterModule installs a featureBreaker module filter in the context.
+func FilterModule(c context.Context, defaultError error) (context.Context, FeatureBreaker) {
+ state := newState(defaultError)
+ return module.AddFilters(c, func(ic context.Context, i module.Interface) module.Interface {
+ return &modState{state, i}
+ }), state
+}
« no previous file with comments | « filter/featureBreaker/mc.go ('k') | filter/featureBreaker/rds.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698