internal

package
v1.6.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 30, 2023 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package internal provides support for package appengine.

Programs should not use this package directly. Its API is not stable. Use packages appengine and appengine/* instead.

Index

Constants

This section is empty.

Variables

View Source
var ErrConcurrentTransaction = errors.New("internal: concurrent transaction")
View Source
var MainPath string

MainPath stores the file path of the main package. On App Engine Standard using Go version 1.9 and below, this will be unset. On App Engine Flex and App Engine Standard second-gen (Go 1.11 and above), this will be the filepath to package main.

View Source
var NamespaceMods = make(map[string]func(m proto.Message, namespace string))

NamespaceMods is a map from API service to a function that will mutate an RPC request to attach a namespace. The function should be prepared to be called on the same message more than once; it should only modify the RPC request the first time.

Functions

func AppID

func AppID(c context.Context) string

AppID is the implementation of the wrapper function of the same name in ../identity.go. See that file for commentary.

func Call

func Call(ctx context.Context, service, method string, in, out proto.Message) error

func ContextForTesting

func ContextForTesting(req *http.Request) context.Context

func Datacenter

func Datacenter(ctx context.Context) string

func DefaultVersionHostname

func DefaultVersionHostname(ctx context.Context) string

func FullyQualifiedAppID

func FullyQualifiedAppID(ctx context.Context) string

FullyQualifiedAppID returns the fully-qualified application ID. This may contain a partition prefix (e.g. "s~" for High Replication apps), or a domain prefix (e.g. "example.com:").

func IncomingHeaders

func IncomingHeaders(ctx context.Context) http.Header

func InstanceID

func InstanceID() string

func IsAppEngine

func IsAppEngine() bool

IsAppEngine is the implementation of the wrapper function of the same name in ../appengine.go. See that file for commentary.

func IsDevAppServer

func IsDevAppServer() bool

func IsFlex

func IsFlex() bool

IsFlex is the implementation of the wrapper function of the same name in ../appengine.go. See that file for commentary.

func IsSecondGen

func IsSecondGen() bool

IsSecondGen is the implementation of the wrapper function of the same name in ../appengine.go. See that file for commentary.

func IsStandard

func IsStandard() bool

IsStandard is the implementation of the wrapper function of the same name in ../appengine.go. See that file for commentary.

func Logf

func Logf(ctx context.Context, level int64, format string, args ...interface{})

func Main

func Main()

func Middleware added in v1.6.8

func Middleware(next http.Handler) http.Handler

Middleware wraps an http handler so that it can make GAE API calls

func ModuleName

func ModuleName(_ context.Context) string

func NamespaceFromContext

func NamespaceFromContext(ctx context.Context) string

func NamespacedContext

func NamespacedContext(ctx context.Context, namespace string) context.Context

NamespacedContext wraps a Context to support namespaces.

func RegisterErrorCodeMap

func RegisterErrorCodeMap(service string, m map[int32]string)

RegisterErrorCodeMap is called from API implementations to register their error code map. This should only be called from init functions.

func RegisterTestRequest

func RegisterTestRequest(req *http.Request, apiURL *url.URL, appID string) *http.Request

RegisterTestRequest registers the HTTP request req for testing, such that any API calls are sent to the provided URL. It should only be used by aetest package.

func RegisterTimeoutErrorCode

func RegisterTimeoutErrorCode(service string, code int32)

func RegisterTransactionSetter

func RegisterTransactionSetter(f interface{})

RegisterTransactionSetter registers a function that sets transaction information in a protocol buffer message. f should be a function with two arguments, the first being a protocol buffer type, and the second being *datastore.Transaction.

func ReqContext

func ReqContext(req *http.Request) context.Context

func RequestID

func RequestID(ctx context.Context) string

func RunTransactionOnce

func RunTransactionOnce(c context.Context, f func(context.Context) error, xg bool, readOnly bool, previousTransaction *pb.Transaction) (*pb.Transaction, error)

func ServerSoftware

func ServerSoftware() string

func SetTestEnv

func SetTestEnv() func()

SetTestEnv sets the env variables for testing background ticket in Flex.

func VersionID

func VersionID(_ context.Context) string

func WithAppIDOverride

func WithAppIDOverride(ctx context.Context, appID string) context.Context

func WithCallOverride

func WithCallOverride(ctx context.Context, f CallOverrideFunc) context.Context

func WithContext

func WithContext(parent context.Context, req *http.Request) context.Context

func WithLogOverride

func WithLogOverride(ctx context.Context, f logOverrideFunc) context.Context

Types

type APIError

type APIError struct {
	Service string
	Detail  string
	Code    int32 // API-specific error code
}

APIError is the type returned by appengine.Context's Call method when an API call fails in an API-specific way. This may be, for instance, a taskqueue API call failing with TaskQueueServiceError::UNKNOWN_QUEUE.

func (*APIError) Error

func (e *APIError) Error() string

func (*APIError) IsTimeout

func (e *APIError) IsTimeout() bool

type CallError

type CallError struct {
	Detail string
	Code   int32
	// TODO: Remove this if we get a distinguishable error code.
	Timeout bool
}

CallError is the type returned by appengine.Context's Call method when an API call fails in a generic way, such as RpcError::CAPABILITY_DISABLED.

func (*CallError) Error

func (e *CallError) Error() string

func (*CallError) IsTimeout

func (e *CallError) IsTimeout() bool

type CallOverrideFunc

type CallOverrideFunc func(ctx context.Context, service, method string, in, out proto.Message) error

Directories

Path Synopsis
Package aetesting provides utilities for testing App Engine packages.
Package aetesting provides utilities for testing App Engine packages.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL