fix: cumulative env and clear command var

This commit is contained in:
Saw-jan
2024-07-05 15:47:43 +05:45
parent 733f1852ea
commit 7f0a1b0cdd
2 changed files with 23 additions and 14 deletions

View File

@@ -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...")

View File

@@ -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 {