http.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package dao
  2. import (
  3. "context"
  4. "fmt"
  5. "net/url"
  6. "go-common/library/log"
  7. "go-common/library/net/metadata"
  8. )
  9. const (
  10. _addVolume = "/pitchfork/group/add_volume"
  11. _addFreeVolume = "/pitchfork/group/add_free_volume"
  12. _compact = "/pitchfork/group/compact"
  13. _groupStatus = "/pitchfork/group/status"
  14. )
  15. func (d *Dao) addVolumeURI() string {
  16. return d.c.Host.Pitchfork + _addVolume
  17. }
  18. func (d *Dao) addFreeVolumeURI() string {
  19. return d.c.Host.Pitchfork + _addFreeVolume
  20. }
  21. func (d *Dao) compactURI() string {
  22. return d.c.Host.Pitchfork + _compact
  23. }
  24. func (d *Dao) groupStatusURI() string {
  25. return d.c.Host.Pitchfork + _groupStatus
  26. }
  27. // AddVolume add volumes.
  28. func (d *Dao) AddVolume(c context.Context, group string, num int64) (err error) {
  29. var (
  30. params = url.Values{}
  31. uri = d.addVolumeURI()
  32. ip = metadata.String(c, metadata.RemoteIP)
  33. )
  34. params.Set("group", group)
  35. params.Set("num", fmt.Sprint(num))
  36. if err = d.httpCli.Post(c, uri, ip, params, nil); err != nil {
  37. log.Error("add volume error(%v)", err)
  38. }
  39. return
  40. }
  41. // AddFreeVolume add free volume.
  42. func (d *Dao) AddFreeVolume(c context.Context, group, dir string, num int64) (err error) {
  43. var (
  44. params = url.Values{}
  45. uri = d.addFreeVolumeURI()
  46. ip = metadata.String(c, metadata.RemoteIP)
  47. )
  48. params.Set("group", group)
  49. params.Set("idir", dir)
  50. params.Set("bdir", dir)
  51. params.Set("num", fmt.Sprint(num))
  52. if err = d.httpCli.Post(c, uri, ip, params, nil); err != nil {
  53. log.Error("add free volume error(%v)", err)
  54. }
  55. return
  56. }
  57. // Compact compact store disk by group.
  58. func (d *Dao) Compact(c context.Context, group string, vid int64) (err error) {
  59. var (
  60. params = url.Values{}
  61. uri = d.compactURI()
  62. ip = metadata.String(c, metadata.RemoteIP)
  63. )
  64. params.Set("group", group)
  65. if vid > 0 {
  66. params.Set("vid", fmt.Sprint(vid))
  67. }
  68. if err = d.httpCli.Post(c, uri, ip, params, nil); err != nil {
  69. log.Error("compact group error(%v)", err)
  70. }
  71. return
  72. }
  73. // SetGroupStatus set store status by group id.
  74. func (d *Dao) SetGroupStatus(c context.Context, group, status string) (err error) {
  75. var (
  76. params = url.Values{}
  77. uri = d.groupStatusURI()
  78. ip = metadata.String(c, metadata.RemoteIP)
  79. )
  80. params.Set("group", group)
  81. params.Set("status", status)
  82. if err = d.httpCli.Post(c, uri, ip, params, nil); err != nil {
  83. log.Error("set group status error(%v)", err)
  84. }
  85. return
  86. }