github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/resource/resourceadapters/apiclient.go (about)

     1  // Copyright 2016 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package resourceadapters
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  
     9  	"github.com/juju/juju/api/base"
    10  	"github.com/juju/juju/resource"
    11  	"github.com/juju/juju/resource/api/client"
    12  )
    13  
    14  // NewAPIClient is mostly a copy of the newClient code in
    15  // component/all/resources.go.  It lives here because it simplifies this code
    16  // immensely.
    17  func NewAPIClient(apiCaller base.APICallCloser) (*client.Client, error) {
    18  	caller := base.NewFacadeCallerForVersion(apiCaller, resource.FacadeName, 1)
    19  
    20  	httpClient, err := apiCaller.HTTPClient()
    21  	if err != nil {
    22  		return nil, errors.Trace(err)
    23  	}
    24  	// The apiCaller takes care of prepending /environment/<modelUUID>.
    25  	apiClient := client.NewClient(caller, httpClient, apiCaller)
    26  	return apiClient, nil
    27  }