context: Rename func to AppIfConfigured (#5397)

This commit is contained in:
Francis Lavoie 2023-02-27 13:58:27 -05:00 committed by GitHub
parent 941eae5f61
commit f6bab8ba85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 18 deletions

View File

@ -426,15 +426,20 @@ func (ctx Context) App(name string) (any, error) {
return modVal, nil
}
// AppIsConfigured returns whether an app named name has been
// configured. Can be called before calling App() to avoid
// AppIfConfigured returns an app by its name if it has been
// configured. Can be called instead of App() to avoid
// instantiating an empty app when that's not desirable.
func (ctx Context) AppIsConfigured(name string) bool {
if _, ok := ctx.cfg.apps[name]; ok {
return true
func (ctx Context) AppIfConfigured(name string) (any, error) {
app, ok := ctx.cfg.apps[name]
if !ok || app == nil {
return nil, nil
}
appRaw := ctx.cfg.AppsRaw[name]
return appRaw != nil
appModule, err := ctx.App(name)
if err != nil {
return nil, err
}
return appModule, nil
}
// Storage returns the configured Caddy storage implementation.

View File

@ -49,20 +49,14 @@ func (a *adminAPI) Provision(ctx caddy.Context) error {
a.ctx = ctx
a.log = ctx.Logger(a) // TODO: passing in 'a' is a hack until the admin API is officially extensible (see #5032)
// First check if the PKI app was configured, because
// a.ctx.App() has the side effect of instantiating
// and provisioning an app even if it wasn't configured.
pkiAppConfigured := a.ctx.AppIsConfigured("pki")
if !pkiAppConfigured {
return nil
}
// Load the PKI app, so we can query it for information.
appModule, err := a.ctx.App("pki")
// Avoid initializing PKI if it wasn't configured
pkiApp, err := a.ctx.AppIfConfigured("pki")
if err != nil {
return err
}
a.pkiApp = appModule.(*PKI)
if pkiApp != nil {
a.pkiApp = pkiApp.(*PKI)
}
return nil
}