Browse Source

refactoring, start to use gorilla/mux

pull/2/head
Chris Lu 11 years ago
parent
commit
bc2f3b26e7
  1. 22
      go/weed/master.go
  2. 20
      go/weed/volume.go

22
go/weed/master.go

@ -10,6 +10,7 @@ import (
"code.google.com/p/weed-fs/go/topology" "code.google.com/p/weed-fs/go/topology"
"encoding/json" "encoding/json"
"errors" "errors"
"github.com/gorilla/mux"
"net/http" "net/http"
"os" "os"
"path" "path"
@ -233,23 +234,24 @@ func runMaster(cmd *Command, args []string) bool {
} }
vg = replication.NewDefaultVolumeGrowth() vg = replication.NewDefaultVolumeGrowth()
glog.V(0).Infoln("Volume Size Limit is", *volumeSizeLimitMB, "MB") glog.V(0).Infoln("Volume Size Limit is", *volumeSizeLimitMB, "MB")
http.HandleFunc("/dir/assign", secure(masterWhiteList, dirAssignHandler))
http.HandleFunc("/dir/lookup", secure(masterWhiteList, dirLookupHandler))
http.HandleFunc("/dir/join", secure(masterWhiteList, dirJoinHandler))
http.HandleFunc("/dir/status", secure(masterWhiteList, dirStatusHandler))
http.HandleFunc("/vol/grow", secure(masterWhiteList, volumeGrowHandler))
http.HandleFunc("/vol/status", secure(masterWhiteList, volumeStatusHandler))
http.HandleFunc("/vol/vacuum", secure(masterWhiteList, volumeVacuumHandler))
http.HandleFunc("/submit", secure(masterWhiteList, submitFromMasterServerHandler))
http.HandleFunc("/", redirectHandler)
r := mux.NewRouter()
r.HandleFunc("/dir/assign", secure(masterWhiteList, dirAssignHandler))
r.HandleFunc("/dir/lookup", secure(masterWhiteList, dirLookupHandler))
r.HandleFunc("/dir/join", secure(masterWhiteList, dirJoinHandler))
r.HandleFunc("/dir/status", secure(masterWhiteList, dirStatusHandler))
r.HandleFunc("/vol/grow", secure(masterWhiteList, volumeGrowHandler))
r.HandleFunc("/vol/status", secure(masterWhiteList, volumeStatusHandler))
r.HandleFunc("/vol/vacuum", secure(masterWhiteList, volumeVacuumHandler))
r.HandleFunc("/submit", secure(masterWhiteList, submitFromMasterServerHandler))
r.HandleFunc("/", redirectHandler)
topo.StartRefreshWritableVolumes(*garbageThreshold) topo.StartRefreshWritableVolumes(*garbageThreshold)
glog.V(0).Infoln("Start Weed Master", VERSION, "at port", strconv.Itoa(*mport)) glog.V(0).Infoln("Start Weed Master", VERSION, "at port", strconv.Itoa(*mport))
srv := &http.Server{ srv := &http.Server{
Addr: ":" + strconv.Itoa(*mport), Addr: ":" + strconv.Itoa(*mport),
Handler: http.DefaultServeMux,
Handler: r,
ReadTimeout: time.Duration(*mReadTimeout) * time.Second, ReadTimeout: time.Duration(*mReadTimeout) * time.Second,
} }
e = srv.ListenAndServe() e = srv.ListenAndServe()

20
go/weed/volume.go

@ -5,6 +5,7 @@ import (
"code.google.com/p/weed-fs/go/operation" "code.google.com/p/weed-fs/go/operation"
"code.google.com/p/weed-fs/go/replication" "code.google.com/p/weed-fs/go/replication"
"code.google.com/p/weed-fs/go/storage" "code.google.com/p/weed-fs/go/storage"
"github.com/gorilla/mux"
"math/rand" "math/rand"
"mime" "mime"
"net/http" "net/http"
@ -341,14 +342,15 @@ func runVolume(cmd *Command, args []string) bool {
store = storage.NewStore(*vport, *ip, *publicUrl, folders, maxCounts) store = storage.NewStore(*vport, *ip, *publicUrl, folders, maxCounts)
defer store.Close() defer store.Close()
http.HandleFunc("/", storeHandler)
http.HandleFunc("/submit", secure(volumeWhiteList, submitFromVolumeServerHandler))
http.HandleFunc("/status", secure(volumeWhiteList, statusHandler))
http.HandleFunc("/admin/assign_volume", secure(volumeWhiteList, assignVolumeHandler))
http.HandleFunc("/admin/vacuum_volume_check", secure(volumeWhiteList, vacuumVolumeCheckHandler))
http.HandleFunc("/admin/vacuum_volume_compact", secure(volumeWhiteList, vacuumVolumeCompactHandler))
http.HandleFunc("/admin/vacuum_volume_commit", secure(volumeWhiteList, vacuumVolumeCommitHandler))
http.HandleFunc("/admin/freeze_volume", secure(volumeWhiteList, freezeVolumeHandler))
r := mux.NewRouter()
r.HandleFunc("/submit", secure(volumeWhiteList, submitFromVolumeServerHandler))
r.HandleFunc("/status", secure(volumeWhiteList, statusHandler))
r.HandleFunc("/admin/assign_volume", secure(volumeWhiteList, assignVolumeHandler))
r.HandleFunc("/admin/vacuum_volume_check", secure(volumeWhiteList, vacuumVolumeCheckHandler))
r.HandleFunc("/admin/vacuum_volume_compact", secure(volumeWhiteList, vacuumVolumeCompactHandler))
r.HandleFunc("/admin/vacuum_volume_commit", secure(volumeWhiteList, vacuumVolumeCommitHandler))
r.HandleFunc("/admin/freeze_volume", secure(volumeWhiteList, freezeVolumeHandler))
r.HandleFunc("/", storeHandler)
go func() { go func() {
connected := true connected := true
@ -375,7 +377,7 @@ func runVolume(cmd *Command, args []string) bool {
glog.V(0).Infoln("Start Weed volume server", VERSION, "at http://"+*ip+":"+strconv.Itoa(*vport)) glog.V(0).Infoln("Start Weed volume server", VERSION, "at http://"+*ip+":"+strconv.Itoa(*vport))
srv := &http.Server{ srv := &http.Server{
Addr: ":" + strconv.Itoa(*vport), Addr: ":" + strconv.Itoa(*vport),
Handler: http.DefaultServeMux,
Handler: r,
ReadTimeout: (time.Duration(*vReadTimeout) * time.Second), ReadTimeout: (time.Duration(*vReadTimeout) * time.Second),
} }
e := srv.ListenAndServe() e := srv.ListenAndServe()

Loading…
Cancel
Save