github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/worker/modelworkermanager/shim.go (about)

     1  // Copyright 2017 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  package modelworkermanager
     4  
     5  import (
     6  	"github.com/juju/errors"
     7  	"github.com/juju/juju/state"
     8  )
     9  
    10  // StatePoolModelGetter implements ModelGetter in terms of a *state.StatePool.
    11  type StatePoolModelGetter struct {
    12  	*state.StatePool
    13  }
    14  
    15  // Model is part of the ModelGetter interface.
    16  func (g StatePoolModelGetter) Model(modelUUID string) (Model, func(), error) {
    17  	model, ph, err := g.StatePool.GetModel(modelUUID)
    18  	if err != nil {
    19  		return nil, nil, errors.Trace(err)
    20  	}
    21  	return model, func() { ph.Release() }, nil
    22  }