Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Manifold

func Manifold(config ManifoldConfig) dependency.Manifold

    Manifold returns a dependency manifold that runs an upgrade-series worker, using the resource names defined in the supplied config.

    func NewWorker

    func NewWorker(config Config) (worker.Worker, error)

      NewWorker creates, starts and returns a new upgrade-series worker based on the input configuration.

      Types

      type Config

      type Config struct {
      	// Facade is used to access back-end state.
      	Facade Facade
      
      	// Logger is the logger for this worker.
      	Logger Logger
      
      	// UnitDiscovery determines how the worker knows which units should
      	// be running on the machine.
      	UnitDiscovery UnitDiscovery
      
      	// UpgraderFactory is a factory method that will return an upgrader capable
      	// of handling service and agent binary manipulation for a
      	// runtime-determined current and target OS series.
      	UpgraderFactory func(string, string) (Upgrader, error)
      }

        Config is the configuration needed to construct an UpgradeSeries worker.

        func (Config) Validate

        func (config Config) Validate() error

          Validate validates the upgrade-series worker configuration.

          type Facade

          type Facade interface {
          	// Getters
          	WatchUpgradeSeriesNotifications() (watcher.NotifyWatcher, error)
          	MachineStatus() (model.UpgradeSeriesStatus, error)
          	UnitsPrepared() ([]names.UnitTag, error)
          	UnitsCompleted() ([]names.UnitTag, error)
          	CurrentSeries() (string, error)
          	TargetSeries() (string, error)
          
          	// Setters
          	StartUnitCompletion(reason string) error
          	SetMachineStatus(status model.UpgradeSeriesStatus, reason string) error
          	FinishUpgradeSeries(string) error
          	PinMachineApplications() (map[string]error, error)
          	UnpinMachineApplications() (map[string]error, error)
          	SetInstanceStatus(model.UpgradeSeriesStatus, string) error
          }

            Facade exposes the API surface required by the upgrade-series worker.

            func NewFacade

            func NewFacade(apiCaller base.APICaller, tag names.Tag) Facade

              NewFacade creates a new upgrade-series client and returns its reference as the facade indirection above.

              type Logger

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

                Logger represents the methods required to emit log messages.

                type ManifoldConfig

                type ManifoldConfig struct {
                	AgentName     string
                	APICallerName string
                
                	Logger    Logger
                	NewFacade func(base.APICaller, names.Tag) Facade
                	NewWorker func(Config) (worker.Worker, error)
                }

                  ManifoldConfig holds the information necessary for the dependency engine to to run an upgrade-series worker.

                  func (ManifoldConfig) Validate

                  func (config ManifoldConfig) Validate() error

                    Validate validates the manifold configuration.

                    type UnitDiscovery

                    type UnitDiscovery interface {
                    	Units() ([]names.UnitTag, error)
                    }

                      UnitDiscovery represents how the worker determines which units need to check in.

                      type Upgrader

                      type Upgrader interface {
                      	PerformUpgrade() error
                      }

                        Upgrader describes methods required to perform file-system manipulation in preparation for upgrading the host Ubuntu version.

                        func NewUpgrader

                        func NewUpgrader(
                        	currentSeries, toSeries string, manager service.SystemdServiceManager, logger Logger,
                        ) (Upgrader, error)

                          NewUpgrader uses the input function to determine the series that should be supported, and returns a reference to a new Upgrader that supports it.

                          Directories

                          Path Synopsis
                          Package mocks is a generated GoMock package.
                          Package mocks is a generated GoMock package.