From 1f06ee3af6e6970fcf9c79c238a8d1bc456a65d1 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Mon, 1 Nov 2021 19:23:19 +0800 Subject: [PATCH] Fix: node cannot be reloaded when db model changes --- pkg/cluster/pool.go | 13 ++++++++----- service/admin/node.go | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pkg/cluster/pool.go b/pkg/cluster/pool.go index 4526f4a..73a81bb 100644 --- a/pkg/cluster/pool.go +++ b/pkg/cluster/pool.go @@ -128,12 +128,15 @@ func (pool *NodePool) Add(node *model.Node) { defer pool.buildIndexMap() defer pool.lock.Unlock() - if _, ok := pool.active[node.ID]; ok { - // TODO: refresh node - return + var ( + old Node + ok bool + ) + if old, ok = pool.active[node.ID]; !ok { + old, ok = pool.inactive[node.ID] } - - if _, ok := pool.inactive[node.ID]; ok { + if old != nil { + old.Init(node) return } diff --git a/service/admin/node.go b/service/admin/node.go index 7d52dbd..a82b3a7 100644 --- a/service/admin/node.go +++ b/service/admin/node.go @@ -24,6 +24,7 @@ func (service *AddNodeService) Add() serializer.Response { } } + cluster.Default.Add(&service.Node) return serializer.Response{Data: service.Node.ID} }