luci: go.chromium.org/luci/logdog/appengine/coordinator/endpoints Index | Files | Directories

package endpoints

import "go.chromium.org/luci/logdog/appengine/coordinator/endpoints"

Index

Package Files

context.go projectBoundMessage.go services.go util.go

func MinDuration Uses

func MinDuration(candidates ...*duration.Duration) (exp time.Duration)

MinDuration selects the smallest duration that is > 0 from a set of duration.Duration protobufs.

If none of the supplied Durations are > 0, 0 will be returned.

func WithServices Uses

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

WithServices installs the supplied Services instance into a Context.

type ProdService Uses

type ProdService struct {
    // contains filtered or unexported fields
}

ProdService is an instance-global configuration for production Coordinator services. A zero-value struct should be used.

It can be installed via middleware using its Base method. This also fulfills the publisher ClientFactory interface.

func (*ProdService) Base Uses

func (svc *ProdService) Base(c *router.Context, next router.Handler)

Base is Middleware used by Coordinator services.

It installs a production Services instance into the Context.

func (*ProdService) Client Uses

func (svc *ProdService) Client(c context.Context) (*vkit.PublisherClient, error)

Client creates or returns a new or existing pubsub client. If the client is reused, the client context might be from a previous request on the same instance.

func (*ProdService) RecreateClient Uses

func (svc *ProdService) RecreateClient()

RecreateClient removes the attached pubsub client so that the next Client calls returns a new client.

type ProjectBoundMessage Uses

type ProjectBoundMessage interface {
    // GetMessageProject returns the Project to which this message is bound.
    GetMessageProject() string
}

ProjectBoundMessage describes an object that is bound to a Project namespace.

This is intended to be implemented by project-bound protobufs.

type Services Uses

type Services interface {
    coordinator.ConfigProvider

    // ArchivalPublisher returns an ArchivalPublisher instance.
    ArchivalPublisher(context.Context) (coordinator.ArchivalPublisher, 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 Uses

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.

Directories

PathSynopsis
admin
registration
services

Package endpoints imports 18 packages (graph) and is imported by 10 packages. Updated 2018-12-14. Refresh now. Tools for package owners.