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

Side by Side Diff: filter/featureBreaker/mod.go

Issue 2302743002: Interface update, per-method Contexts. (Closed)
Patch Set: Lightning talk licenses. Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « filter/featureBreaker/mail.go ('k') | filter/featureBreaker/rds.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The LUCI Authors. All rights reserved. 1 // Copyright 2016 The LUCI Authors. All rights reserved.
2 // Use of this source code is governed under the Apache License, Version 2.0 2 // Use of this source code is governed under the Apache License, Version 2.0
3 // that can be found in the LICENSE file. 3 // that can be found in the LICENSE file.
4 4
5 package featureBreaker 5 package featureBreaker
6 6
7 import ( 7 import (
8 "golang.org/x/net/context" 8 "golang.org/x/net/context"
9 9
10 "github.com/luci/gae/service/module" 10 "github.com/luci/gae/service/module"
11 ) 11 )
12 12
13 type modState struct { 13 type modState struct {
14 *state 14 *state
15 15
16 » module.Interface 16 » module.RawInterface
17 } 17 }
18 18
19 func (m *modState) List() (ret []string, err error) { 19 func (m *modState) List() (ret []string, err error) {
20 err = m.run(func() (err error) { 20 err = m.run(func() (err error) {
21 » » ret, err = m.Interface.List() 21 » » ret, err = m.RawInterface.List()
22 return 22 return
23 }) 23 })
24 return 24 return
25 } 25 }
26 26
27 func (m *modState) NumInstances(mod, ver string) (ret int, err error) { 27 func (m *modState) NumInstances(mod, ver string) (ret int, err error) {
28 err = m.run(func() (err error) { 28 err = m.run(func() (err error) {
29 » » ret, err = m.Interface.NumInstances(mod, ver) 29 » » ret, err = m.RawInterface.NumInstances(mod, ver)
30 return 30 return
31 }) 31 })
32 return 32 return
33 } 33 }
34 34
35 func (m *modState) SetNumInstances(mod, ver string, instances int) error { 35 func (m *modState) SetNumInstances(mod, ver string, instances int) error {
36 return m.run(func() (err error) { 36 return m.run(func() (err error) {
37 » » return m.Interface.SetNumInstances(mod, ver, instances) 37 » » return m.RawInterface.SetNumInstances(mod, ver, instances)
38 }) 38 })
39 } 39 }
40 40
41 func (m *modState) Versions(mod string) (ret []string, err error) { 41 func (m *modState) Versions(mod string) (ret []string, err error) {
42 err = m.run(func() (err error) { 42 err = m.run(func() (err error) {
43 » » ret, err = m.Interface.Versions(mod) 43 » » ret, err = m.RawInterface.Versions(mod)
44 return 44 return
45 }) 45 })
46 return 46 return
47 } 47 }
48 48
49 func (m *modState) DefaultVersion(mod string) (ret string, err error) { 49 func (m *modState) DefaultVersion(mod string) (ret string, err error) {
50 err = m.run(func() (err error) { 50 err = m.run(func() (err error) {
51 » » ret, err = m.Interface.DefaultVersion(mod) 51 » » ret, err = m.RawInterface.DefaultVersion(mod)
52 return 52 return
53 }) 53 })
54 return 54 return
55 } 55 }
56 56
57 func (m *modState) Start(mod, ver string) error { 57 func (m *modState) Start(mod, ver string) error {
58 return m.run(func() (err error) { 58 return m.run(func() (err error) {
59 » » return m.Interface.Start(mod, ver) 59 » » return m.RawInterface.Start(mod, ver)
60 }) 60 })
61 } 61 }
62 62
63 func (m *modState) Stop(mod, ver string) error { 63 func (m *modState) Stop(mod, ver string) error {
64 return m.run(func() (err error) { 64 return m.run(func() (err error) {
65 » » return m.Interface.Stop(mod, ver) 65 » » return m.RawInterface.Stop(mod, ver)
66 }) 66 })
67 } 67 }
68 68
69 // FilterModule installs a featureBreaker module filter in the context. 69 // FilterModule installs a featureBreaker module filter in the context.
70 func FilterModule(c context.Context, defaultError error) (context.Context, Featu reBreaker) { 70 func FilterModule(c context.Context, defaultError error) (context.Context, Featu reBreaker) {
71 state := newState(defaultError) 71 state := newState(defaultError)
72 » return module.AddFilters(c, func(ic context.Context, i module.Interface) module.Interface { 72 » return module.AddFilters(c, func(ic context.Context, i module.RawInterfa ce) module.RawInterface {
73 return &modState{state, i} 73 return &modState{state, i}
74 }), state 74 }), state
75 } 75 }
OLDNEW
« no previous file with comments | « filter/featureBreaker/mail.go ('k') | filter/featureBreaker/rds.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698