Back to godoc.org

Package flex

v0.0.0-...-1557bcf
Latest Go to latest

The latest major version is .

Published: Aug 13, 2020 | License: Apache-2.0 | Module: github.com/luci/luci-go

Overview

Package flex exposes gaemiddleware Environments for AppEngine's Flex environment.

Index

Variables

var (
	// ListeningAddr is a address to bind the listening socket to.
	ListeningAddr string
)
var ReadOnlyFlex = gaemiddleware.Environment{
	MemcacheAvailable: false,
	DSReadOnly:        true,
	DSReadOnlyPredicate: func(k *datastore.Key) (isRO bool) {

		return k.Namespace() != gaetsmon.DatastoreNamespace
	},
	Prepare: func(ctx context.Context) {
		globalFlex = &cloud.Flex{
			Cache: lru.New(65535),
		}
		var err error
		if globalFlexConfig, err = globalFlex.Configure(ctx); err != nil {
			panic(errors.Annotate(err, "could not create Flex config").Err())
		}
	},
	WithInitialRequest: func(ctx context.Context, req *http.Request) context.Context {

		if globalFlexConfig == nil {

			panic("global Flex config is not initialized")
		}
		return globalFlexConfig.Use(ctx, globalFlex.Request(ctx, req))
	},
	WithConfig: gaeconfig.Use,
	WithAuth: func(ctx context.Context) context.Context {
		return auth.Initialize(ctx, &globalAuthConfig)
	},
	ExtraMiddleware: router.NewMiddlewareChain(
		flexFoundationMiddleware,
		globalTsMonState.Middleware,
	),
	ExtraHandlers: func(r *router.Router, base router.MiddlewareChain) {
		gaeauth.InstallHandlers(r, base)
		pprof.InstallHandlers(r, base)

		r.GET("/_ah/health", router.MiddlewareChain{},
			func(c *router.Context) { c.Writer.WriteHeader(http.StatusOK) })
	},
}

ReadOnlyFlex is an Environment designed for cooperative Flex support environments.

func HTTPRequest

func HTTPRequest(ctx context.Context) *http.Request

HTTPRequest returns the inbound HTTP request associated with the current Context.

This value will always be available if the Context has been initialized by Use.

func WithGlobal

func WithGlobal(ctx context.Context) context.Context

WithGlobal returns a Context that is not attached to a specific request.

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier