github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/apiserver/facades/controller/instancepoller/register.go (about) 1 // Copyright 2022 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package instancepoller 5 6 import ( 7 "reflect" 8 9 "github.com/juju/clock" 10 "github.com/juju/errors" 11 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("InstancePoller", 4, func(ctx facade.Context) (facade.Facade, error) { 18 return newFacade(ctx) 19 }, reflect.TypeOf((*InstancePollerAPI)(nil))) 20 } 21 22 // newFacade wraps NewInstancePollerAPI for facade registration. 23 func newFacade(ctx facade.Context) (*InstancePollerAPI, error) { 24 st := ctx.State() 25 m, err := st.Model() 26 if err != nil { 27 return nil, errors.Trace(err) 28 } 29 return NewInstancePollerAPI(st, m, ctx.Resources(), ctx.Auth(), clock.WallClock) 30 }