Expose discovery cache over rest interface
This commit is contained in:
parent
dd1197236d
commit
532b576fd5
|
@ -49,6 +49,7 @@ func startGUI(cfg GUIConfiguration, m *Model) error {
|
||||||
router.Get("/rest/config/sync", restGetConfigInSync)
|
router.Get("/rest/config/sync", restGetConfigInSync)
|
||||||
router.Get("/rest/system", restGetSystem)
|
router.Get("/rest/system", restGetSystem)
|
||||||
router.Get("/rest/errors", restGetErrors)
|
router.Get("/rest/errors", restGetErrors)
|
||||||
|
router.Get("/rest/discovery", restGetDiscovery)
|
||||||
|
|
||||||
router.Post("/rest/config", restPostConfig)
|
router.Post("/rest/config", restPostConfig)
|
||||||
router.Post("/rest/restart", restPostRestart)
|
router.Post("/rest/restart", restPostRestart)
|
||||||
|
@ -243,6 +244,10 @@ func restPostDiscoveryHint(r *http.Request) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func restGetDiscovery(w http.ResponseWriter) {
|
||||||
|
json.NewEncoder(w).Encode(discoverer.All())
|
||||||
|
}
|
||||||
|
|
||||||
func basic(username string, passhash string) http.HandlerFunc {
|
func basic(username string, passhash string) http.HandlerFunc {
|
||||||
return func(res http.ResponseWriter, req *http.Request) {
|
return func(res http.ResponseWriter, req *http.Request) {
|
||||||
error := func() {
|
error := func() {
|
||||||
|
|
|
@ -98,6 +98,18 @@ func (d *Discoverer) Hint(node string, addrs []string) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *Discoverer) All() map[string][]string {
|
||||||
|
d.registryLock.RLock()
|
||||||
|
nodes := make(map[string][]string, len(d.registry))
|
||||||
|
for node, addrs := range d.registry {
|
||||||
|
addrsCopy := make([]string, len(addrs))
|
||||||
|
copy(addrsCopy, addrs)
|
||||||
|
nodes[node] = addrsCopy
|
||||||
|
}
|
||||||
|
d.registryLock.RUnlock()
|
||||||
|
return nodes
|
||||||
|
}
|
||||||
|
|
||||||
func (d *Discoverer) announcementPkt() []byte {
|
func (d *Discoverer) announcementPkt() []byte {
|
||||||
var addrs []Address
|
var addrs []Address
|
||||||
for _, astr := range d.listenAddrs {
|
for _, astr := range d.listenAddrs {
|
||||||
|
|
Loading…
Reference in New Issue