From 49b3ba39c5a80401e23e64bb4bb293e85bafee45 Mon Sep 17 00:00:00 2001 From: Abdul Samad Date: Tue, 18 Feb 2025 20:09:06 +0530 Subject: [PATCH 1/2] add public ip and hostname to dbsync payload --- src/pkg/dbSync.go | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/pkg/dbSync.go b/src/pkg/dbSync.go index 34d9c8b..0084971 100644 --- a/src/pkg/dbSync.go +++ b/src/pkg/dbSync.go @@ -4,9 +4,11 @@ import ( "bytes" "database/sql" "encoding/json" - "io/ioutil" + "io" "log" + "net" "net/http" + "os" "strconv" ) @@ -35,6 +37,11 @@ func FetchDatabaseStatus(db *sql.DB, dbName string, config DBConfig) error { } log.Printf("Database: %s Active: %d seconds", dbName, uptime) + hostname, err := os.Hostname() + if err != nil { + log.Printf("Cannot retrieve hostname") + } + // Sync database information with the API payload := map[string]interface{}{ "orgId": orgID, @@ -45,6 +52,8 @@ func FetchDatabaseStatus(db *sql.DB, dbName string, config DBConfig) error { "host": config.Host, "status": status, "uuid": config.APIKey, + "publicIp": GetOutboundIP(), + "hostname": hostname, } payloadBytes, err := json.Marshal(payload) @@ -72,7 +81,7 @@ func FetchDatabaseStatus(db *sql.DB, dbName string, config DBConfig) error { } defer httpResp.Body.Close() - body, err := ioutil.ReadAll(httpResp.Body) + body, err := io.ReadAll(httpResp.Body) if err != nil { log.Printf("Error while reading response body: %v", err) @@ -80,3 +89,14 @@ func FetchDatabaseStatus(db *sql.DB, dbName string, config DBConfig) error { log.Default().Printf("Response from external service: %v", string(body)) return nil } + +func GetOutboundIP() net.IP { + conn, err := net.Dial("udp", "8.8.8.8:80") + if err != nil { + log.Fatal(err) + } + defer conn.Close() + + localAddr := conn.LocalAddr().(*net.UDPAddr) + return localAddr.IP +} From 7eebc8cf1a43cf67a20d2a4abfc1a7b490cbb4b6 Mon Sep 17 00:00:00 2001 From: Abdul Samad Date: Wed, 19 Feb 2025 23:56:58 +0530 Subject: [PATCH 2/2] added log message --- src/pkg/dbSync.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pkg/dbSync.go b/src/pkg/dbSync.go index 0084971..7bf81e6 100644 --- a/src/pkg/dbSync.go +++ b/src/pkg/dbSync.go @@ -38,9 +38,11 @@ func FetchDatabaseStatus(db *sql.DB, dbName string, config DBConfig) error { log.Printf("Database: %s Active: %d seconds", dbName, uptime) hostname, err := os.Hostname() + outboundIP := GetOutboundIP() if err != nil { log.Printf("Cannot retrieve hostname") } + log.Printf("Retrieved hostname and outboundIP: %s, %s", hostname, outboundIP) // Sync database information with the API payload := map[string]interface{}{ @@ -52,7 +54,7 @@ func FetchDatabaseStatus(db *sql.DB, dbName string, config DBConfig) error { "host": config.Host, "status": status, "uuid": config.APIKey, - "publicIp": GetOutboundIP(), + "publicIp": outboundIP, "hostname": hostname, }