1
0
mirror of https://github.com/astaxie/beego.git synced 2025-06-14 08:00:40 +00:00

Support etcd

This commit is contained in:
Ming Deng
2020-08-26 03:46:22 +00:00
parent 5b35bf6065
commit c2361170b3
20 changed files with 581 additions and 257 deletions

View File

@ -158,42 +158,14 @@ func (c *JSONConfigContainer) DefaultFloat(key string, defaultval float64) float
}
// String returns the string value for a given key.
func (c *JSONConfigContainer) String(key string) string {
func (c *JSONConfigContainer) String(key string) (string, error) {
val := c.getData(key)
if val != nil {
if v, ok := val.(string); ok {
return v
return v, nil
}
}
return ""
}
// DefaultString returns the string value for a given key.
// if err != nil return defaultval
func (c *JSONConfigContainer) DefaultString(key string, defaultval string) string {
// TODO FIXME should not use "" to replace non existence
if v := c.String(key); v != "" {
return v
}
return defaultval
}
// Strings returns the []string value for a given key.
func (c *JSONConfigContainer) Strings(key string) []string {
stringVal := c.String(key)
if stringVal == "" {
return nil
}
return strings.Split(c.String(key), ";")
}
// DefaultStrings returns the []string value for a given key.
// if err != nil return defaultval
func (c *JSONConfigContainer) DefaultStrings(key string, defaultval []string) []string {
if v := c.Strings(key); v != nil {
return v
}
return defaultval
return "", errors.New(fmt.Sprintf("config not found or is not string, key: %s", key))
}
// GetSection returns map for the given section

View File

@ -163,9 +163,9 @@ func TestJson(t *testing.T) {
case bool:
value, err = jsonconf.Bool(k)
case []string:
value = jsonconf.Strings(k)
value, err = jsonconf.Strings(k)
case string:
value = jsonconf.String(k)
value, err = jsonconf.String(k)
default:
value, err = jsonconf.DIY(k)
}
@ -179,7 +179,9 @@ func TestJson(t *testing.T) {
if err = jsonconf.Set("name", "astaxie"); err != nil {
t.Fatal(err)
}
if jsonconf.String("name") != "astaxie" {
res, _ := jsonconf.String("name")
if res != "astaxie" {
t.Fatal("get name error")
}
@ -210,7 +212,7 @@ func TestJson(t *testing.T) {
t.Error("unknown keys should return an error when expecting an interface{}")
}
if val := jsonconf.String("unknown"); val != "" {
if val, _ := jsonconf.String("unknown"); val != "" {
t.Error("unknown keys should return an empty string when expecting a String")
}