github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/api/discoverspaces/discoverspaces.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package discoverspaces
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  
     9  	"github.com/juju/juju/api/base"
    10  	"github.com/juju/juju/apiserver/params"
    11  	"github.com/juju/juju/environs/config"
    12  )
    13  
    14  const discoverspacesFacade = "DiscoverSpaces"
    15  
    16  // API provides access to the DiscoverSpaces API facade.
    17  type API struct {
    18  	facade base.FacadeCaller
    19  }
    20  
    21  // NewAPI creates a new facade.
    22  func NewAPI(caller base.APICaller) *API {
    23  	if caller == nil {
    24  		panic("caller is nil")
    25  	}
    26  	facadeCaller := base.NewFacadeCaller(caller, discoverspacesFacade)
    27  	return &API{
    28  		facade: facadeCaller,
    29  	}
    30  }
    31  
    32  func (api *API) ListSpaces() (params.DiscoverSpacesResults, error) {
    33  	var result params.DiscoverSpacesResults
    34  	if err := api.facade.FacadeCall("ListSpaces", nil, &result); err != nil {
    35  		return result, errors.Trace(err)
    36  	}
    37  	return result, nil
    38  }
    39  
    40  func (api *API) AddSubnets(args params.AddSubnetsParams) (params.ErrorResults, error) {
    41  	var result params.ErrorResults
    42  	err := api.facade.FacadeCall("AddSubnets", args, &result)
    43  	if err != nil {
    44  		return result, errors.Trace(err)
    45  	}
    46  	return result, nil
    47  }
    48  
    49  func (api *API) CreateSpaces(args params.CreateSpacesParams) (results params.ErrorResults, err error) {
    50  	var result params.ErrorResults
    51  	err = api.facade.FacadeCall("CreateSpaces", args, &result)
    52  	if err != nil {
    53  		return result, errors.Trace(err)
    54  	}
    55  	return result, nil
    56  }
    57  
    58  func (api *API) ListSubnets(args params.SubnetsFilters) (params.ListSubnetsResults, error) {
    59  	var result params.ListSubnetsResults
    60  	if err := api.facade.FacadeCall("ListSubnets", args, &result); err != nil {
    61  		return result, errors.Trace(err)
    62  	}
    63  	return result, nil
    64  }
    65  
    66  // ModelConfig returns the current model configuration.
    67  func (api *API) ModelConfig() (*config.Config, error) {
    68  	var result params.ModelConfigResult
    69  	err := api.facade.FacadeCall("ModelConfig", nil, &result)
    70  	if err != nil {
    71  		return nil, err
    72  	}
    73  	conf, err := config.New(config.NoDefaults, result.Config)
    74  	if err != nil {
    75  		return nil, err
    76  	}
    77  	return conf, nil
    78  }