sync changes on startup, add create relay calls on defaul host

This commit is contained in:
abhishek9686 2025-06-23 06:28:43 +05:30
parent da2c19fd9d
commit 2f5acf6742
4 changed files with 53 additions and 1 deletions

View file

@ -289,6 +289,10 @@ func CheckNetRegAndHostUpdate(networks []string, h *models.Host, relayNodeId uui
logic.CreateFailOver(*newNode)
// make host remote access gateway
logic.CreateIngressGateway(network, newNode.ID.String(), models.IngressRequest{})
logic.CreateRelay(models.RelayRequest{
NodeID: newNode.ID.String(),
NetID: network,
})
}
}
}

View file

@ -521,6 +521,10 @@ func addHostToNetwork(w http.ResponseWriter, r *http.Request) {
logic.CreateFailOver(*newNode)
// make host remote access gateway
logic.CreateIngressGateway(network, newNode.ID.String(), models.IngressRequest{})
logic.CreateRelay(models.RelayRequest{
NodeID: newNode.ID.String(),
NetID: network,
})
}
go func() {
mq.HostUpdate(&models.HostUpdate{

View file

@ -294,7 +294,7 @@ var MigrateToGws = func() {
return
}
for _, node := range nodes {
if node.IsIngressGateway || node.IsRelay {
if node.IsIngressGateway || node.IsRelay || node.IsInternetGateway {
node.IsGw = true
node.IsIngressGateway = true
node.IsRelay = true

View file

@ -36,6 +36,50 @@ func Run() {
updateAcls()
logic.MigrateToGws()
migrateToEgressV1()
resync()
}
// removes if any stale configurations from previous run.
func resync() {
nodes, _ := logic.GetAllNodes()
for _, node := range nodes {
if !node.IsGw {
if len(node.RelayedNodes) > 0 {
logic.DeleteRelay(node.Network, node.ID.String())
}
if node.IsIngressGateway {
logic.DeleteIngressGateway(node.ID.String())
}
if len(node.InetNodeReq.InetNodeClientIDs) > 0 || node.IsInternetGateway {
logic.UnsetInternetGw(&node)
logic.UpsertNode(&node)
}
}
if node.IsRelayed {
if node.RelayedBy == "" {
node.IsRelayed = false
node.InternetGwID = ""
logic.UpsertNode(&node)
}
if node.RelayedBy != "" {
// check if node exists
_, err := logic.GetNodeByID(node.ID.String())
if err != nil {
node.RelayedBy = ""
node.InternetGwID = ""
logic.UpsertNode(&node)
}
}
}
if node.InternetGwID != "" {
_, err := logic.GetNodeByID(node.ID.String())
if err != nil {
node.InternetGwID = ""
logic.UpsertNode(&node)
}
}
}
}
func assignSuperAdmin() {