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 }