github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/apiserver/facades/controller/externalcontrollerupdater/register.go (about) 1 // Copyright 2022 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package externalcontrollerupdater 5 6 import ( 7 "reflect" 8 9 "github.com/juju/juju/apiserver/facade" 10 "github.com/juju/juju/state" 11 ) 12 13 // Register is called to expose a package of facades onto a given registry. 14 func Register(registry facade.FacadeRegistry) { 15 registry.MustRegister("ExternalControllerUpdater", 1, func(ctx facade.Context) (facade.Facade, error) { 16 return newStateAPI(ctx) 17 }, reflect.TypeOf((*ExternalControllerUpdaterAPI)(nil))) 18 } 19 20 // newStateAPI creates a new server-side CrossModelRelationsAPI API facade 21 // backed by global state. 22 func newStateAPI(ctx facade.Context) (*ExternalControllerUpdaterAPI, error) { 23 return NewAPI( 24 ctx.Auth(), 25 ctx.Resources(), 26 state.NewExternalControllers(ctx.State()), 27 ) 28 }