download

package
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2019 License: Apache-2.0 Imports: 10 Imported by: 14

Documentation

Overview

Package download implements low-level OPA bundle downloading.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Polling PollingConfig `json:"polling"`
}

Config represents the configuration for the downloader.

func (*Config) ValidateAndInjectDefaults

func (c *Config) ValidateAndInjectDefaults() error

ValidateAndInjectDefaults checks for configuration errors and ensures all values are set on the Config object.

type Downloader

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

Downloader implements low-level OPA bundle downloading. Downloader can be started and stopped. After starting, the downloader will request bundle updates from the remote HTTP endpoint that the client is configured to connect to.

func New

func New(config Config, client rest.Client, path string) *Downloader

New returns a new Downloader that can be started.

func (*Downloader) Start

func (d *Downloader) Start(ctx context.Context)

Start tells the Downloader to begin downloading bundles.

func (*Downloader) Stop

func (d *Downloader) Stop(ctx context.Context)

Stop tells the Downloader to stop begin downloading bundles.

func (*Downloader) WithCallback

func (d *Downloader) WithCallback(f func(context.Context, Update)) *Downloader

WithCallback registers a function f to be called when download updates occur.

func (*Downloader) WithLogAttrs

func (d *Downloader) WithLogAttrs(attrs [][2]string) *Downloader

WithLogAttrs sets an optional set of key/value pair attributes to include in log messages emitted by the downloader.

type PollingConfig

type PollingConfig struct {
	MinDelaySeconds *int64 `json:"min_delay_seconds,omitempty"` // min amount of time to wait between successful poll attempts
	MaxDelaySeconds *int64 `json:"max_delay_seconds,omitempty"` // max amount of time to wait between poll attempts
}

PollingConfig represents polling configuration for the downloader.

type Update

type Update struct {
	ETag   string
	Bundle *bundle.Bundle
	Error  error
}

Update contains the result of a download. If an error occurred, the Error field will be non-nil. If a new bundle is available, the Bundle field will be non-nil.

Jump to

Keyboard shortcuts

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