github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/upgrades/upgradevalidation/interfaces.go (about)

     1  // Copyright 2022 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package upgradevalidation
     5  
     6  import (
     7  	"github.com/juju/names/v5"
     8  	"github.com/juju/replicaset/v3"
     9  	"github.com/juju/version/v2"
    10  
    11  	"github.com/juju/juju/state"
    12  )
    13  
    14  // StatePool represents a point of use interface for getting the state from the
    15  // pool.
    16  type StatePool interface {
    17  	MongoVersion() (string, error)
    18  }
    19  
    20  // State represents a point of use interface for modelling a current model.
    21  type State interface {
    22  	AllCharmURLs() ([]*string, error)
    23  	HasUpgradeSeriesLocks() (bool, error)
    24  	MachineCountForBase(base ...state.Base) (map[string]int, error)
    25  	MongoCurrentStatus() (*replicaset.Status, error)
    26  }
    27  
    28  // Model defines a point of use interface for the model from state.
    29  type Model interface {
    30  	Name() string
    31  	Owner() names.UserTag
    32  	AgentVersion() (version.Number, error)
    33  	MigrationMode() state.MigrationMode
    34  }