This section is empty.


This section is empty.


func WithServices

func WithServices(c context.Context, s Services) context.Context

WithServices installs the supplied Services instance into a Context.


type GlobalServices

type GlobalServices struct {
	// Signer is the signer instance to use.
	Signer gaesigner.Signer

	// contains filtered or unexported fields


GlobalServices is an application singleton that stores cross-request service structures.

It is applied to each Flex HTTP request using its Base() middleware method.

func NewGlobalServices

func NewGlobalServices(c context.Context) (*GlobalServices, error)

NewGlobalServices instantiates a new GlobalServices instance.

The Context passed to GlobalServices should be a global Context not a request-specific Context, with required services installed: - auth - luci_config

func (*GlobalServices) Base

func (gsvc *GlobalServices) Base(c *router.Context, next router.Handler)

Base is Middleware used by Coordinator Flex services.

It installs a production Services instance into the Context.

func (*GlobalServices) Close

func (gsvc *GlobalServices) Close() error

Close closes the GlobalServices instance, releasing any retained resources.

func (*GlobalServices) StorageForStream

func (gsvc *GlobalServices) StorageForStream(c context.Context, lst *coordinator.LogStreamState, project string) (
	coordinator.SigningStorage, error)

Storage returns a Storage instance for the supplied log stream.

The caller must close the returned instance if successful.

type Services

type Services interface {
	// Storage returns a Storage instance for the supplied log stream.
	// The caller must close the returned instance if successful.
	StorageForStream(ctx context.Context, state *coordinator.LogStreamState, project string) (coordinator.SigningStorage, error)

Services is a set of support services used by AppEngine Classic Coordinator endpoints.

Each instance is valid for a single request, but can be re-used throughout that request. This is advised, as the Services instance may optionally cache values.

Services methods are goroutine-safe.

func GetServices

func GetServices(c context.Context) Services

GetServices gets the Services instance installed in the supplied Context.

If no Services has been installed, it will panic.

type StorageCache

type StorageCache struct {
	// contains filtered or unexported fields


StorageCache implements a generic storage.Cache for Storage instances.

This uses the process cache for the underlying cache.

func (*StorageCache) Get

func (sc *StorageCache) Get(c context.Context, key storage.CacheKey) ([]byte, bool)

Get implements storage.Cache.

func (*StorageCache) Put

func (sc *StorageCache) Put(c context.Context, key storage.CacheKey, data []byte, exp time.Duration)

Put implements storage.Cache.


Path Synopsis