sosreport.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package installationinfo
  2. import (
  3. "fmt"
  4. config "github.com/OliveTin/OliveTin/internal/config"
  5. sv "github.com/OliveTin/OliveTin/internal/stringvariables"
  6. "gopkg.in/yaml.v3"
  7. "time"
  8. )
  9. var Config *config.Config
  10. type sosReportConfig struct {
  11. CountOfActions int
  12. CountOfDashboards int
  13. LogLevel string
  14. ListenAddressSingleHTTPFrontend string
  15. ListenAddressWebUI string
  16. ListenAddressRestActions string
  17. ListenAddressGrpcActions string
  18. Timezone string
  19. TimeNow string
  20. ConfigDirectory string
  21. WebuiDirectory string
  22. ThemesDirectory string
  23. }
  24. func configToSosreport(cfg *config.Config) *sosReportConfig {
  25. return &sosReportConfig{
  26. CountOfActions: len(cfg.Actions),
  27. CountOfDashboards: len(cfg.Dashboards),
  28. LogLevel: cfg.LogLevel,
  29. ListenAddressSingleHTTPFrontend: cfg.ListenAddressSingleHTTPFrontend,
  30. ListenAddressWebUI: cfg.ListenAddressWebUI,
  31. ListenAddressRestActions: cfg.ListenAddressRestActions,
  32. ListenAddressGrpcActions: cfg.ListenAddressGrpcActions,
  33. Timezone: time.Now().Location().String(),
  34. TimeNow: time.Now().String(),
  35. ConfigDirectory: cfg.GetDir(),
  36. WebuiDirectory: sv.Get("internal.webuidir"),
  37. ThemesDirectory: sv.Get("internal.themesdir"),
  38. }
  39. }
  40. func GetSosReport() string {
  41. ret := ""
  42. ret += "### SOSREPORT START (copy all text to SOSREPORT END)\n"
  43. out, _ := yaml.Marshal(Build)
  44. ret += fmt.Sprintf("# Build: \n%+v\n", string(out))
  45. out, _ = yaml.Marshal(Runtime)
  46. ret += fmt.Sprintf("# Runtime:\n%+v\n", string(out))
  47. out, _ = yaml.Marshal(configToSosreport(Config))
  48. ret += fmt.Sprintf("# Config:\n%+v\n", string(out))
  49. ret += "### SOSREPORT END (copy all text from SOSREPORT START)\n"
  50. return ret
  51. }