Documentation ¶
Overview ¶
This package defines the API facade for use by the migration master worker when communicating with its own controller.
Index ¶
- type API
- func (api *API) Export() (params.SerializedModel, error)
- func (api *API) MigrationStatus() (params.MasterMigrationStatus, error)
- func (api *API) MinionReportTimeout() (params.StringResult, error)
- func (api *API) MinionReports() (params.MinionReports, error)
- func (api *API) ModelInfo() (params.MigrationModelInfo, error)
- func (api *API) Prechecks() error
- func (api *API) ProcessRelations(args params.ProcessRelations) error
- func (api *API) Reap() error
- func (api *API) SetPhase(args params.SetMigrationPhaseArgs) error
- func (api *API) SetStatusMessage(args params.SetMigrationStatusMessageArgs) error
- func (api *API) Watch() params.NotifyWatchResult
- func (api *API) WatchMinionReports() params.NotifyWatchResult
- type APIV1
- type APIV2
- type Backend
- type OfferConnection
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
// contains filtered or unexported fields
}
API implements the API required for the model migration master worker.
func NewAPI ¶
func NewAPI( backend Backend, precheckBackend migration.PrecheckBackend, pool migration.Pool, resources facade.Resources, authorizer facade.Authorizer, presence facade.Presence, ) (*API, error)
NewAPI creates a new API server endpoint for the model migration master worker.
func NewMigrationMasterFacade ¶
NewMigrationMasterFacadeV2 exists to provide the required signature for API registration, converting st to backend.
func (*API) Export ¶
func (api *API) Export() (params.SerializedModel, error)
Export serializes the model associated with the API connection.
func (*API) MigrationStatus ¶
func (api *API) MigrationStatus() (params.MasterMigrationStatus, error)
MigrationStatus returns the details and progress of the latest model migration.
func (*API) MinionReportTimeout ¶
func (api *API) MinionReportTimeout() (params.StringResult, error)
MinionReportTimeout returns the configuration value for this controller that indicates how long the migration master worker should wait for minions to reported on phases of a migration.
func (*API) MinionReports ¶
func (api *API) MinionReports() (params.MinionReports, error)
MinionReports returns details of the reports made by migration minions to the controller for the current migration phase.
func (*API) ModelInfo ¶
func (api *API) ModelInfo() (params.MigrationModelInfo, error)
ModelInfo returns essential information about the model to be migrated.
func (*API) Prechecks ¶
Prechecks performs pre-migration checks on the model and (source) controller.
func (*API) ProcessRelations ¶
func (api *API) ProcessRelations(args params.ProcessRelations) error
ProcessRelations processes any relations that need updating after an export. This should help fix any remoteApplications that have been migrated.
func (*API) SetPhase ¶
func (api *API) SetPhase(args params.SetMigrationPhaseArgs) error
SetPhase sets the phase of the active model migration. The provided phase must be a valid phase value, for example QUIESCE" or "ABORT". See the core/migration package for the complete list.
func (*API) SetStatusMessage ¶
func (api *API) SetStatusMessage(args params.SetMigrationStatusMessageArgs) error
SetStatusMessage sets a human readable status message containing information about the migration's progress. This will be shown in status output shown to the end user.
func (*API) Watch ¶
func (api *API) Watch() params.NotifyWatchResult
Watch starts watching for an active migration for the model associated with the API connection. The returned id should be used with the NotifyWatcher facade to receive events.
func (*API) WatchMinionReports ¶
func (api *API) WatchMinionReports() params.NotifyWatchResult
WatchMinionReports sets up a watcher which reports when a report for a migration minion has arrived.
type APIV1 ¶
type APIV1 struct {
*APIV2
}
func NewMigrationMasterFacadeV1 ¶
NewMigrationMasterFacadeV1 exists to provide the required signature for API registration, converting st to backend.
func (*APIV1) ProcessRelations ¶
func (api *APIV1) ProcessRelations(_, _ struct{})
ProcessRelations is masked on older versions of the migration master API
type APIV2 ¶
type APIV2 struct {
*API
}
APIV2 implements version 2 of the migration master API.
func NewMigrationMasterFacadeV2 ¶
NewMigrationMasterFacadeV2 exists to provide the required signature for API registration, converting st to backend.
func (*APIV2) MinionReportTimeout ¶
func (api *APIV2) MinionReportTimeout(_, _ struct{})
MinionReportTimeout is not available via the V2 API.
type Backend ¶
type Backend interface { migration.StateExporter WatchForMigration() state.NotifyWatcher LatestMigration() (state.ModelMigration, error) ModelUUID() string ModelName() (string, error) ModelOwner() (names.UserTag, error) AgentVersion() (version.Number, error) RemoveExportingModelDocs() error ControllerConfig() (controller.Config, error) }
Backend defines the state functionality required by the migrationmaster facade.
type OfferConnection ¶
type OfferConnection interface { // OfferUUID uniquely identifies the relation offer. OfferUUID() string // UserName returns the name of the user who created this connection. UserName() string // RelationId is the id of the relation to which this connection pertains. RelationId() int // SourceModelUUID is the uuid of the consuming model. SourceModelUUID() string // RelationKey is the key of the relation to which this connection pertains. RelationKey() string }
OfferConnection describes methods offer connection methods required for migration pre-checks.