mirror of
https://github.com/gravitl/netmaker.git
synced 2026-04-23 00:17:10 +08:00
fix: persist dns nameserver node ids
This commit is contained in:
@@ -87,6 +87,9 @@ func createNs(w http.ResponseWriter, r *http.Request) {
|
||||
if req.Tags == nil {
|
||||
req.Tags = make(datatypes.JSONMap)
|
||||
}
|
||||
if req.Nodes == nil {
|
||||
req.Nodes = make(datatypes.JSONMap)
|
||||
}
|
||||
if gNs, ok := logic.GlobalNsList[req.Name]; ok {
|
||||
req.Servers = gNs.IPs
|
||||
}
|
||||
@@ -107,6 +110,7 @@ func createNs(w http.ResponseWriter, r *http.Request) {
|
||||
MatchDomains: req.MatchDomains,
|
||||
Servers: req.Servers,
|
||||
Tags: req.Tags,
|
||||
Nodes: req.Nodes,
|
||||
Status: true,
|
||||
CreatedBy: r.Header.Get("user"),
|
||||
CreatedAt: time.Now().UTC(),
|
||||
@@ -198,6 +202,9 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
|
||||
if updateNs.Tags == nil {
|
||||
updateNs.Tags = make(datatypes.JSONMap)
|
||||
}
|
||||
if updateNs.Nodes == nil {
|
||||
updateNs.Nodes = make(datatypes.JSONMap)
|
||||
}
|
||||
|
||||
ns := schema.Nameserver{ID: updateNs.ID}
|
||||
err = ns.Get(db.WithContext(r.Context()))
|
||||
@@ -239,6 +246,7 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
|
||||
ns.MatchAll = updateNs.MatchAll
|
||||
ns.Description = updateNs.Description
|
||||
ns.Name = updateNs.Name
|
||||
ns.Nodes = updateNs.Nodes
|
||||
ns.Status = updateNs.Status
|
||||
ns.UpdatedAt = time.Now().UTC()
|
||||
|
||||
|
||||
@@ -418,6 +418,18 @@ func validateNameserverReq(ns schema.Nameserver) error {
|
||||
}
|
||||
}
|
||||
}
|
||||
// check if valid broadcast peers are added
|
||||
if len(ns.Nodes) > 0 {
|
||||
for nodeID := range ns.Nodes {
|
||||
node, err := GetNodeByID(nodeID)
|
||||
if err != nil {
|
||||
return errors.New("invalid node")
|
||||
}
|
||||
if node.Network != ns.NetworkID {
|
||||
return errors.New("invalid network node")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user