From 12f52d5835388f22fdecb2a890d58e5425688c8e Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期一, 15 五月 2023 17:43:16 +0800
Subject: [PATCH] add default tag

---
 agent.go |   32 ++++++++++++++++++++------------
 1 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/agent.go b/agent.go
index 055d1d6..3330119 100644
--- a/agent.go
+++ b/agent.go
@@ -36,6 +36,7 @@
 	"basic.com/valib/serf.git/cmd/serf/command/agent"
 	//"github.com/apache/servicecomb-service-center/pkg/log"
 	"basic.com/valib/logger.git"
+	"github.com/satori/go.uuid"
 )
 
 const (
@@ -43,6 +44,7 @@
 	QueryEventUpdateDBData = "UpdateDBData"
 	UserEventSyncSql	   = "SyncSql"
 	UserEventSyncDbTablePersonCache	   = "SyncCache"
+	UserEventSyncVirtualIp = "SyncVirtualIp" //婕傜Щip淇敼
 )
 
 // Agent warps the serf agent
@@ -58,6 +60,7 @@
 	NodeID      string `json:"nodeID"`
 	NodeAddress string `json:"nodeAddress"`
 	IsAlive     int    `json:"isAlive"`
+	Role        string `json:"role"`
 }
 
 // Create create serf agent with config
@@ -115,6 +118,7 @@
 }
 
 var SyncDbTablePersonCacheChan = make(chan []byte,512)
+var SyncVirtualIpChan = make(chan []byte, 512)
 
 // HandleEvent Handles serf.EventMemberJoin events,
 // which will wait for members to join until the number of group members is equal to "groupExpect"
@@ -139,9 +143,9 @@
 				go func() {
 					flag, e := ExecuteSqlByGorm(sqlUe.Sql)
 					logger.Info("ev.LTime:",ev.LTime,"userEvent exec ",sqlUe.Sql,",Result:",flag,", err:",e)
-					logId := strconv.Itoa(int(ev.LTime))
+					logLT := strconv.Itoa(int(ev.LTime))
 					logT := time.Now().Format("2006-01-02 15:04:05")
-					logSql := strings.Join(sqlUe.Sql, ";")
+					logSql := strings.ReplaceAll(strings.Join(sqlUe.Sql, ";"), "'", "''")
 					logResult := "0"
 					if flag {
 						logResult = "1"
@@ -150,12 +154,15 @@
 					if e != nil {
 						logErr = e.Error()
 					}
-					ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+sqlUe.Owner+"',"+logResult+",'"+logErr+"')"})
+					ExecuteSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+logT+"','"+logSql+"','"+sqlUe.Owner+"',"+logResult+",'"+logErr+"')"})
 				}()
 			}
 		} else if ev.Name == UserEventSyncDbTablePersonCache {
 			logger.Info("LTime:",ev.LTime,",ev.Payload.len:",len(ev.Payload))
 			SyncDbTablePersonCacheChan <- ev.Payload
+		} else if ev.Name == UserEventSyncVirtualIp {
+			logger.Info("LTime:", ev.LTime, " Recevie virtualIp change")
+			SyncVirtualIpChan <- ev.Payload
 		}
 
 
@@ -248,9 +255,9 @@
 					addr := targetNode.Addr.String() + ":" + strconv.Itoa(TcpTransportPort)
 					sendErr := rawSendTcpMsg(addr, bytesReturn)
 
-					logId := strconv.Itoa(int(ev.LTime))
+					logLT := strconv.Itoa(int(ev.LTime))
 					logT := time.Now().Format("2006-01-02 15:04:05")
-					logSql := "QueryEventUpdateDBData from "+targetNode.Name
+					logSql := strings.ReplaceAll("QueryEventUpdateDBData from "+targetNode.Name,"'","''")
 					logResult := "0"
 					logErr := ""
 					if sendErr ==nil {
@@ -262,7 +269,7 @@
 					}
 
 
-					ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+targetNode.Name+"',"+logResult+",'"+logErr+"')"})
+					ExecuteSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+logT+"','"+logSql+"','"+targetNode.Name+"',"+logResult+",'"+logErr+"')"})
 				}()
 			} else {
 				logger.Debug("targetNode is nil")
@@ -283,9 +290,9 @@
 				flag,e := ExecuteSqlByGorm([]string{ leaveSql })
 
 				logger.Info("EventMemberLeave,current Members:",ev.Members)
-				logId := ""
+				logLT := ""
 				logT := time.Now().Format("2006-01-02 15:04:05")
-				logSql := leaveSql
+				logSql := strings.ReplaceAll(leaveSql, "'","''")
 				logResult := "0"
 				if flag {
 					logResult = "1"
@@ -294,7 +301,7 @@
 				if e != nil {
 					logErr = e.Error()
 				}
-				ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+leaveMember.Name+"',"+logResult+",'"+logErr+"')"})
+				ExecuteSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+logT+"','"+logSql+"','"+leaveMember.Name+"',"+logResult+",'"+logErr+"')"})
 			}
 			return
 		} else if event.EventType() == serf.EventMemberJoin {
@@ -304,9 +311,9 @@
 				flag,e := ExecuteSqlByGorm([]string{joinSql})
 
 				logger.Info("EventMemberJoin,current Members:",ev.Members)
-				logId := ""
+				logLT := ""
 				logT := time.Now().Format("2006-01-02 15:04:05")
-				logSql := joinSql
+				logSql := strings.ReplaceAll(joinSql, "'", "''")
 				logResult := "0"
 				if flag {
 					logResult = "1"
@@ -315,7 +322,7 @@
 				if e != nil {
 					logErr = e.Error()
 				}
-				ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+leaveMember.Name+"',"+logResult+",'"+logErr+"')"})
+				ExecuteSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+logT+"','"+logSql+"','"+leaveMember.Name+"',"+logResult+",'"+logErr+"')"})
 			}
 			return
 		}
@@ -756,6 +763,7 @@
 		node.NodeAddress = mb.Addr.String() + ":" + strconv.Itoa(int(mb.Port))
 		node.IsAlive = int(mb.Status)
 		node.ClusterID = mb.Tags[tagKeyClusterID]
+		node.Role = mb.Tags["role"]
 
 		nodes = append(nodes, node)
 	}

--
Gitblit v1.8.0