From 5805b1105bd33e36cf8f94773550bf844186cf93 Mon Sep 17 00:00:00 2001
From: Malte Bauch <malte.bauch@extern.h-da.de>
Date: Mon, 17 Oct 2022 13:37:39 +0200
Subject: [PATCH] Add path and controller flags

---
 Makefile                                        |  5 ++++-
 applications/basic-interface-monitoring/http.go |  2 +-
 applications/basic-interface-monitoring/main.go | 13 +++++++++++--
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/Makefile b/Makefile
index 63557f708..88f9f38a0 100644
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,7 @@ generate-csbi-yang-models: install-tools
 	../../$(TOOLS_DIR)/go-ygot-generator-generator config.yaml gostructs.go &&\
 	go generate
 
-build: pre build-gosdn build-gosdnc build-orchestrator build-venv-manager build-arista-routing-engine-app build-hostname-checker-app
+build: pre build-gosdn build-gosdnc build-orchestrator build-venv-manager build-arista-routing-engine-app build-hostname-checker-app build-basic-interface-monitoring-app
 
 build-gosdn: pre
 	$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/gosdn ./controller/cmd/gosdn
@@ -76,6 +76,9 @@ build-arista-routing-engine-app: pre
 build-hostname-checker-app: pre
 	$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/hostname-checker ./applications/hostname-checker
 
+build-basic-interface-monitoring-app: pre
+	$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/basic-interface-monitoring ./applications/basic-interface-monitoring
+
 containerize-all: containerize-gosdn containerize-gosdnc containerize-orchestrator containerize-target
 
 containerize-gosdn:
diff --git a/applications/basic-interface-monitoring/http.go b/applications/basic-interface-monitoring/http.go
index 76989f85b..6e7d35f86 100644
--- a/applications/basic-interface-monitoring/http.go
+++ b/applications/basic-interface-monitoring/http.go
@@ -12,7 +12,7 @@ var clientChannels = make(map[chan []byte]bool)
 // StartHTTPServer starts the HTTP server to provide the monitoring page.
 func StartHTTPServer() error {
 	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
-		http.ServeFile(w, r, "webpage/index.html")
+		http.ServeFile(w, r, indexPath)
 	})
 	http.HandleFunc("/sse", sseHandler)
 
diff --git a/applications/basic-interface-monitoring/main.go b/applications/basic-interface-monitoring/main.go
index 5b6375812..5f451c99a 100644
--- a/applications/basic-interface-monitoring/main.go
+++ b/applications/basic-interface-monitoring/main.go
@@ -1,6 +1,7 @@
 package main
 
 import (
+	"flag"
 	"os"
 
 	"code.fbi.h-da.de/danet/gosdn/application-framework/event"
@@ -8,8 +9,16 @@ import (
 	"github.com/sirupsen/logrus"
 )
 
+var controllerAddress string
+var indexPath string
+
 func main() {
-	queueCredentials, err := registration.Register("localhost:55055", "basic-interface-monitoring", "SecurePresharedToken")
+	flag.StringVar(&indexPath, "path", "webpage/index.html", "path to the webpage index.html file")
+	flag.StringVar(&controllerAddress, "controller-address", "localhost:55055", "the address to the controller")
+
+	flag.Parse()
+
+	queueCredentials, err := registration.Register(controllerAddress, "basic-interface-monitoring", "SecurePresharedToken")
 	if err != nil {
 		logrus.Errorf("failed to register application on control plane. %v", err)
 		os.Exit(1)
@@ -29,5 +38,5 @@ func main() {
 		stopChannel:                 make(chan os.Signal, 1),
 	}
 
-	app.Run("localhost:55055")
+	app.Run(controllerAddress)
 }
-- 
GitLab