github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/apiserver/common/controllerconfig.go (about)

     1  // Copyright 2016 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package common
     5  
     6  import (
     7  	"github.com/juju/juju/apiserver/params"
     8  	"github.com/juju/juju/state"
     9  )
    10  
    11  // ControllerConfigAPI implements two common methods for use by various
    12  // facades - eg Provisioner and ControllerConfig.
    13  type ControllerConfigAPI struct {
    14  	st state.ControllerAccessor
    15  }
    16  
    17  // NewControllerConfig returns a new NewControllerConfigAPI.
    18  func NewControllerConfig(st state.ControllerAccessor) *ControllerConfigAPI {
    19  	return &ControllerConfigAPI{
    20  		st: st,
    21  	}
    22  }
    23  
    24  // ControllerConfig returns the controller's configuration.
    25  func (s *ControllerConfigAPI) ControllerConfig() (params.ControllerConfigResult, error) {
    26  	result := params.ControllerConfigResult{}
    27  	config, err := s.st.ControllerConfig()
    28  	if err != nil {
    29  		return result, err
    30  	}
    31  	result.Config = params.ControllerConfig(config)
    32  	return result, nil
    33  }