Hi folks, tl;dr: you might get some new test failures when changing the DB structure, see below.
Those quick amongst you will notice that there is still a branch in github.com/juju/juju for model-migrations. This exists to allow us to continue landing bits while master aims for its bless for the next beta release. OK, so it merged, what does it do? Well it almost migrates models, but not quite. It does however have many of the moving parts. ** New package: core/description This contains a database agnostic representation of the model. The aim is to have it match every feature we have, like payloads, resources, storage, network spaces etc, but it isn't quite there yet. The model description manages machines, services, units, relations, status (and history), annotations, and relation data. We will be working to get as much additional information in the description before the full release. ** New package: migration This package has exported methods like: ExportModel, ImportModel, UploadBinaries, and Precheck. These are the higher level methods that deal with migrating models between controllers. The binaries we handle right now are charms and tools. Resources are to come real soon now (hopefully before release). ** Database collection and document tests There are a bunch of tests added to state, particularly in migration_internal_test.go. These tests make assertions about the collections that migrations know about, and the exported fields in the mongo documents for the various collections. If you add, rename, or remove fields from documents, the tests will fail and you will need to deal with the migration implications of those changes. Adding or removing a collection will also cause a test failure, until you deal with it. ** New command juju migrate This will initiate a migration for the specified hosted model to the specified controller. The actual progress of the migration will be exposed in the status output and logs. ** New API façades There are three new façades to deal with different aspects of migrations. MigrationMaster - used by the migration master worker to manage the migration from the source controller. MigrationTarget - used by the migration master worker when communicating to the target controller. MigrationSlave - used by the migration slave worker which runs in each agent in a hosted model to monitor progress of the migration and take migration related actions. Questions? Tim -- Juju-dev mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju-dev
