Selaa lähdekoodia

setup event channel and logger

abhishek9686 4 kuukautta sitten
vanhempi
commit
f748528785
4 muutettua tiedostoa jossa 32 lisäystä ja 3 poistoa
  1. 3 0
      logic/telemetry.go
  2. 1 2
      pro/controllers/events.go
  3. 3 1
      pro/initialize.go
  4. 25 0
      pro/logic/events.go

+ 3 - 0
logic/telemetry.go

@@ -7,6 +7,7 @@ import (
 
 	"github.com/gravitl/netmaker/database"
 	"github.com/gravitl/netmaker/logger"
+	"github.com/gravitl/netmaker/schema"
 
 	"github.com/gravitl/netmaker/models"
 	"github.com/gravitl/netmaker/servercfg"
@@ -20,6 +21,8 @@ var (
 	telServerRecord = models.Telemetry{}
 )
 
+var LogEvent = func(a schema.Activity) {}
+
 // posthog_pub_key - Key for sending data to PostHog
 const posthog_pub_key = "phc_1vEXhPOA1P7HP5jP2dVU9xDTUqXHAelmtravyZ1vvES"
 

+ 1 - 2
pro/controllers/activity.go → pro/controllers/events.go

@@ -9,8 +9,7 @@ import (
 	"github.com/gravitl/netmaker/schema"
 )
 
-func ActivityHandlers(r *mux.Router) {
-
+func EventHandlers(r *mux.Router) {
 	r.HandleFunc("/api/v1/activity", logic.SecurityCheck(true, http.HandlerFunc(listActivity))).Methods(http.MethodGet)
 }
 

+ 3 - 1
pro/initialize.go

@@ -34,7 +34,7 @@ func InitPro() {
 		proControllers.FailOverHandlers,
 		proControllers.InetHandlers,
 		proControllers.RacHandlers,
-		proControllers.ActivityHandlers,
+		proControllers.EventHandlers,
 	)
 	controller.ListRoles = proControllers.ListRoles
 	logic.EnterpriseCheckFuncs = append(logic.EnterpriseCheckFuncs, func() {
@@ -94,6 +94,7 @@ func InitPro() {
 		proLogic.LoadNodeMetricsToCache()
 		proLogic.InitFailOverCache()
 		email.Init()
+		proLogic.EventWatcher()
 	})
 	logic.ResetFailOver = proLogic.ResetFailOver
 	logic.ResetFailedOverPeer = proLogic.ResetFailedOverPeer
@@ -140,6 +141,7 @@ func InitPro() {
 	logic.GetNodeStatus = proLogic.GetNodeStatus
 	logic.InitializeAuthProvider = auth.InitializeAuthProvider
 	logic.EmailInit = email.Init
+	logic.LogEvent = proLogic.LogEvent
 }
 
 func retrieveProLogo() string {

+ 25 - 0
pro/logic/events.go

@@ -0,0 +1,25 @@
+package logic
+
+import (
+	"context"
+
+	"github.com/gravitl/netmaker/db"
+	"github.com/gravitl/netmaker/schema"
+)
+
+var EventActivityCh = make(chan schema.Activity, 100)
+
+func LogEvent(a schema.Activity) {
+	EventActivityCh <- a
+}
+
+func EventWatcher() {
+
+	for e := range EventActivityCh {
+		if e.ID == "CLOSE" {
+			return
+		}
+		e.Create(db.WithContext(context.TODO()))
+	}
+
+}