12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package dao
- import (
- "context"
- "fmt"
- "net/url"
- "go-common/library/log"
- "go-common/library/net/metadata"
- )
- const (
- _addVolume = "/pitchfork/group/add_volume"
- _addFreeVolume = "/pitchfork/group/add_free_volume"
- _compact = "/pitchfork/group/compact"
- _groupStatus = "/pitchfork/group/status"
- )
- func (d *Dao) addVolumeURI() string {
- return d.c.Host.Pitchfork + _addVolume
- }
- func (d *Dao) addFreeVolumeURI() string {
- return d.c.Host.Pitchfork + _addFreeVolume
- }
- func (d *Dao) compactURI() string {
- return d.c.Host.Pitchfork + _compact
- }
- func (d *Dao) groupStatusURI() string {
- return d.c.Host.Pitchfork + _groupStatus
- }
- // AddVolume add volumes.
- func (d *Dao) AddVolume(c context.Context, group string, num int64) (err error) {
- var (
- params = url.Values{}
- uri = d.addVolumeURI()
- ip = metadata.String(c, metadata.RemoteIP)
- )
- params.Set("group", group)
- params.Set("num", fmt.Sprint(num))
- if err = d.httpCli.Post(c, uri, ip, params, nil); err != nil {
- log.Error("add volume error(%v)", err)
- }
- return
- }
- // AddFreeVolume add free volume.
- func (d *Dao) AddFreeVolume(c context.Context, group, dir string, num int64) (err error) {
- var (
- params = url.Values{}
- uri = d.addFreeVolumeURI()
- ip = metadata.String(c, metadata.RemoteIP)
- )
- params.Set("group", group)
- params.Set("idir", dir)
- params.Set("bdir", dir)
- params.Set("num", fmt.Sprint(num))
- if err = d.httpCli.Post(c, uri, ip, params, nil); err != nil {
- log.Error("add free volume error(%v)", err)
- }
- return
- }
- // Compact compact store disk by group.
- func (d *Dao) Compact(c context.Context, group string, vid int64) (err error) {
- var (
- params = url.Values{}
- uri = d.compactURI()
- ip = metadata.String(c, metadata.RemoteIP)
- )
- params.Set("group", group)
- if vid > 0 {
- params.Set("vid", fmt.Sprint(vid))
- }
- if err = d.httpCli.Post(c, uri, ip, params, nil); err != nil {
- log.Error("compact group error(%v)", err)
- }
- return
- }
- // SetGroupStatus set store status by group id.
- func (d *Dao) SetGroupStatus(c context.Context, group, status string) (err error) {
- var (
- params = url.Values{}
- uri = d.groupStatusURI()
- ip = metadata.String(c, metadata.RemoteIP)
- )
- params.Set("group", group)
- params.Set("status", status)
- if err = d.httpCli.Post(c, uri, ip, params, nil); err != nil {
- log.Error("set group status error(%v)", err)
- }
- return
- }
|