github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/api/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/api/base"
     8  	"github.com/juju/juju/apiserver/params"
     9  	"github.com/juju/juju/controller"
    10  )
    11  
    12  // ControllerConfigAPI provides common client-side API functions
    13  // to call into apiserver.common.ControllerConfig.
    14  type ControllerConfigAPI struct {
    15  	facade base.FacadeCaller
    16  }
    17  
    18  // NewControllerConfig creates a ControllerConfig on the specified facade,
    19  // and uses this name when calling through the caller.
    20  func NewControllerConfig(facade base.FacadeCaller) *ControllerConfigAPI {
    21  	return &ControllerConfigAPI{facade}
    22  }
    23  
    24  // ControllerConfig returns the current controller configuration.
    25  func (e *ControllerConfigAPI) ControllerConfig() (controller.Config, error) {
    26  	var result params.ControllerConfigResult
    27  	err := e.facade.FacadeCall("ControllerConfig", nil, &result)
    28  	if err != nil {
    29  		return nil, err
    30  	}
    31  	return controller.Config(result.Config), nil
    32  }