github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/apiserver/facades/client/modelgeneration/interface.go (about)

     1  // Copyright 2019 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package modelgeneration
     5  
     6  import (
     7  	"gopkg.in/juju/names.v2"
     8  
     9  	"github.com/juju/juju/apiserver/params"
    10  )
    11  
    12  // ModelGeneration defines the methods exported by the model generation API facade.
    13  type ModelGeneration interface {
    14  	AddGeneration() (params.ErrorResult, error)
    15  	AdvanceGeneration(args params.Entities) (params.ErrorResults, error)
    16  	SwitchGeneration(arg params.GenerationVersionArg) (params.ErrorResult, error)
    17  }
    18  
    19  // ModelGenerationState represents the state of an model required by the ModelGeneration.
    20  //go:generate mockgen -package mocks -destination mocks/state_mock.go github.com/juju/juju/apiserver/facades/client/modelgeneration ModelGenerationState
    21  type ModelGenerationState interface {
    22  	ControllerTag() names.ControllerTag
    23  	Model() (GenerationModel, error)
    24  }
    25  
    26  //go:generate mockgen -package mocks -destination mocks/model_mock.go github.com/juju/juju/apiserver/facades/client/modelgeneration GenerationModel
    27  type GenerationModel interface {
    28  	AddGeneration() error
    29  	NextGeneration() (Generation, error)
    30  	HasNextGeneration() (bool, error)
    31  }
    32  
    33  // Generation defines the methods used by a generation.
    34  //go:generate mockgen -package mocks -destination mocks/generation_mock.go github.com/juju/juju/apiserver/facades/client/modelgeneration Generation
    35  type Generation interface {
    36  	AssignAllUnits(string) error
    37  	AssignUnit(string) error
    38  	MakeCurrent() error
    39  	AutoComplete() (bool, error)
    40  	Refresh() error
    41  }