github.com/mwhudson/juju@v0.0.0-20160512215208-90ff01f3497f/upgrades/providerchanges.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  	"github.com/juju/juju/environs"
     9  	"github.com/juju/juju/provider"
    10  	"github.com/juju/version"
    11  )
    12  
    13  func upgradeProviderChanges(env environs.Environ, reader environConfigReader, ver version.Number) error {
    14  	cfg, err := reader.ModelConfig()
    15  	if err != nil {
    16  		return errors.Annotate(err, "reading model config")
    17  	}
    18  
    19  	upgrader, ok := env.(provider.Upgradeable)
    20  	if !ok {
    21  		logger.Debugf("provider %q has no upgrades", cfg.Type())
    22  		return nil
    23  	}
    24  
    25  	if err := upgrader.RunUpgradeStepsFor(ver); err != nil {
    26  		return errors.Annotate(err, "running upgrade steps")
    27  	}
    28  	return nil
    29  }