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

Side by Side Diff: go/src/infra/gae/libs/wrapper/globalinfo.go

Issue 1230303003: Revert "Refactor current GAE abstraction library to be free of the SDK*" (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 5 years, 5 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package gae 5 package wrapper
6 6
7 import ( 7 import (
8 "time" 8 "time"
9 9
10 "appengine"
11
10 "golang.org/x/net/context" 12 "golang.org/x/net/context"
11 ) 13 )
12 14
13 // GlobalInfo is the interface for all of the package methods which normally 15 // GlobalInfo is the interface for all of the package methods which normally
14 // would be in the 'appengine' package. 16 // would be in the 'appengine' package.
15 type GlobalInfo interface { 17 type GlobalInfo interface {
18 // methods usually requiring a Context
19
20 AccessToken(scopes ...string) (token string, expiry time.Time, err error )
16 AppID() string 21 AppID() string
22 DefaultVersionHostname() string
23 ModuleHostname(module, version, instance string) (string, error)
24 ModuleName() string
25 PublicCertificates() ([]appengine.Certificate, error)
26 RequestID() string
27 ServiceAccount() (string, error)
28 SignBytes(bytes []byte) (keyName string, signature []byte, err error)
29 VersionID() string
30
31 // our tweaked interface
32
33 // Namespace takes the new namespace as a string, and returns a context
34 // set to use that namespace, or an error.
35 // The appengine SDK doesn't document what errors you can see from this
36 // method, or under what circumstances they might occur.
37 Namespace(namespace string) (context.Context, error)
38
39 // Really global functions... these don't normally even require context, but
40 // for the purposes of testing+consistency, they're included here.
41
17 Datacenter() string 42 Datacenter() string
18 DefaultVersionHostname() string
19 InstanceID() string 43 InstanceID() string
20 » IsDevAppServer() bool 44 » IsDevAppserver() bool
45 » ServerSoftware() string
46
47 » IsCapabilityDisabled(err error) bool
21 IsOverQuota(err error) bool 48 IsOverQuota(err error) bool
22 IsTimeoutError(err error) bool 49 IsTimeoutError(err error) bool
23 ModuleHostname(module, version, instance string) (string, error)
24 ModuleName() string
25 RequestID() string
26 ServerSoftware() string
27 ServiceAccount() (string, error)
28 VersionID() string
29 50
30 » Namespace(namespace string) (context.Context, error) 51 » // Backends are deprecated in favor of modules, so simplify this a bit b y
31 52 » // omitting them from the interface.
32 » AccessToken(scopes ...string) (token string, expiry time.Time, err error ) 53 » // BackendHostname(name string, index int) string
33 » PublicCertificates() ([]GICertificate, error) 54 » // BackendInstance() (name string, index int)
34 » SignBytes(bytes []byte) (keyName string, signature []byte, err error)
35 } 55 }
36 56
37 // GIFactory is the function signature for factory methods compatible with 57 // GIFactory is the function signature for factory methods compatible with
38 // SetGIFactory. 58 // SetGIFactory.
39 type GIFactory func(context.Context) GlobalInfo 59 type GIFactory func(context.Context) GlobalInfo
40 60
41 // GetGI gets gets the GlobalInfo implementation from context. 61 // GetGI gets gets the GlobalInfo implementation from context.
42 func GetGI(c context.Context) GlobalInfo { 62 func GetGI(c context.Context) GlobalInfo {
43 if f, ok := c.Value(globalInfoKey).(GIFactory); ok && f != nil { 63 if f, ok := c.Value(globalInfoKey).(GIFactory); ok && f != nil {
44 return f(c) 64 return f(c)
45 } 65 }
46 return nil 66 return nil
47 } 67 }
48 68
49 // SetGIFactory sets the function to produce GlobalInfo instances, as returned 69 // SetGIFactory sets the function to produce GlobalInfo instances, as returned
50 // by the GetGI method. 70 // by the GetGI method.
51 func SetGIFactory(c context.Context, gif GIFactory) context.Context { 71 func SetGIFactory(c context.Context, gif GIFactory) context.Context {
52 return context.WithValue(c, globalInfoKey, gif) 72 return context.WithValue(c, globalInfoKey, gif)
53 } 73 }
54 74
55 // SetGI sets the current GlobalInfo object in the context. Useful for testing 75 // SetGI sets the current GlobalInfo object in the context. Useful for testing
56 // with a quick mock. This is just a shorthand SetGIFactory invocation to set 76 // with a quick mock. This is just a shorthand SetGIFactory invocation to set
57 // a factory which always returns the same object. 77 // a factory which always returns the same object.
58 func SetGI(c context.Context, gi GlobalInfo) context.Context { 78 func SetGI(c context.Context, gi GlobalInfo) context.Context {
59 return SetGIFactory(c, func(context.Context) GlobalInfo { return gi }) 79 return SetGIFactory(c, func(context.Context) GlobalInfo { return gi })
60 } 80 }
OLDNEW
« no previous file with comments | « go/src/infra/gae/libs/wrapper/gae/taskqueue.go ('k') | go/src/infra/gae/libs/wrapper/mathrand.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698