mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-05-24 16:41:35 -04:00
fix: cumulative env and clear command var
This commit is contained in:
@@ -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...")
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user