modelmigration

package
v0.0.0-...-c3d9892 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2025 License: AGPL-3.0 Imports: 25 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ImportOperations

func ImportOperations(
	coordinator Coordinator,
	modelDefaultsProvider modelconfigservice.ModelDefaultsProvider,
	storageRegistryGetter corestorage.ModelStorageRegistryGetter,
	objectStoreGetter objectstore.ModelObjectStoreGetter,
	clock clock.Clock,
	logger logger.Logger,
)

ImportOperations registers the import operations with the given coordinator. This is a convenience function that can be used by the main migration package to register all the import operations.

Types

type Coordinator

type Coordinator interface {
	// Add adds the given operation to the migration.
	Add(modelmigration.Operation)
}

Coordinator is the interface that is used to add operations to a migration.

type Exporter

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

Exporter defines the instance of the coordinator on which we'll register the export operations. A logger and a clock are needed for two of the export operations.

func NewExporter

func NewExporter(
	coordinator Coordinator,
	storageRegistryGetter corestorage.ModelStorageRegistryGetter,
	objectStoreGetter objectstore.ModelObjectStoreGetter,
	clock clock.Clock,
	logger logger.Logger,
) *Exporter

NewExporter returns a new Exporter that encapsulates the legacyStateExporter. The legacyStateExporter is being deprecated, only needed until the migration to dqlite is complete.

func (*Exporter) ExportOperations

func (e *Exporter) ExportOperations(registry corestorage.ModelStorageRegistryGetter)

ExportOperations registers the export operations with the given coordinator. This is a convenience function that can be used by the main migration package to register all the export operations.

type MigrationMachineDiscrepancy

type MigrationMachineDiscrepancy struct {
	// MachineName is the name given to a machine in the Juju model
	MachineName machine.Name

	// CloudInstanceId is the unique id given to an instance from the cloud.
	CloudInstanceId instance.Id
}

MigrationMachineDiscrepancy describes a divergent machine between what Juju has and what the cloud has reported. If both the MachineName and the CloudInstanceId are both not empty then the discrepancy is on the Juju side where we are referencing a instance that doesn't exist in the cloud.

If MachineName is empty then the discrepancy comes from the cloud where a instance exists that is not being tracked by Juju.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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