github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/api/client/action/pruner.go (about) 1 // Copyright 2017 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package action 5 6 import ( 7 "time" 8 9 "github.com/juju/juju/api/base" 10 "github.com/juju/juju/api/common" 11 "github.com/juju/juju/rpc/params" 12 ) 13 14 const apiName = "ActionPruner" 15 16 // Facade allows calls to "ActionPruner" endpoints. 17 type Facade struct { 18 facade base.FacadeCaller 19 *common.ModelWatcher 20 } 21 22 // NewPruner builds a facade for the action pruner endpoints. 23 func NewPruner(caller base.APICaller) *Facade { 24 facadeCaller := base.NewFacadeCaller(caller, apiName) 25 return &Facade{facade: facadeCaller, ModelWatcher: common.NewModelWatcher(facadeCaller)} 26 } 27 28 // Prune prunes action entries by specified age and size. 29 func (s *Facade) Prune(maxHistoryTime time.Duration, maxHistoryMB int) error { 30 p := params.ActionPruneArgs{ 31 MaxHistoryTime: maxHistoryTime, 32 MaxHistoryMB: maxHistoryMB, 33 } 34 return s.facade.FacadeCall("Prune", p, nil) 35 }