Chromium Code Reviews| Index: service/info/interface.go |
| diff --git a/service/info/interface.go b/service/info/interface.go |
| index d35b9329b0268521237ef585a98a68e1cc1e0d5e..89c9c522f44a7e14d118b3af5abac06c838ccf7e 100644 |
| --- a/service/info/interface.go |
| +++ b/service/info/interface.go |
| @@ -5,6 +5,7 @@ |
| package info |
| import ( |
| + "strings" |
| "time" |
| "golang.org/x/net/context" |
| @@ -15,7 +16,7 @@ import ( |
| type RawInterface interface { |
| AppID() string |
| FullyQualifiedAppID() string |
| - GetNamespace() (string, bool) |
| + GetNamespace() string |
| Datacenter() string |
| DefaultVersionHostname() string |
| @@ -36,28 +37,9 @@ type RawInterface interface { |
| PublicCertificates() ([]Certificate, error) |
| SignBytes(bytes []byte) (keyName string, signature []byte, err error) |
| - // Testable returns this Interface's Testable interface. Testing will return |
| - // nil if testing is not supported in this implementation. |
| - Testable() Testable |
| -} |
| - |
| -// Interface is the interface for all of the package methods which normally |
| -// would be in the 'appengine' package. This version adds a couple helper |
| -// functions on top of the RawInterface. |
| -type Interface interface { |
|
dnj
2016/09/01 15:25:40
Gone.
|
| - RawInterface |
| - |
| - // TrimmedAppID gets the 'appid' portion of "foo.com:appid". This form can |
| - // occur if you use |
| - TrimmedAppID() string |
| - |
| - // MustNamespace is the same as Namespace, but will panic if there's an error. |
| - // Since an error can only occur if namespace doesn't match the a regex this |
| - // is valid to use if the namespace you're using is statically known, or known |
| - // to conform to the regex. The regex in question is: |
| - // |
| - // ^[0-9A-Za-z._-]{0,100}$ |
| - MustNamespace(namespace string) context.Context |
| + // Testable returns this RawInterface's Testing interface. Testing will |
| + // return nil if testing is not supported in this implementation. |
| + GetTestable() Testable |
| } |
| // Testable is an additional set of functions for testing instrumentation. |
| @@ -65,3 +47,130 @@ type Testable interface { |
| SetVersionID(string) context.Context |
| SetRequestID(string) context.Context |
| } |
| + |
|
dnj
2016/09/01 15:25:40
Top-level, transplant from wrapper.go.
|
| +// AppID returns the current App ID. |
| +func AppID(c context.Context) string { |
| + return Raw(c).AppID() |
| +} |
| + |
| +// TrimmedAppID gets the 'appid' portion of "foo.com:appid". This form can |
| +// occur if you use |
| +func TrimmedAppID(c context.Context) string { |
| + toks := strings.Split(AppID(c), ":") |
| + return toks[len(toks)-1] |
| +} |
| + |
| +// FullyQualifiedAppID returns the fully-qualified App ID. |
| +func FullyQualifiedAppID(c context.Context) string { |
| + return Raw(c).FullyQualifiedAppID() |
| +} |
| + |
| +// GetNamespace returns the current namespace. If the current namespace is the |
| +// default namespace, GetNamespace will return an empty string. |
| +func GetNamespace(c context.Context) string { |
| + return Raw(c).GetNamespace() |
| +} |
| + |
| +// Datacenter returns the current datacenter. |
| +func Datacenter(c context.Context) string { |
| + return Raw(c).Datacenter() |
| +} |
| + |
| +// DefaultVersionHostname returns the default version hostname. |
| +func DefaultVersionHostname(c context.Context) string { |
| + return Raw(c).DefaultVersionHostname() |
| +} |
| + |
| +// InstanceID returns the current instance ID. |
| +func InstanceID(c context.Context) string { |
| + return Raw(c).InstanceID() |
| +} |
| + |
| +// IsDevAppServer returns true if running on a development server. |
| +func IsDevAppServer(c context.Context) bool { |
| + return Raw(c).IsDevAppServer() |
| +} |
| + |
| +// IsOverQuota returns true if the supplied error is an over quota error. |
| +func IsOverQuota(c context.Context, err error) bool { |
| + return Raw(c).IsOverQuota(err) |
| +} |
| + |
| +// IsTimeoutError returns true if the supplied error indicates a timeout. |
| +func IsTimeoutError(c context.Context, err error) bool { |
| + return Raw(c).IsTimeoutError(err) |
| +} |
| + |
| +// ModuleHostname returns the hostname of a module instance. |
| +func ModuleHostname(c context.Context, module, version, instance string) (string, error) { |
| + return Raw(c).ModuleHostname(module, version, instance) |
| +} |
| + |
| +// ModuleName returns the current module name. |
| +func ModuleName(c context.Context) string { |
| + return Raw(c).ModuleName() |
| +} |
| + |
| +// RequestID returns the current request ID. |
| +func RequestID(c context.Context) string { |
| + return Raw(c).RequestID() |
| +} |
| + |
| +// ServerSoftware returns the AppEngine release version. |
| +func ServerSoftware(c context.Context) string { |
| + return Raw(c).ServerSoftware() |
| +} |
| + |
| +// ServiceAccount returns the current service account name, in the form of an |
| +// e-mail address. |
| +func ServiceAccount(c context.Context) (string, error) { |
| + return Raw(c).ServiceAccount() |
| +} |
| + |
| +// VersionID returns the version ID for the current application, in the form |
| +// "X.Y". |
| +func VersionID(c context.Context) string { |
| + return Raw(c).VersionID() |
| +} |
| + |
| +// Namespace sets the current namespace. If the namespace is invalid or could |
| +// not be set, an error will be returned. |
| +func Namespace(c context.Context, namespace string) (context.Context, error) { |
| + return Raw(c).Namespace(namespace) |
| +} |
| + |
| +// MustNamespace is the same as Namespace, but will panic if there's an error. |
| +// Since an error can only occur if namespace doesn't match the a regex this |
| +// is valid to use if the namespace you're using is statically known, or known |
| +// to conform to the regex. The regex in question is: |
| +// |
| +// ^[0-9A-Za-z._-]{0,100}$ |
| +func MustNamespace(c context.Context, namespace string) context.Context { |
| + ret, err := Namespace(c, namespace) |
| + if err != nil { |
| + panic(err) |
| + } |
| + return ret |
| +} |
| + |
| +// AccessToken generates an OAuth2 access token for the specified scopes |
| +// on behalf of the current ServiceAccount. |
| +func AccessToken(c context.Context, scopes ...string) (token string, expiry time.Time, err error) { |
| + return Raw(c).AccessToken(scopes...) |
| +} |
| + |
| +// PublicCertificates retrieves the public certificates of the app. |
| +func PublicCertificates(c context.Context) ([]Certificate, error) { |
| + return Raw(c).PublicCertificates() |
| +} |
| + |
| +// SignBytes signs bytes using the application's unique private key. |
| +func SignBytes(c context.Context, bytes []byte) (keyName string, signature []byte, err error) { |
| + return Raw(c).SignBytes(bytes) |
| +} |
| + |
| +// GetTestable returns this Interface's Testing interface. Testing will return |
| +// nil if testing is not supported in this implementation. |
| +func GetTestable(c context.Context) Testable { |
| + return Raw(c).GetTestable() |
| +} |