Skip to content

Commit

Permalink
Merge pull request #82 from influxdb/list-interfaces
Browse files Browse the repository at this point in the history
Add endpoint for listing available admin interfaces.
  • Loading branch information
jvshahid committed Nov 29, 2013
2 parents 9d88a58 + d964545 commit d8838fc
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion src/api/http/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ func (self *HttpServer) Serve(listener net.Listener) {
self.registerEndpoint(p, "del", "/db/:name", self.dropDatabase)

// cluster admins management interface

self.registerEndpoint(p, "get", "/cluster_admins", self.listClusterAdmins)
self.registerEndpoint(p, "get", "/cluster_admins/authenticate", self.authenticateClusterAdmin)
self.registerEndpoint(p, "post", "/cluster_admins", self.createClusterAdmin)
Expand All @@ -98,6 +97,9 @@ func (self *HttpServer) Serve(listener net.Listener) {
self.registerEndpoint(p, "post", "/db/:db/admins/:user", self.setDbAdmin)
self.registerEndpoint(p, "del", "/db/:db/admins/:user", self.unsetDbAdmin)

// fetch current list of available interfaces
self.registerEndpoint(p, "get", "/interfaces", self.listInterfaces)

if err := libhttp.Serve(listener, p); err != nil && !strings.Contains(err.Error(), "closed network") {
panic(err)
}
Expand Down Expand Up @@ -858,3 +860,21 @@ func (self *HttpServer) commonSetDbAdmin(w libhttp.ResponseWriter, r *libhttp.Re
return libhttp.StatusOK, nil
})
}

func (self *HttpServer) listInterfaces(w libhttp.ResponseWriter, r *libhttp.Request) {
self.tryAsDbUserAndClusterAdmin(w, r, func(u common.User) (int, interface{}) {
entries, err := ioutil.ReadDir("admin/interfaces")

if err != nil {
return errorToStatusCode(err), err.Error()
}

directories := make([]string, 0, len(entries))
for _, entry := range entries {
if entry.IsDir() {
directories = append(directories, entry.Name())
}
}
return libhttp.StatusOK, directories
})
}

0 comments on commit d8838fc

Please sign in to comment.