|
|
@ -1,6 +1,7 @@ |
|
|
|
package weed_server |
|
|
|
|
|
|
|
import ( |
|
|
|
"fmt" |
|
|
|
"net/http" |
|
|
|
"path/filepath" |
|
|
|
"strconv" |
|
|
@ -8,6 +9,7 @@ import ( |
|
|
|
"github.com/chrislusf/seaweedfs/weed/glog" |
|
|
|
"github.com/chrislusf/seaweedfs/weed/stats" |
|
|
|
"github.com/chrislusf/seaweedfs/weed/util" |
|
|
|
"github.com/chrislusf/seaweedfs/weed/storage" |
|
|
|
) |
|
|
|
|
|
|
|
func (vs *VolumeServer) statusHandler(w http.ResponseWriter, r *http.Request) { |
|
|
@ -65,3 +67,45 @@ func (vs *VolumeServer) statsDiskHandler(w http.ResponseWriter, r *http.Request) |
|
|
|
m["DiskStatuses"] = ds |
|
|
|
writeJsonQuiet(w, r, http.StatusOK, m) |
|
|
|
} |
|
|
|
|
|
|
|
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 |
|
|
|
} |
|
|
|
|
|
|
|
func (vs *VolumeServer) getVolumeMountHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
vid, err := vs.getVolumeId("volume", r) |
|
|
|
if err != nil { |
|
|
|
writeJsonError(w, r, http.StatusNotFound, err) |
|
|
|
return |
|
|
|
} |
|
|
|
vs.store.MountVolume(vid) |
|
|
|
writeJsonQuiet(w, r, http.StatusOK, "Volume mounted") |
|
|
|
} |
|
|
|
|
|
|
|
func (vs *VolumeServer) getVolumeUnmountHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
vid, err := vs.getVolumeId("volume", r) |
|
|
|
if err != nil { |
|
|
|
writeJsonError(w, r, http.StatusNotFound, err) |
|
|
|
return |
|
|
|
} |
|
|
|
vs.store.UnmountVolume(vid) |
|
|
|
writeJsonQuiet(w, r, http.StatusOK, "Volume unmounted") |
|
|
|
} |
|
|
|
|
|
|
|
func (vs *VolumeServer) getVolumeDeleteHandler(w http.ResponseWriter, r *http.Request) { |
|
|
|
vid, err := vs.getVolumeId("volume", r) |
|
|
|
if err != nil { |
|
|
|
writeJsonError(w, r, http.StatusNotFound, err) |
|
|
|
return |
|
|
|
} |
|
|
|
vs.store.DeleteVolume(vid) |
|
|
|
writeJsonQuiet(w, r, http.StatusOK, "Volume deleted") |
|
|
|
} |