You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.0 KiB
66 lines
2.0 KiB
package weed_server
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"time"
|
|
|
|
"strings"
|
|
|
|
"github.com/chrislusf/seaweedfs/go/glog"
|
|
"github.com/chrislusf/seaweedfs/go/storage"
|
|
)
|
|
|
|
func (vs *VolumeServer) newTaskHandler(w http.ResponseWriter, r *http.Request) {
|
|
r.ParseForm()
|
|
tid, e := vs.store.TaskManager.NewTask(vs.store, r.Form)
|
|
if e == nil {
|
|
writeJsonQuiet(w, r, http.StatusOK, map[string]string{"tid": tid})
|
|
} else {
|
|
writeJsonError(w, r, http.StatusInternalServerError, e)
|
|
}
|
|
glog.V(2).Infoln("new store task =", tid, ", error =", e)
|
|
}
|
|
|
|
func (vs *VolumeServer) queryTaskHandler(w http.ResponseWriter, r *http.Request) {
|
|
tid := r.FormValue("tid")
|
|
timeoutStr := strings.TrimSpace(r.FormValue("timeout"))
|
|
d := time.Minute
|
|
if td, e := time.ParseDuration(timeoutStr); e == nil {
|
|
d = td
|
|
}
|
|
err := vs.store.TaskManager.QueryResult(tid, d)
|
|
if err == storage.ErrTaskNotFinish {
|
|
writeJsonError(w, r, http.StatusRequestTimeout, err)
|
|
} else if err == nil {
|
|
writeJsonError(w, r, http.StatusOK, err)
|
|
} else {
|
|
writeJsonError(w, r, http.StatusInternalServerError, err)
|
|
}
|
|
glog.V(2).Infoln("query task =", tid, ", error =", err)
|
|
}
|
|
func (vs *VolumeServer) commitTaskHandler(w http.ResponseWriter, r *http.Request) {
|
|
tid := r.FormValue("tid")
|
|
err := vs.store.TaskManager.Commit(tid)
|
|
if err == storage.ErrTaskNotFinish {
|
|
writeJsonError(w, r, http.StatusRequestTimeout, err)
|
|
} else if err == nil {
|
|
writeJsonError(w, r, http.StatusOK, err)
|
|
}
|
|
glog.V(2).Infoln("query task =", tid, ", error =", err)
|
|
}
|
|
func (vs *VolumeServer) cleanTaskHandler(w http.ResponseWriter, r *http.Request) {
|
|
tid := r.FormValue("tid")
|
|
err := vs.store.TaskManager.Clean(tid)
|
|
if err == storage.ErrTaskNotFinish {
|
|
writeJsonError(w, r, http.StatusRequestTimeout, err)
|
|
} else if err == nil {
|
|
writeJsonError(w, r, http.StatusOK, err)
|
|
}
|
|
glog.V(2).Infoln("clean task =", tid, ", error =", err)
|
|
}
|
|
|
|
func (vs *VolumeServer) allTaskHandler(w http.ResponseWriter, r *http.Request) {
|
|
//TODO get all task
|
|
glog.V(2).Infoln("TODO: get all task")
|
|
}
|