创建集群时自动创建缓存策略和WAF策略

This commit is contained in:
刘祥超
2021-08-25 11:18:37 +08:00
parent e4f0dafc1a
commit fc38a6ab7e
7 changed files with 187 additions and 7 deletions

File diff suppressed because one or more lines are too long

View File

@@ -3,6 +3,7 @@ package setup
import (
"encoding/json"
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeAPI/internal/errors"
"github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
@@ -225,6 +226,40 @@ func (this *SQLExecutor) checkCluster(db *dbs.DB) error {
return err
}
// 默认缓存策略
models.SharedHTTPCachePolicyDAO = models.NewHTTPCachePolicyDAO()
models.SharedHTTPCachePolicyDAO.Instance = db
policyId, err := models.SharedHTTPCachePolicyDAO.CreateDefaultCachePolicy(nil, "默认集群")
if err != nil {
return err
}
_, err = db.Exec("UPDATE edgeNodeClusters SET cachePolicyId=?", policyId)
if err != nil {
return err
}
// 默认WAf策略
models.SharedHTTPFirewallPolicyDAO = models.NewHTTPFirewallPolicyDAO()
models.SharedHTTPFirewallPolicyDAO.Instance = db
models.SharedHTTPFirewallRuleGroupDAO = models.NewHTTPFirewallRuleGroupDAO()
models.SharedHTTPFirewallRuleGroupDAO.Instance = db
models.SharedHTTPFirewallRuleSetDAO = models.NewHTTPFirewallRuleSetDAO()
models.SharedHTTPFirewallRuleSetDAO.Instance = db
models.SharedHTTPFirewallRuleDAO = models.NewHTTPFirewallRuleDAO()
models.SharedHTTPFirewallRuleDAO.Instance = db
policyId, err = models.SharedHTTPFirewallPolicyDAO.CreateDefaultFirewallPolicy(nil, "默认集群")
if err != nil {
return err
}
_, err = db.Exec("UPDATE edgeNodeClusters SET httpFirewallPolicyId=?", policyId)
if err != nil {
return err
}
return nil
}

View File

@@ -18,6 +18,24 @@ func TestSQLExecutor_Run(t *testing.T) {
t.Log("ok")
}
func TestSQLExecutor_checkCluster(t *testing.T) {
executor := NewSQLExecutor(&dbs.DBConfig{
Driver: "mysql",
Prefix: "edge",
Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge_new?charset=utf8mb4&multiStatements=true",
})
db, err := dbs.NewInstanceFromConfig(executor.dbConfig)
if err != nil {
t.Fatal(err)
}
err = executor.checkCluster(db)
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}
func TestSQLExecutor_checkMetricItems(t *testing.T) {
executor := NewSQLExecutor(&dbs.DBConfig{
Driver: "mysql",