github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/api/cleaner/cleaner.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package cleaner 5 6 import ( 7 "github.com/juju/juju/api/base" 8 "github.com/juju/juju/api/watcher" 9 "github.com/juju/juju/apiserver/params" 10 ) 11 12 const cleanerFacade = "Cleaner" 13 14 // API provides access to the Cleaner API facade. 15 type API struct { 16 facade base.FacadeCaller 17 } 18 19 // NewAPI creates a new client-side Cleaner facade. 20 func NewAPI(caller base.APICaller) *API { 21 facadeCaller := base.NewFacadeCaller(caller, cleanerFacade) 22 return &API{facade: facadeCaller} 23 } 24 25 // Cleanup calls the server-side Cleanup method. 26 func (api *API) Cleanup() error { 27 return api.facade.FacadeCall("Cleanup", nil, nil) 28 } 29 30 // WatchCleanups calls the server-side WatchCleanups method. 31 func (api *API) WatchCleanups() (watcher.NotifyWatcher, error) { 32 var result params.NotifyWatchResult 33 err := api.facade.FacadeCall("WatchCleanups", nil, &result) 34 if err != nil { 35 return nil, err 36 } 37 if err := result.Error; err != nil { 38 return nil, result.Error 39 } 40 w := watcher.NewNotifyWatcher(api.facade.RawAPICaller(), result) 41 return w, nil 42 }