machines_table.go 1021 B

1234567891011121314151617181920212223242526272829303132333435
  1. package main
  2. import (
  3. "io"
  4. "time"
  5. "github.com/aquasecurity/table"
  6. "github.com/enescakir/emoji"
  7. "github.com/crowdsecurity/crowdsec/pkg/database/ent"
  8. )
  9. func getAgentsTable(out io.Writer, machines []*ent.Machine) {
  10. t := newLightTable(out)
  11. t.SetHeaders("Name", "IP Address", "Last Update", "Status", "Version", "Auth Type", "Last Heartbeat")
  12. t.SetHeaderAlignment(table.AlignLeft, table.AlignLeft, table.AlignLeft, table.AlignLeft, table.AlignLeft, table.AlignLeft, table.AlignLeft)
  13. t.SetAlignment(table.AlignLeft, table.AlignLeft, table.AlignLeft, table.AlignLeft, table.AlignLeft, table.AlignLeft, table.AlignLeft)
  14. for _, m := range machines {
  15. var validated string
  16. if m.IsValidated {
  17. validated = emoji.CheckMark.String()
  18. } else {
  19. validated = emoji.Prohibited.String()
  20. }
  21. hb, active := getLastHeartbeat(m)
  22. if !active {
  23. hb = emoji.Warning.String() + " " + hb
  24. }
  25. t.AddRow(m.MachineId, m.IpAddress, m.UpdatedAt.Format(time.RFC3339), validated, m.Version, m.AuthType, hb)
  26. }
  27. t.Render()
  28. }