discovery

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: May 14, 2016 License: Apache-2.0, Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package discovery contains an experimental implementation of the Image Discovery section of the appc specification.

Index

Constants

This section is empty.

Variables

View Source
var (
	// Client is the default http.Client used for discovery requests.
	Client            *http.Client
	ClientInsecureTls *http.Client
)

Functions

func DiscoverEndpoints

func DiscoverEndpoints(app App, hostHeaders map[string]http.Header, insecure InsecureOption) (out *Endpoints, attempts []FailedAttempt, err error)

DiscoverEndpoints will make HTTPS requests to find the ac-discovery meta tags and optionally will use HTTP if insecure is set. hostHeaders specifies the header to apply depending on the host (e.g. authentication). It will not give up until it has exhausted the path or found an image discovery.

func DiscoverPublicKeys

func DiscoverPublicKeys(app App, hostHeaders map[string]http.Header, insecure InsecureOption) (out *Endpoints, attempts []FailedAttempt, err error)

DiscoverPublicKey will make HTTPS requests to find the ac-public-keys meta tags and optionally will use HTTP if insecure is set. hostHeaders specifies the header to apply depending on the host (e.g. authentication). It will not give up until it has exhausted the path or found an public key.

func DiscoverWalk

func DiscoverWalk(app App, hostHeaders map[string]http.Header, insecure InsecureOption, discoverFn DiscoverWalkFunc) (err error)

DiscoverWalk will make HTTPS requests to find discovery meta tags and optionally will use HTTP if insecure is set. hostHeaders specifies the header to apply depending on the host (e.g. authentication). Based on the response of the discoverFn it will continue to recurse up the tree.

Types

type ACIEndpoint

type ACIEndpoint struct {
	ACI string
	ASC string
}

type App

type App struct {
	Name   types.ACIdentifier
	Labels map[types.ACIdentifier]string
}

func NewApp

func NewApp(name string, labels map[types.ACIdentifier]string) (*App, error)

func NewAppFromString

func NewAppFromString(app string) (*App, error)

NewAppFromString takes a command line app parameter and returns a map of labels.

Example app parameters:

example.com/reduce-worker:1.0.0
example.com/reduce-worker,channel=alpha,label=value
example.com/reduce-worker:1.0.0,label=value

As can be seen in above examples - colon, comma and equal sign have special meaning. If any of them has to be a part of a label's value then consider writing your own string to App parser.

func (*App) Copy

func (a *App) Copy() *App

func (*App) String

func (a *App) String() string

String returns the URL-like image name

type DiscoverWalkFunc

type DiscoverWalkFunc func(prefix string, eps *Endpoints, err error) error

DiscoverWalkFunc can stop a DiscoverWalk by returning non-nil error.

type Endpoints

type Endpoints struct {
	ACIEndpoints []ACIEndpoint
	Keys         []string
}

func (*Endpoints) Append

func (e *Endpoints) Append(ep Endpoints)

type FailedAttempt

type FailedAttempt struct {
	Prefix string
	Error  error
}

FailedAttempt represents a failed discovery attempt. This is for debugging and user feedback.

type InsecureOption added in v0.3.0

type InsecureOption int
const (
	InsecureNone InsecureOption = 0

	InsecureTls InsecureOption = 1 << iota
	InsecureHttp
)

Jump to

Keyboard shortcuts

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