github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/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/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  }