From 9fb27993eb3f41dcc0a93ea9761df30a8b172a27 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Thu, 28 Oct 2021 23:51:17 +0800 Subject: [PATCH] fix: apigateway request api_server option directly from keystone --- pkg/apigateway/handler/auth.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkg/apigateway/handler/auth.go b/pkg/apigateway/handler/auth.go index 80ba11fd8d..dc26cda50d 100644 --- a/pkg/apigateway/handler/auth.go +++ b/pkg/apigateway/handler/auth.go @@ -185,7 +185,22 @@ func (h *AuthHandlers) GetRegionsResponse(ctx context.Context, w http.ResponseWr resp.Add(jsonutils.NewArray(retIdps...), "idps") - resp.Add(jsonutils.NewString(options.Options.ApiServer), "api_server") + // in case api_server changed but not synchronized from Keystone + // fetch this option directly from Keystone + var apiSrv string + commonCfg, err := modules.ServicesV3.GetSpecific(s, "common", "config", nil) + if err != nil { + log.Errorf("fetch common config error: %s", err) + } else { + apiSrv, err = commonCfg.GetString("config", "default", "api_server") + if err != nil { + log.Errorf("fetch api_server fail: %s (cfg: %s)", err, commonCfg) + } + } + if len(apiSrv) == 0 { + apiSrv = options.Options.ApiServer + } + resp.Add(jsonutils.NewString(apiSrv), "api_server") return resp, nil }