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 }