mirror of
https://github.com/gravitl/netmaker.git
synced 2026-04-23 00:17:10 +08:00
c3c3ed1fb8
* NM-254: add bulk delete apis for users, hosts, nodes and optimise postgres connection settings * NM-254: rm debug logs * NM-254: add bulk delete apis, remove old acl code * NM-254: rm unused flag * NM-254: fix bulk delete bugs, add security and performance improvements - Fix host delete notifying peers before confirming deletion from DB - Fix self-delete vulnerability in bulk user delete - Fix DissasociateNodeFromHost failing when host.Nodes is empty - Fix AssociateNodeToHost/DissasociateNodeFromHost stale read race - Hoist GetAllExtClients outside loop in bulk user delete/status - Move initializeUUID outside master-pod guard for HA correctness * NM-254: return 202 Accepted for async bulk APIs, fix relay allowedIPs and host association error handling - Change all bulk endpoints (hosts, nodes, users, ext clients) from 200 OK to 202 Accepted to correctly signal async processing - Add ReturnAcceptedResponse helper in logic/errors.go - Fix GetAllowedIpsForRelayed returning empty allowedIPs slice, restoring relay connectivity - Make AssociateNodeToHost and DissasociateNodeFromHost return an error when the host DB re-fetch fails instead of silently using stale data - Add bulk-apis.md documenting all five bulk endpoints * NM-254: rm coredns container * NM-254: add bulk apis for node,extclient status, add activity logs to bulk apis * NM-254: add bulk api for connection toggle * NM-254: add network check * Update controllers/hosts.go Co-authored-by: tenki-reviewer[bot] <262613592+tenki-reviewer[bot]@users.noreply.github.com> * NM-254: optimise bulk extclient deletion --------- Co-authored-by: tenki-reviewer[bot] <262613592+tenki-reviewer[bot]@users.noreply.github.com>
62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
package serverctl
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/gravitl/netmaker/db"
|
|
"github.com/gravitl/netmaker/logic"
|
|
"github.com/gravitl/netmaker/schema"
|
|
"golang.org/x/exp/slog"
|
|
)
|
|
|
|
const (
|
|
// NETMAKER_BINARY_NAME - name of netmaker binary
|
|
NETMAKER_BINARY_NAME = "netmaker"
|
|
)
|
|
|
|
func SetDefaults() error {
|
|
if err := setNodeDefaults(); err != nil {
|
|
return err
|
|
}
|
|
|
|
if err := setUserDefaults(); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// setNodeDefaults - runs through each node and set defaults
|
|
func setNodeDefaults() error {
|
|
// upgraded systems will not have ACL's set, which is why we need this function
|
|
nodes, err := logic.GetAllNodes()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for i := range nodes {
|
|
logic.SetNodeDefaults(&nodes[i], false)
|
|
logic.UpsertNode(&nodes[i])
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func setUserDefaults() error {
|
|
users, err := logic.GetUsers()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, user := range users {
|
|
updateUser := &schema.User{Username: user.UserName}
|
|
err = updateUser.Get(db.WithContext(context.TODO()))
|
|
if err != nil {
|
|
slog.Error("could not get user", "user", updateUser.Username, "error", err.Error())
|
|
}
|
|
logic.SetUserDefaults(updateUser)
|
|
err = logic.UpsertUser(*updateUser)
|
|
if err != nil {
|
|
slog.Error("could not update user", "user", updateUser.Username, "error", err.Error())
|
|
}
|
|
}
|
|
return nil
|
|
}
|