admin.go 993 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package api
  2. import (
  3. "strings"
  4. "github.com/grafana/grafana/pkg/bus"
  5. "github.com/grafana/grafana/pkg/middleware"
  6. m "github.com/grafana/grafana/pkg/models"
  7. "github.com/grafana/grafana/pkg/setting"
  8. )
  9. func AdminGetSettings(c *middleware.Context) {
  10. settings := make(map[string]interface{})
  11. for _, section := range setting.Cfg.Sections() {
  12. jsonSec := make(map[string]interface{})
  13. settings[section.Name()] = jsonSec
  14. for _, key := range section.Keys() {
  15. keyName := key.Name()
  16. value := key.Value()
  17. if strings.Contains(keyName, "secret") || strings.Contains(keyName, "password") || (strings.Contains(keyName, "provider_config")) {
  18. value = "************"
  19. }
  20. jsonSec[keyName] = value
  21. }
  22. }
  23. c.JSON(200, settings)
  24. }
  25. func AdminGetStats(c *middleware.Context) {
  26. statsQuery := m.GetAdminStatsQuery{}
  27. if err := bus.Dispatch(&statsQuery); err != nil {
  28. c.JsonApiErr(500, "Failed to get admin stats from database", err)
  29. return
  30. }
  31. c.JSON(200, statsQuery.Result)
  32. }