proxyupdater

package
v0.0.0-...-8ff1004 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2019 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var NewWorker = func(config Config) (worker.Worker, error) {
	if err := config.Validate(); err != nil {
		return nil, err
	}
	envWorker := &proxyWorker{
		first:  true,
		config: config,
	}
	w, err := watcher.NewNotifyWorker(watcher.NotifyConfig{
		Handler: envWorker,
	})
	if err != nil {
		return nil, errors.Trace(err)
	}
	return w, nil
}

NewWorker returns a worker.Worker that updates proxy environment variables for the process and for the whole machine.

Functions

func Manifold

func Manifold(config ManifoldConfig) dependency.Manifold

Manifold returns a dependency manifold that runs a proxy updater worker, using the api connection resource named in the supplied config.

func RunWithStdIn

func RunWithStdIn(input string, command string, args ...string) (string, error)

Execute the command specified with the args with optional stdin.

Types

type API

type API interface {
	ProxyConfig() (proxyupdater.ProxyConfiguration, error)
	WatchForProxyConfigAndAPIHostPortChanges() (watcher.NotifyWatcher, error)
}

API is an interface that is provided to New which can be used to fetch the API host ports

type Config

type Config struct {
	RegistryPath    string
	EnvFiles        []string
	SystemdFiles    []string
	API             API
	ExternalUpdate  func(proxy.Settings) error
	InProcessUpdate func(proxy.Settings) error
	RunFunc         func(string, string, ...string) (string, error)
	Logger          Logger
}

func (*Config) Validate

func (c *Config) Validate() error

Validate ensures that all the required fields have values.

type Logger

type Logger interface {
	Errorf(string, ...interface{})
	Warningf(string, ...interface{})
	Infof(string, ...interface{})
	Debugf(string, ...interface{})
	Tracef(string, ...interface{})
}

Logger represents the methods used for logging messages.

type ManifoldConfig

type ManifoldConfig struct {
	AgentName       string
	APICallerName   string
	Logger          Logger
	WorkerFunc      func(Config) (worker.Worker, error)
	ExternalUpdate  func(proxy.Settings) error
	InProcessUpdate func(proxy.Settings) error
	RunFunc         func(string, string, ...string) (string, error)
}

ManifoldConfig defines the names of the manifolds on which a Manifold will depend.

Jump to

Keyboard shortcuts

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