From 8ad87f5a812be56f3ca172c95441d07ba064582b Mon Sep 17 00:00:00 2001 From: Abhishek Kondur Date: Thu, 19 Jan 2023 14:49:24 +0530 Subject: [PATCH] update host network fix --- logic/hosts.go | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/logic/hosts.go b/logic/hosts.go index fac35552..a03ec962 100644 --- a/logic/hosts.go +++ b/logic/hosts.go @@ -159,6 +159,23 @@ func RemoveHostByID(hostID string) error { // UpdateHostNetwork - adds/deletes host from a network func UpdateHostNetwork(h *models.Host, network string, add bool) (*models.Node, error) { + for _, nodeID := range h.Nodes { + node, err := GetNodeByID(nodeID) + if err != nil { + continue + } + if node.Network == network { + if !add { + return &node, nil + } else { + return nil, errors.New("host already part of network " + network) + } + + } + } + if !add { + return nil, errors.New("host not part of the network " + network) + } if add { newNode := models.Node{} @@ -169,15 +186,6 @@ func UpdateHostNetwork(h *models.Host, network string, add bool) (*models.Node, } return &newNode, nil } - for _, nodeID := range h.Nodes { - node, err := GetNodeByID(nodeID) - if err != nil { - return nil, err - } - if node.Network == network { - return &node, nil - } - } return nil, errors.New("failed to update host networks") }