修复默认生成的集群没有开启节点和服务DNS同步的Bug

This commit is contained in:
刘祥超
2022-10-23 09:02:45 +08:00
parent a8ec959c70
commit a5f30b1573
2 changed files with 62 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ package setup
import ( import (
"encoding/json" "encoding/json"
"github.com/TeaOSLab/EdgeAPI/internal/errors" "github.com/TeaOSLab/EdgeAPI/internal/errors"
"github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs"
"github.com/iwind/TeaGo/dbs" "github.com/iwind/TeaGo/dbs"
@@ -141,5 +142,37 @@ func upgradeV0_5_3(db *dbs.DB) error {
// v0.5.6 // v0.5.6
func upgradeV0_5_6(db *dbs.DB) error { func upgradeV0_5_6(db *dbs.DB) error {
// 修复默认集群的DNS设置
{
var id = 1
clusterMap, err := db.FindOne("SELECT dns FROM edgeNodeClusters WHERE id=? AND state=1", id)
if err != nil {
return err
}
if len(clusterMap) > 0 {
var dnsString = clusterMap.GetString("dns")
if len(dnsString) > 0 && dnsString != "null" {
var dnsData = []byte(dnsString)
var dnsConfig = &dnsconfigs.ClusterDNSConfig{
CNAMEAsDomain: true,
IncludingLnNodes: true,
}
err = json.Unmarshal(dnsData, dnsConfig)
if err == nil && !dnsConfig.NodesAutoSync && !dnsConfig.ServersAutoSync {
dnsConfig.NodesAutoSync = true
dnsConfig.ServersAutoSync = true
dnsConfigJSON, err := json.Marshal(dnsConfig)
if err != nil {
return err
}
_, err = db.Exec("UPDATE edgeNodeClusters SET dns=? WHERE id=?", dnsConfigJSON, id)
if err != nil {
return err
}
}
}
}
}
return nil return nil
} }

View File

@@ -0,0 +1,29 @@
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
//go:build !plus
package setup
import (
"github.com/iwind/TeaGo/dbs"
"testing"
)
func TestUpgradeSQLData_v0_5_6(t *testing.T) {
db, err := dbs.NewInstanceFromConfig(&dbs.DBConfig{
Driver: "mysql",
Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge?charset=utf8mb4&timeout=30s",
Prefix: "edge",
})
if err != nil {
t.Fatal(err)
}
defer func() {
_ = db.Close()
}()
err = upgradeV0_5_6(db)
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}