1
0
mirror of https://github.com/astaxie/beego.git synced 2025-06-12 08:40:39 +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

@ -26,7 +26,7 @@
//
// cnf, err := config.NewConfig("xml", "config.xml")
//
//More docs http://beego.me/docs/module/config.md
// More docs http://beego.me/docs/module/config.md
package xml
import (
@ -36,11 +36,11 @@ import (
"io/ioutil"
"os"
"strconv"
"strings"
"sync"
"github.com/astaxie/beego/pkg/infrastructure/config"
"github.com/beego/x2j"
"github.com/astaxie/beego/pkg/infrastructure/config"
)
// Config is a xml config parser and implements Config interface.
@ -144,37 +144,18 @@ func (c *ConfigContainer) DefaultFloat(key string, defaultval float64) float64 {
}
// String returns the string value for a given key.
func (c *ConfigContainer) String(key string) string {
func (c *ConfigContainer) String(key string) (string, error) {
if v, ok := c.data[key].(string); ok {
return v
return v, nil
}
return ""
return "", errors.New(fmt.Sprintf("configuration not found or not string, key: %s", key))
}
// DefaultString returns the string value for a given key.
// if err != nil return defaultval
func (c *ConfigContainer) DefaultString(key string, defaultval string) string {
v := c.String(key)
if v == "" {
return defaultval
}
return v
}
// Strings returns the []string value for a given key.
func (c *ConfigContainer) Strings(key string) []string {
v := c.String(key)
if v == "" {
return nil
}
return strings.Split(v, ";")
}
// DefaultStrings returns the []string value for a given key.
// if err != nil return defaultval
func (c *ConfigContainer) DefaultStrings(key string, defaultval []string) []string {
v := c.Strings(key)
if v == nil {
v, err := c.String(key)
if v == "" || err != nil {
return defaultval
}
return v

View File

@ -25,7 +25,7 @@ import (
func TestXML(t *testing.T) {
var (
//xml parse should incluce in <config></config> tags
// xml parse should incluce in <config></config> tags
xmlcontext = `<?xml version="1.0" encoding="UTF-8"?>
<config>
<appname>beeapi</appname>
@ -102,9 +102,9 @@ func TestXML(t *testing.T) {
case bool:
value, err = xmlconf.Bool(k)
case []string:
value = xmlconf.Strings(k)
value, err = xmlconf.Strings(k)
case string:
value = xmlconf.String(k)
value, err = xmlconf.String(k)
default:
value, err = xmlconf.DIY(k)
}
@ -119,7 +119,9 @@ func TestXML(t *testing.T) {
if err = xmlconf.Set("name", "astaxie"); err != nil {
t.Fatal(err)
}
if xmlconf.String("name") != "astaxie" {
res, _ := xmlconf.String("name")
if res != "astaxie" {
t.Fatal("get name error")
}
}