소스 검색

add gateways

Matthew R Kasun 2 년 전
부모
커밋
4ad088ffa3
1개의 변경된 파일32개의 추가작업 그리고 0개의 파일을 삭제
  1. 32 0
      controllers/migrate.go

+ 32 - 0
controllers/migrate.go

@@ -100,6 +100,38 @@ func migrate(w http.ResponseWriter, r *http.Request) {
 	json.NewEncoder(w).Encode(&response)
 
 	slog.Info("migrated nodes")
+	// check for gateways
+	for _, node := range data.LegacyNodes {
+		if node.IsEgressGateway == "yes" {
+			egressGateway := models.EgressGatewayRequest{
+				NodeID:     node.ID,
+				Ranges:     node.EgressGatewayRanges,
+				NatEnabled: node.EgressGatewayNatEnabled,
+			}
+			if _, err := logic.CreateEgressGateway(egressGateway); err != nil {
+				logger.Log(0, "error creating egress gateway for node", node.ID, err.Error())
+			}
+		}
+		if node.IsIngressGateway == "yes" {
+			ingressGateway := models.IngressRequest{}
+			ingressNode, err := logic.CreateIngressGateway(node.Network, node.ID, ingressGateway)
+			if err != nil {
+				logger.Log(0, "error creating ingress gateway for node", node.ID, err.Error())
+			}
+			runUpdates(&ingressNode, true)
+		}
+		if node.IsRelay == "yes" && servercfg.Is_EE {
+			_, relayNode, err := logic.CreateRelay(models.RelayRequest{
+				NodeID:       node.ID,
+				NetID:        node.Network,
+				RelayedNodes: node.RelayAddrs,
+			})
+			if err != nil {
+				logger.Log(0, "error creating relay for node", node.ID, err.Error())
+			}
+			runUpdates(&relayNode, true)
+		}
+	}
 }
 
 func convertLegacyHostNode(legacy models.LegacyNode) (models.Host, models.Node) {