Add ability to configure object reaper interval for different executor types (#2543)
Added properties to configure object reaper interval, global and specific to exec type. OBJECT_REAPER_INTERVAL - global NEWDEPLOY_OBJECT_REAPER_INTERVAL - for new deploy type CONTAINER_OBJECT_REAPER_INTERVAL - for container type POOLMGR_OBJECT_REAPER_INTERVAL - for poolmgr
This commit is contained in:
@@ -26,6 +26,7 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/mholt/archiver/v3"
|
||||
@@ -225,3 +226,23 @@ func GetCurrentNamespace() (string, error) {
|
||||
}
|
||||
return string(body), nil
|
||||
}
|
||||
|
||||
func GetStringValueFromEnv(envVar string) (string, error) {
|
||||
v := os.Getenv(envVar)
|
||||
if v == "" {
|
||||
return v, errors.New(fmt.Sprintf("Еnvironment variable %s empty", envVar))
|
||||
}
|
||||
return v, nil
|
||||
}
|
||||
|
||||
func GetUIntValueFromEnv(envVar string) (uint, error) {
|
||||
s, err := GetStringValueFromEnv(envVar)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
value, err := strconv.ParseUint(s, 10, 32)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return uint(value), nil
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package utils
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"os"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
@@ -81,3 +82,83 @@ func TestGetChecksum(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetStringValueFromEnv(t *testing.T) {
|
||||
varName := "TEST_VAR"
|
||||
tests := []struct {
|
||||
name string
|
||||
value string
|
||||
want string
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "empty string case",
|
||||
value: "",
|
||||
want: "",
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "string case",
|
||||
value: "test sting",
|
||||
want: "test sting",
|
||||
wantErr: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
os.Setenv(varName, tt.value)
|
||||
got, err := GetStringValueFromEnv(varName)
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("GetStringValueFromEnv() error = %v, wantErr %v, got %s", err, tt.wantErr, got)
|
||||
return
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestGetUIntValueFromEnv(t *testing.T) {
|
||||
varName := "TEST_VAR"
|
||||
tests := []struct {
|
||||
name string
|
||||
value string
|
||||
want uint
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "empty string case",
|
||||
value: "",
|
||||
want: 0,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "string case",
|
||||
value: "test sting",
|
||||
want: 0,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "not uint case",
|
||||
value: "-100",
|
||||
want: 0,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "uint case",
|
||||
value: "7",
|
||||
want: 7,
|
||||
wantErr: false,
|
||||
}}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
os.Setenv(varName, tt.value)
|
||||
got, err := GetUIntValueFromEnv(varName)
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("GetUIntValueFromEnv() error = %v, wantErr %v, got %d", err, tt.wantErr, got)
|
||||
return
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user