dns-api: add debug endpoint
Change-Id: I7e2a6546884b43ad9b377d19b480efd52e905c32
diff --git a/core/dns-api/main.go b/core/dns-api/main.go
index c3d429d..f1f9250 100644
--- a/core/dns-api/main.go
+++ b/core/dns-api/main.go
@@ -2,6 +2,7 @@
import (
"flag"
+ "fmt"
"strings"
)
@@ -23,8 +24,10 @@
if err != nil {
panic(err)
}
- if err := store.Log(); err != nil {
+ if all, err := store.All(); err != nil {
panic(err)
+ } else {
+ fmt.Println(all)
}
server := NewServer(*port, *zone, ds, store, nameserverIP)
server.Start()
diff --git a/core/dns-api/server.go b/core/dns-api/server.go
index d67ccf6..1156d8d 100644
--- a/core/dns-api/server.go
+++ b/core/dns-api/server.go
@@ -2,6 +2,7 @@
import (
"encoding/json"
+ "io"
"fmt"
"net/http"
"strings"
@@ -34,6 +35,7 @@
m.HandleFunc("/create-a-record", s.createARecord)
m.HandleFunc("/delete-a-record", s.deleteARecord)
m.HandleFunc("/delete-txt-record", s.deleteTxtRecord)
+ m.HandleFunc("/", s.getAll)
return s
}
@@ -41,10 +43,13 @@
return s.s.ListenAndServe()
}
-type record struct {
- Domain string `json:"domain,omitempty"`
- Entry string `json:"entry,omitempty"`
- Text string `json:"text,omitempty"`
+func (s *Server) getAll(w http.ResponseWriter, r *http.Request) {
+ all, err := s.store.All()
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusBadRequest)
+ return
+ }
+ io.WriteString(w, all)
}
func (s *Server) recordsToPublish(w http.ResponseWriter, r *http.Request) {
@@ -65,6 +70,12 @@
}
}
+type record struct {
+ Domain string `json:"domain,omitempty"`
+ Entry string `json:"entry,omitempty"`
+ Text string `json:"text,omitempty"`
+}
+
func (s *Server) createTxtRecord(w http.ResponseWriter, r *http.Request) {
var req record
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
diff --git a/core/dns-api/store.go b/core/dns-api/store.go
index 8dfd914..588a2f2 100644
--- a/core/dns-api/store.go
+++ b/core/dns-api/store.go
@@ -7,7 +7,7 @@
)
type RecordStore interface {
- Log() error
+ All() (string, error)
Add(entry, txt string) error
AddARecord(entry, ip string) error
Delete(entry, txt string) error
@@ -21,14 +21,17 @@
db string
}
-func (s *fsRecordStore) Log() error {
+func (s *fsRecordStore) All() (string, error) {
r, err := s.fs.Reader(s.db)
if err != nil {
- return err
+ return "", err
}
defer r.Close()
- _, err = io.Copy(os.Stdout, r)
- return err
+ ret, err := io.ReadAll(r)
+ if err != nil {
+ return "", err
+ }
+ return string(ret), nil
}
func (s *fsRecordStore) read() (*RecordsFile, error) {