diff --git a/core/http.go b/core/http.go index a48ace718..351510c46 100644 --- a/core/http.go +++ b/core/http.go @@ -2,6 +2,7 @@ package core import ( "encoding/json" + "fmt" "log" "net/http" "pilosa/config" @@ -31,6 +32,7 @@ func (self *WebService) Run() { mux.HandleFunc("/processes", self.HandleProcesses) mux.HandleFunc("/listen", self.HandleListen) mux.HandleFunc("/test", self.HandleTest) + mux.HandleFunc("/version", self.HandleVersion) mux.HandleFunc("/ping", self.HandlePing) s := &http.Server{ Addr: ":" + port_string, @@ -110,6 +112,15 @@ func (self *WebService) HandleInfo(w http.ResponseWriter, r *http.Request) { spew.Fdump(w, self.service.Cluster) } +func (self *WebService) HandleVersion(w http.ResponseWriter, r *http.Request) { + if r.Method != "GET" { + http.Error(w, "Only GET allowed", http.StatusMethodNotAllowed) + return + } + + fmt.Fprintf(w, "Pilosa v."+self.service.version+"\n") +} + func (self *WebService) HandleTest(w http.ResponseWriter, r *http.Request) { if r.Method != "GET" { http.Error(w, "Only GET allowed", http.StatusMethodNotAllowed) diff --git a/core/service.go b/core/service.go index e34a5dd4d..4e781c197 100644 --- a/core/service.go +++ b/core/service.go @@ -30,6 +30,7 @@ type Service struct { WebService *WebService Index *index.FragmentContainer Hold *hold.Holder + version string } func NewService() *Service { @@ -44,6 +45,7 @@ func NewService() *Service { service.WebService = NewWebService(service) service.Index = index.NewFragmentContainer() service.Hold = hold.NewHolder() + service.version = "0.0.1" return service }