msg.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package internal
  2. import "time"
  3. // A StatusUpdateMsg represents a msg when
  4. // a worker has done syncing
  5. type StatusUpdateMsg struct {
  6. Name string `json:"name"`
  7. Worker string `json:"worker"`
  8. IsMaster bool `json:"is_master"`
  9. Status SyncStatus `json:"status"`
  10. LastUpdate time.Time `json:"last_update"`
  11. Upstream string `json:"upstream"`
  12. Size string `json:"size"`
  13. ErrorMsg string `json:"error_msg"`
  14. }
  15. // A WorkerInfoMsg is
  16. type WorkerInfoMsg struct {
  17. Name string `json:"name"`
  18. }
  19. type CmdVerb uint8
  20. const (
  21. CmdStart CmdVerb = iota
  22. CmdStop // stop syncing keep the job
  23. CmdDisable // disable the job (stops goroutine)
  24. CmdRestart // restart syncing
  25. CmdPing // ensure the goroutine is alive
  26. )
  27. type WorkerCmd struct {
  28. Cmd CmdVerb `json:"cmd"`
  29. Args []string `json:"args"`
  30. }
  31. type ClientCmd struct {
  32. Cmd CmdVerb `json:"cmd"`
  33. MirrorID string `json:"mirror_id"`
  34. WorkerID string `json:"worker_id"`
  35. Args []string `json:"args"`
  36. }