github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/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 apiwatcher "github.com/juju/juju/api/watcher" 9 "github.com/juju/juju/apiserver/params" 10 "github.com/juju/juju/core/watcher" 11 ) 12 13 const cleanerFacade = "Cleaner" 14 15 // API provides access to the Cleaner API facade. 16 type API struct { 17 facade base.FacadeCaller 18 } 19 20 // NewAPI creates a new client-side Cleaner facade. 21 func NewAPI(caller base.APICaller) *API { 22 facadeCaller := base.NewFacadeCaller(caller, cleanerFacade) 23 return &API{facade: facadeCaller} 24 } 25 26 // Cleanup calls the server-side Cleanup method. 27 func (api *API) Cleanup() error { 28 return api.facade.FacadeCall("Cleanup", nil, nil) 29 } 30 31 // WatchCleanups calls the server-side WatchCleanups method. 32 func (api *API) WatchCleanups() (watcher.NotifyWatcher, error) { 33 var result params.NotifyWatchResult 34 err := api.facade.FacadeCall("WatchCleanups", nil, &result) 35 if err != nil { 36 return nil, err 37 } 38 if err := result.Error; err != nil { 39 return nil, result.Error 40 } 41 w := apiwatcher.NewNotifyWatcher(api.facade.RawAPICaller(), result) 42 return w, nil 43 }