mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-09 12:27:52 +00:00
Add metadata endpoint.
This commit is contained in:
parent
09f2d8eda1
commit
49b8c33059
2 changed files with 28 additions and 0 deletions
14
core/etcd.go
14
core/etcd.go
|
|
@ -200,6 +200,20 @@ func (self *ProcessMap) GetPortHttp(id *uuid.UUID) (int, error) {
|
|||
return process.PortHttp(), nil
|
||||
}
|
||||
|
||||
func (self *ProcessMap) GetMetadata() map[string]map[string]interface{} {
|
||||
self.mutex.Lock()
|
||||
defer self.mutex.Unlock()
|
||||
out := make(map[string]map[string]interface{})
|
||||
for id, process := range self.nodes {
|
||||
pdata := make(map[string]interface{})
|
||||
pdata["host"] = process.Host()
|
||||
pdata["port_tcp"] = process.PortTcp()
|
||||
pdata["port_http"] = process.PortHttp()
|
||||
out[id.String()] = pdata
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
type ProcessMapper struct {
|
||||
service *Service
|
||||
receiver chan etcd.Response
|
||||
|
|
|
|||
14
core/http.go
14
core/http.go
|
|
@ -29,6 +29,7 @@ func (self *WebService) Run() {
|
|||
mux.HandleFunc("/query", self.HandleQuery)
|
||||
mux.HandleFunc("/stats", self.HandleStats)
|
||||
mux.HandleFunc("/info", self.HandleInfo)
|
||||
mux.HandleFunc("/processes", self.HandleProcesses)
|
||||
mux.HandleFunc("/listen", self.HandleListen)
|
||||
s := &http.Server{
|
||||
Addr: ":" + port_string,
|
||||
|
|
@ -88,6 +89,19 @@ func (self *WebService) HandleInfo(w http.ResponseWriter, r *http.Request) {
|
|||
spew.Fdump(w, self.service.Cluster)
|
||||
}
|
||||
|
||||
func (self *WebService) HandleProcesses(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != "GET" {
|
||||
http.Error(w, "Only GET allowed", http.StatusMethodNotAllowed)
|
||||
return
|
||||
}
|
||||
encoder := json.NewEncoder(w)
|
||||
processes := self.service.ProcessMap.GetMetadata()
|
||||
err := encoder.Encode(processes)
|
||||
if err != nil {
|
||||
log.Fatal("Error encoding stats")
|
||||
}
|
||||
}
|
||||
|
||||
func (self *WebService) HandleListen(w http.ResponseWriter, r *http.Request) {
|
||||
//listener := service.NewListener()
|
||||
//encoder := json.NewEncoder(w)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue