删除集群的时候同时删除相关节点运行日志

This commit is contained in:
刘祥超
2022-07-28 09:47:01 +08:00
parent 530954dd6c
commit 89a69e3165
5 changed files with 65 additions and 6 deletions

View File

@@ -55,14 +55,18 @@ func (this *NodeClusterDAO) EnableNodeCluster(tx *dbs.Tx, id int64) error {
}
// DisableNodeCluster 禁用条目
func (this *NodeClusterDAO) DisableNodeCluster(tx *dbs.Tx, id int64) error {
func (this *NodeClusterDAO) DisableNodeCluster(tx *dbs.Tx, clusterId int64) error {
_, err := this.Query(tx).
Pk(id).
Pk(clusterId).
Set("state", NodeClusterStateDisabled).
Update()
if err != nil {
return err
}
return SharedNodeLogDAO.DeleteNodeLogsWithCluster(tx, nodeconfigs.NodeRoleNode, clusterId)
}
// FindEnabledNodeCluster 查找集群
func (this *NodeClusterDAO) FindEnabledNodeCluster(tx *dbs.Tx, id int64) (*NodeCluster, error) {
result, err := this.Query(tx).

View File

@@ -2,4 +2,16 @@ package models
import (
_ "github.com/go-sql-driver/mysql"
"github.com/iwind/TeaGo/dbs"
"testing"
)
func TestNodeClusterDAO_DisableNodeCluster(t *testing.T) {
dbs.NotifyReady()
err := SharedNodeClusterDAO.DisableNodeCluster(nil, 46)
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}

View File

@@ -363,9 +363,35 @@ func (this *NodeLogDAO) UpdateAllNodeLogsRead(tx *dbs.Tx) error {
// DeleteNodeLogs 删除某个节点上的日志
func (this *NodeLogDAO) DeleteNodeLogs(tx *dbs.Tx, role nodeconfigs.NodeRole, nodeId int64) error {
if nodeId <= 0 {
return nil
}
_, err := this.Query(tx).
Attr("nodeId", nodeId).
Attr("role", role).
Delete()
return err
}
// DeleteNodeLogsWithCluster 删除某个集群下的所有日志
func (this *NodeLogDAO) DeleteNodeLogsWithCluster(tx *dbs.Tx, role nodeconfigs.NodeRole, clusterId int64) error {
if clusterId <= 0 {
return nil
}
var query = this.Query(tx).
Attr("role", role)
switch role {
case nodeconfigs.NodeRoleNode:
query.Where("nodeId IN (SELECT id FROM " + SharedNodeDAO.Table + " WHERE clusterId=:clusterId)")
query.Param("clusterId", clusterId)
case nodeconfigs.NodeRoleDNS:
query.Where("nodeId IN (SELECT id FROM " + SharedNSNodeDAO.Table + " WHERE clusterId=:clusterId)")
query.Param("clusterId", clusterId)
default:
return nil
}
_, err := query.Delete()
return err
}

View File

@@ -46,14 +46,18 @@ func (this *NSClusterDAO) EnableNSCluster(tx *dbs.Tx, id int64) error {
}
// DisableNSCluster 禁用条目
func (this *NSClusterDAO) DisableNSCluster(tx *dbs.Tx, id int64) error {
func (this *NSClusterDAO) DisableNSCluster(tx *dbs.Tx, clusterId int64) error {
_, err := this.Query(tx).
Pk(id).
Pk(clusterId).
Set("state", NSClusterStateDisabled).
Update()
if err != nil {
return err
}
return SharedNodeLogDAO.DeleteNodeLogsWithCluster(tx, nodeconfigs.NodeRoleDNS, clusterId)
}
// FindEnabledNSCluster 查找启用中的条目
func (this *NSClusterDAO) FindEnabledNSCluster(tx *dbs.Tx, id int64) (*NSCluster, error) {
result, err := this.Query(tx).

View File

@@ -3,4 +3,17 @@ package models
import (
_ "github.com/go-sql-driver/mysql"
_ "github.com/iwind/TeaGo/bootstrap"
"github.com/iwind/TeaGo/dbs"
"testing"
)
func TestNSClusterDAO_DisableNodeCluster(t *testing.T) {
dbs.NotifyReady()
err := SharedNSClusterDAO.DisableNSCluster(nil, 7)
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}