github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/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 }