From 052fe5fb54c324c297771f5e810be7b279287abc Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期四, 22 十月 2020 16:34:43 +0800
Subject: [PATCH] add SyncVirtualIp

---
 agent.go |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/agent.go b/agent.go
index 5d86f4e..a2ae892 100644
--- a/agent.go
+++ b/agent.go
@@ -44,6 +44,7 @@
 	QueryEventUpdateDBData = "UpdateDBData"
 	UserEventSyncSql	   = "SyncSql"
 	UserEventSyncDbTablePersonCache	   = "SyncCache"
+	UserEventSyncVirtualIp = "SyncVirtualIp" //婕傜Щip淇敼
 )
 
 // Agent warps the serf agent
@@ -116,6 +117,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"
@@ -142,7 +144,7 @@
 					logger.Info("ev.LTime:",ev.LTime,"userEvent exec ",sqlUe.Sql,",Result:",flag,", err:",e)
 					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"
@@ -151,12 +153,15 @@
 					if e != nil {
 						logErr = e.Error()
 					}
-					ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+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
 		}
 
 
@@ -251,7 +256,7 @@
 
 					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 {
@@ -263,7 +268,7 @@
 					}
 
 
-					ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+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")
@@ -286,7 +291,7 @@
 				logger.Info("EventMemberLeave,current Members:",ev.Members)
 				logLT := ""
 				logT := time.Now().Format("2006-01-02 15:04:05")
-				logSql := leaveSql
+				logSql := strings.ReplaceAll(leaveSql, "'","''")
 				logResult := "0"
 				if flag {
 					logResult = "1"
@@ -295,7 +300,7 @@
 				if e != nil {
 					logErr = e.Error()
 				}
-				ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+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 {
@@ -307,7 +312,7 @@
 				logger.Info("EventMemberJoin,current Members:",ev.Members)
 				logLT := ""
 				logT := time.Now().Format("2006-01-02 15:04:05")
-				logSql := joinSql
+				logSql := strings.ReplaceAll(joinSql, "'", "''")
 				logResult := "0"
 				if flag {
 					logResult = "1"
@@ -316,7 +321,7 @@
 				if e != nil {
 					logErr = e.Error()
 				}
-				ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+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
 		}

--
Gitblit v1.8.0