github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/apiserver/facades/controller/actionpruner/register.go (about) 1 // Copyright 2022 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package actionpruner 5 6 import ( 7 "reflect" 8 9 "github.com/juju/errors" 10 11 "github.com/juju/juju/apiserver/common" 12 "github.com/juju/juju/apiserver/facade" 13 ) 14 15 // Register is called to expose a package of facades onto a given registry. 16 func Register(registry facade.FacadeRegistry) { 17 registry.MustRegister("ActionPruner", 1, func(ctx facade.Context) (facade.Facade, error) { 18 return newAPI(ctx) 19 }, reflect.TypeOf((*API)(nil))) 20 } 21 22 // newAPI returns an action pruner API. 23 func newAPI(ctx facade.Context) (*API, error) { 24 m, err := Model(ctx) 25 if err != nil { 26 return nil, errors.Trace(err) 27 } 28 return &API{ 29 ModelWatcher: common.NewModelWatcher(m, ctx.Resources(), ctx.Auth()), 30 st: ctx.State(), 31 authorizer: ctx.Auth(), 32 cancel: ctx.Cancel(), 33 }, nil 34 }