mirror of
https://github.com/alibaba/higress.git
synced 2026-06-07 11:47:30 +08:00
fix : fix credential process logic for nacos mcp util and add ut for it (#2394)
This commit is contained in:
@@ -368,10 +368,13 @@ func (n *NacosRegistryClient) replaceTemplateAndExactConfigsItems(ctx *ServerCon
|
||||
func (n *NacosRegistryClient) resetNacosTemplateConfigs(ctx *ServerContext, config *ConfigListenerWrap) {
|
||||
newCredentials := n.replaceTemplateAndExactConfigsItems(ctx, config)
|
||||
|
||||
credentialsNeedDelete := []string{}
|
||||
|
||||
// cancel all old config listener
|
||||
for key, wrap := range ctx.configsMap {
|
||||
if strings.HasPrefix(key, CredentialPrefix) {
|
||||
if _, ok := newCredentials[key]; !ok {
|
||||
credentialsNeedDelete = append(credentialsNeedDelete, key)
|
||||
err := n.cancelListenToConfig(wrap)
|
||||
if err != nil {
|
||||
mcpServerLog.Errorf("cancel listen to old credential listener error %v", err)
|
||||
@@ -381,6 +384,10 @@ func (n *NacosRegistryClient) resetNacosTemplateConfigs(ctx *ServerContext, conf
|
||||
}
|
||||
}
|
||||
|
||||
for _, credentialKey := range credentialsNeedDelete {
|
||||
delete(ctx.configsMap, credentialKey)
|
||||
}
|
||||
|
||||
for _, data := range newCredentials {
|
||||
ctx.configsMap[CredentialPrefix+data.group+"_"+data.dataId] = data
|
||||
}
|
||||
@@ -457,14 +464,15 @@ func (n *NacosRegistryClient) ListenToConfig(ctx *ServerContext, dataId string,
|
||||
}
|
||||
|
||||
configListener := func(namespace, group, dataId, data string) {
|
||||
if group == McpToolSpecGroup {
|
||||
n.resetNacosTemplateConfigs(ctx, &wrap)
|
||||
} else if group == McpServerSpecGroup {
|
||||
n.refreshServiceListenerIfNeeded(ctx, data)
|
||||
}
|
||||
|
||||
if ctx.serverChangeListener != nil && wrap.data != data {
|
||||
wrap.data = data
|
||||
|
||||
if group == McpToolSpecGroup {
|
||||
n.resetNacosTemplateConfigs(ctx, &wrap)
|
||||
} else if group == McpServerSpecGroup {
|
||||
n.refreshServiceListenerIfNeeded(ctx, data)
|
||||
}
|
||||
|
||||
n.triggerMcpServerChange(ctx.versionedMcpServerInfo.serverInfo.Id)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user