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} }