2014-04-14 07:13:18 +00:00
|
|
|
package weed_server
|
|
|
|
|
|
|
|
import (
|
2017-01-20 12:02:37 +00:00
|
|
|
"fmt"
|
2018-10-15 08:19:15 +00:00
|
|
|
"github.com/chrislusf/seaweedfs/weed/stats"
|
2017-01-20 12:02:37 +00:00
|
|
|
"github.com/chrislusf/seaweedfs/weed/storage"
|
2018-05-27 18:52:26 +00:00
|
|
|
"github.com/chrislusf/seaweedfs/weed/util"
|
2018-10-15 08:19:15 +00:00
|
|
|
"net/http"
|
|
|
|
"path/filepath"
|
2014-04-14 07:13:18 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func (vs *VolumeServer) statusHandler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
m := make(map[string]interface{})
|
|
|
|
m["Version"] = util.VERSION
|
|
|
|
m["Volumes"] = vs.store.Status()
|
2015-01-08 08:19:32 +00:00
|
|
|
writeJsonQuiet(w, r, http.StatusOK, m)
|
2014-04-14 07:13:18 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (vs *VolumeServer) statsDiskHandler(w http.ResponseWriter, r *http.Request) {
|
|
|
|
m := make(map[string]interface{})
|
|
|
|
m["Version"] = util.VERSION
|
2015-03-10 07:20:31 +00:00
|
|
|
var ds []*stats.DiskStatus
|
2014-04-14 07:13:18 +00:00
|
|
|
for _, loc := range vs.store.Locations {
|
|
|
|
if dir, e := filepath.Abs(loc.Directory); e == nil {
|
|
|
|
ds = append(ds, stats.NewDiskStatus(dir))
|
|
|
|
}
|
|
|
|
}
|
2015-03-19 17:39:22 +00:00
|
|
|
m["DiskStatuses"] = ds
|
2015-01-08 08:19:32 +00:00
|
|
|
writeJsonQuiet(w, r, http.StatusOK, m)
|
2014-04-14 07:13:18 +00:00
|
|
|
}
|
2017-01-20 12:02:37 +00:00
|
|
|
|
2018-10-15 08:19:15 +00:00
|
|
|
// TODO delete this when volume sync is all moved to grpc
|
2017-01-20 12:02:37 +00:00
|
|
|
func (vs *VolumeServer) getVolume(volumeParameterName string, r *http.Request) (*storage.Volume, error) {
|
|
|
|
vid, err := vs.getVolumeId(volumeParameterName, r)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
v := vs.store.GetVolume(vid)
|
|
|
|
if v == nil {
|
|
|
|
return nil, fmt.Errorf("Not Found Volume Id %d", vid)
|
|
|
|
}
|
|
|
|
return v, nil
|
|
|
|
}
|