proxyupdater

package
v0.0.0-...-bfa9622 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 License: AGPL-3.0 Imports: 17 Imported by: 14

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)

RunWithStdIn executes 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 {
	SupportLegacyValues bool
	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)
	SupportLegacyValues bool
	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