github.com/mwhudson/juju@v0.0.0-20160512215208-90ff01f3497f/upgrades/steps126.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package upgrades
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  
     9  	"github.com/juju/juju/environs"
    10  	"github.com/juju/juju/state"
    11  	"github.com/juju/juju/state/utils"
    12  	"github.com/juju/version"
    13  )
    14  
    15  // stepsFor126 returns upgrade steps for Juju 1.26.
    16  func stepsFor126() []Step {
    17  	return []Step{}
    18  }
    19  
    20  // stateStepsFor126 returns upgrade steps for Juju 1.26 that manipulate state directly.
    21  func stateStepsFor126() []Step {
    22  	return []Step{
    23  		&upgradeStep{
    24  			description: "add the version field to all settings docs",
    25  			targets:     []Target{DatabaseMaster},
    26  			run: func(context Context) error {
    27  				return state.MigrateSettingsSchema(context.State())
    28  			},
    29  		},
    30  		&upgradeStep{
    31  			description: "add status to filesystem",
    32  			targets:     []Target{DatabaseMaster},
    33  			run: func(context Context) error {
    34  				return state.AddFilesystemStatus(context.State())
    35  			},
    36  		},
    37  		&upgradeStep{
    38  			description: "upgrade model config",
    39  			targets:     []Target{DatabaseMaster},
    40  			run: func(context Context) error {
    41  				// TODO(axw) updateModelConfig should be
    42  				// called for all upgrades, to decouple this
    43  				// package from provider-specific upgrades.
    44  				st := context.State()
    45  				return upgradeModelConfig(st, st, environs.GlobalProviderRegistry())
    46  			},
    47  		},
    48  		//TODO(perrito666) make this an unconditional upgrade step.
    49  		// it would be ideal not to have to modify this package whenever we add provider upgrade steps.
    50  		&upgradeStep{
    51  			description: "provider side upgrades",
    52  			targets:     []Target{DatabaseMaster},
    53  			run: func(context Context) error {
    54  				st := context.State()
    55  				env, err := utils.GetEnviron(st)
    56  				if err != nil {
    57  					return errors.Annotate(err, "getting provider for upgrade")
    58  				}
    59  				return upgradeProviderChanges(env, st, version.Number{Major: 1, Minor: 26})
    60  			},
    61  		},
    62  		&upgradeStep{
    63  			description: "update machine preferred addresses",
    64  			targets:     []Target{DatabaseMaster},
    65  			run: func(context Context) error {
    66  				return state.AddPreferredAddressesToMachines(context.State())
    67  			},
    68  		},
    69  		&upgradeStep{
    70  			description: "add default endpoint bindings to services",
    71  			targets:     []Target{DatabaseMaster},
    72  			run: func(context Context) error {
    73  				return state.AddDefaultEndpointBindingsToServices(context.State())
    74  			},
    75  		},
    76  	}
    77  }