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  }