From 7f0a1b0cdd52d01604b2dfcee7be119229fb9e7c Mon Sep 17 00:00:00 2001 From: Saw-jan Date: Fri, 5 Jul 2024 15:47:43 +0545 Subject: [PATCH] fix: cumulative env and clear command var --- tests/ociswrapper/ocis/ocis.go | 21 ++++++++++--------- tests/ociswrapper/wrapper/handlers/handler.go | 16 ++++++++++---- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/tests/ociswrapper/ocis/ocis.go b/tests/ociswrapper/ocis/ocis.go index 2957294b7b..f3ccb6b66b 100644 --- a/tests/ociswrapper/ocis/ocis.go +++ b/tests/ociswrapper/ocis/ocis.go @@ -22,8 +22,9 @@ import ( var cmd *exec.Cmd var retryCount = 0 var stopSignal = false +var EnvConfigs = []string{} -func Start(envMap map[string]any) { +func Start(envMap []string) { // wait for the log scanner to finish var wg sync.WaitGroup wg.Add(2) @@ -34,14 +35,11 @@ func Start(envMap map[string]any) { } cmd = exec.Command(config.Get("bin"), "server") - cmd.Env = os.Environ() - var environments []string - if envMap != nil { - for key, value := range envMap { - environments = append(environments, fmt.Sprintf("%s=%v", key, value)) - } + if envMap == nil { + cmd.Env = append(os.Environ(), EnvConfigs...) + } else { + cmd.Env = append(os.Environ(), envMap...) } - cmd.Env = append(cmd.Env, environments...) logs, err := cmd.StderrPipe() if err != nil { @@ -125,10 +123,13 @@ func Stop() (bool, string) { } } cmd.Process.Wait() - return waitUntilCompleteShutdown() + success, message := waitUntilCompleteShutdown() + + cmd = nil + return success, message } -func Restart(envMap map[string]any) (bool, string) { +func Restart(envMap []string) (bool, string) { Stop() log.Println("Restarting oCIS server...") diff --git a/tests/ociswrapper/wrapper/handlers/handler.go b/tests/ociswrapper/wrapper/handlers/handler.go index 92db245a95..9f3cc6b03f 100644 --- a/tests/ociswrapper/wrapper/handlers/handler.go +++ b/tests/ociswrapper/wrapper/handlers/handler.go @@ -3,10 +3,12 @@ package handlers import ( "encoding/json" "errors" + "fmt" "io" "net/http" "ociswrapper/common" "ociswrapper/ocis" + "os" ) type BasicResponse struct { @@ -79,15 +81,21 @@ func SetEnvHandler(res http.ResponseWriter, req *http.Request) { return } - environments, err := parseJsonBody(req.Body) + envBody, err := parseJsonBody(req.Body) if err != nil { http.Error(res, "Bad request", http.StatusBadRequest) return } + var envMap []string + for key, value := range envBody { + envMap = append(envMap, fmt.Sprintf("%s=%v", key, value)) + } + ocis.EnvConfigs = append(ocis.EnvConfigs, envMap...) + var message string - success, _ := ocis.Restart(environments) + success, _ := ocis.Restart(ocis.EnvConfigs) if success { message = "oCIS configured successfully" } else { @@ -104,8 +112,8 @@ func RollbackHandler(res http.ResponseWriter, req *http.Request) { } var message string - - success, _ := ocis.Restart(nil) + ocis.EnvConfigs = []string{} + success, _ := ocis.Restart(os.Environ()) if success { message = "oCIS configuration rolled back successfully" } else {