conf.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package conf
  2. import (
  3. "context"
  4. "encoding/json"
  5. "go-common/library/cache/redis"
  6. "go-common/library/database/sql"
  7. ecode "go-common/library/ecode/tip"
  8. "go-common/library/log"
  9. bm "go-common/library/net/http/blademaster"
  10. "go-common/library/net/http/blademaster/middleware/verify"
  11. "go-common/library/net/rpc/warden"
  12. "go-common/library/net/trace"
  13. "go-common/library/queue/databus"
  14. "github.com/BurntSushi/toml"
  15. )
  16. var (
  17. // Conf config
  18. Conf = &Config{}
  19. // UnameConf .
  20. UnameConf = &UnameConfig{}
  21. )
  22. // UnameConfig .
  23. type UnameConfig struct {
  24. ForbiddenUname []string `json:"forbidden_uname"`
  25. unameSet map[string]bool
  26. }
  27. // UnameForbidden 判断uname是否被禁用
  28. func (c *UnameConfig) UnameForbidden(uname string) bool {
  29. _, exists := c.unameSet[uname]
  30. return exists
  31. }
  32. // Set .
  33. func (c *UnameConfig) Set(text string) error {
  34. log.Infow(context.Background(), "log", "reload uname config")
  35. if err := json.Unmarshal([]byte(text), &UnameConf); err != nil {
  36. panic(err)
  37. }
  38. c.unameSet = make(map[string]bool)
  39. for _, uname := range c.ForbiddenUname {
  40. c.unameSet[uname] = true
  41. }
  42. log.Infow(context.Background(), "log", "reload uname config succ", "uname_size", len(c.unameSet))
  43. return nil
  44. }
  45. // Config .
  46. type Config struct {
  47. Log *log.Config
  48. BM *bm.ServerConfig
  49. Verify *verify.Config
  50. Tracer *trace.Config
  51. Redis *redis.Config
  52. MySQL *sql.Config
  53. Ecode *ecode.Config
  54. GRPC *warden.ServerConfig
  55. GRPCClient map[string]*GRPCConf
  56. Databus map[string]*databus.Config
  57. }
  58. //GRPCConf .
  59. type GRPCConf struct {
  60. WardenConf *warden.ClientConfig
  61. Addr string
  62. }
  63. // Set .
  64. func (c *Config) Set(text string) error {
  65. log.Infow(context.Background(), "log", "reload config")
  66. if _, err := toml.Decode(text, c); err != nil {
  67. panic(err)
  68. }
  69. return nil
  70. }