package subconfigs import ( "fmt" "git.x2erp.com/qdy/go-base/config/core" ) // ConfigureConfig 配置中心配置 type ConfigureConfig struct { core.BaseConfig Url string `yaml:"url" desc:"配置中心地址"` Token string `yaml:"token" desc:"访问配置中心的token"` Username string `yaml:"username" desc:"Basic认证用户名"` Password string `yaml:"password" desc:"Basic认证密码"` } func (c *ConfigureConfig) Description() string { return "configure访问配置中心的配置" } func NewConfgigureConfig() *ConfigureConfig { return &ConfigureConfig{} } func (c *ConfigureConfig) SetDefaults() { c.Url = "http://localhost:8080" c.Token = "123" } func (c *ConfigureConfig) Load(data map[string]interface{}) error { return c.LoadFromYAML(data, c) } func (c *ConfigureConfig) Validate() error { if c.Url == "" { return fmt.Errorf("configure center url must be positive") } // 至少提供一种认证方式 if c.Token == "" && (c.Username == "" || c.Password == "") { return fmt.Errorf("configure center authentication required: provide either token or username/password") } return nil } func (c *ConfigureConfig) IsConfigured() bool { return c.Url != "" } // 自动注册 func init() { core.Register("configure", &ConfigureConfig{}) }