Skip to content
This repository was archived by the owner on Oct 11, 2024. It is now read-only.

Commit d25aa7e

Browse files
committed
Hacky monitor result web-site
1 parent 913b298 commit d25aa7e

File tree

2 files changed

+68
-16
lines changed

2 files changed

+68
-16
lines changed

cmd/keytransparency-monitor/main.go

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,17 @@ import (
4747
_ "github.com/google/trillian/merkle/coniks" // Register coniks
4848
"github.com/google/trillian/merkle/hashers"
4949
_ "github.com/google/trillian/merkle/objhasher" // Register objhasher
50+
"html/template"
5051
)
5152

5253
var (
5354
addr = flag.String("addr", ":8099", "The ip:port combination to listen on")
54-
keyFile = flag.String("tls-key", "genfiles/server.key", "TLS private key file")
55-
certFile = flag.String("tls-cert", "genfiles/server.pem", "TLS cert file")
55+
keyFile = flag.String("tls-key", "../../genfiles/server.key", "TLS private key file")
56+
certFile = flag.String("tls-cert", "../../genfiles/server.pem", "TLS cert file")
5657

57-
signingKey = flag.String("sign-key", "genfiles/monitor_sign-key.pem", "Path to private key PEM for SMH signing")
58+
signingKey = flag.String("sign-key", "../../genfiles/monitor_sign-key.pem", "Path to private key PEM for SMH signing")
5859
signingKeyPassword = flag.String("password", "towel", "Password of the private key PEM file for SMH signing")
59-
ktURL = flag.String("kt-url", "localhost:8080", "URL of key-server.")
60+
ktURL = flag.String("kt-url", "35.184.134.53:8080", "URL of key-server.")
6061
insecure = flag.Bool("insecure", false, "Skip TLS checks")
6162
ktCert = flag.String("kt-cert", "genfiles/server.crt", "Path to kt-server's public key")
6263

@@ -68,11 +69,11 @@ var (
6869

6970
func grpcGatewayMux(addr string) (*runtime.ServeMux, error) {
7071
ctx := context.Background()
71-
creds, err := credentials.NewClientTLSFromFile(*certFile, "")
72-
if err != nil {
73-
return nil, err
74-
}
75-
dopts := []grpc.DialOption{grpc.WithTransportCredentials(creds)}
72+
//creds, err := credentials.NewClientTLSFromFile(*certFile, "")
73+
//if err != nil {
74+
// return nil, err
75+
//}
76+
dopts := []grpc.DialOption{grpc.WithInsecure()}
7677
gwmux := runtime.NewServeMux()
7778
if err := mopb.RegisterMonitorServiceHandlerFromEndpoint(ctx, gwmux, addr, dopts); err != nil {
7879
return nil, err
@@ -95,19 +96,47 @@ func grpcHandlerFunc(grpcServer *grpc.Server, otherHandler http.Handler) http.Ha
9596
})
9697
}
9798

98-
func main() {
99-
flag.Parse()
99+
// Hackathon only code. Remove later!
100+
type resHandler struct {
101+
store *storage.Storage
102+
}
103+
104+
func (h *resHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
105+
max := h.store.LatestEpoch()
106+
results := make([]*storage.MonitoringResult, max)
107+
for i:=int64(1); i<= max ; i++ {
108+
monRes, err := h.store.Get(i)
109+
if err != nil {
110+
glog.Errorf("Couldn't retrieve mon result: %v", err)
111+
}
112+
results[i-1] = monRes
113+
}
114+
// TODO(ismail) make this file path configurable so that it can be found in
115+
// docker as well
116+
tmpl, err := template.ParseFiles("/Users/khoffi/go/src/github.com/google/keytransparency/cmd/keytransparency-monitor/web/monitoring.tmpl")
117+
if err != nil {
118+
glog.Errorf("Could not parse template: %v", err)
119+
}
100120

101-
creds, err := credentials.NewServerTLSFromFile(*certFile, *keyFile)
121+
err = tmpl.Execute(w, results)
102122
if err != nil {
103-
glog.Exitf("Failed to load server credentials %v", err)
123+
glog.Errorf("Could not write result: %v", err)
104124
}
125+
}
126+
127+
func main() {
128+
flag.Parse()
129+
130+
//creds, err := credentials.NewServerTLSFromFile(*certFile, *keyFile)
131+
//if err != nil {
132+
// glog.Exitf("Failed to load server credentials %v", err)
133+
//}
105134

106135
// Create gRPC server.
107136
grpcServer := grpc.NewServer(
108-
grpc.Creds(creds),
137+
//grpc.Creds(creds),
109138
grpc.StreamInterceptor(grpc_prometheus.StreamServerInterceptor),
110-
grpc.UnaryInterceptor(grpc_prometheus.UnaryServerInterceptor),
139+
//grpc.UnaryInterceptor(grpc_prometheus.UnaryServerInterceptor),
111140
)
112141

113142
// Connect to the kt-server's mutation API:
@@ -143,6 +172,10 @@ func main() {
143172

144173
// Insert handlers for other http paths here.
145174
mux := http.NewServeMux()
175+
176+
resultHandler := &resHandler{store:store}
177+
mux.Handle("/monitor", resultHandler)
178+
146179
mux.Handle("/", gwmux)
147180
logHasher, err := hashers.NewLogHasher(logTree.GetHashStrategy())
148181
if err != nil {
@@ -181,7 +214,7 @@ func main() {
181214

182215
// Serve HTTP2 server over TLS.
183216
glog.Infof("Listening on %v", *addr)
184-
if err := http.ListenAndServeTLS(*addr, *certFile, *keyFile,
217+
if err := http.ListenAndServe(*addr, /**certFile, *keyFile,*/
185218
grpcHandlerFunc(grpcServer, mux)); err != nil {
186219
glog.Errorf("ListenAndServeTLS: %v", err)
187220
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{{range .}}
2+
<table>
3+
<tr><td>Epoch: {{.Response.Epoch}}</td></tr>
4+
<tr><td>Map-id: {{.Response.Smr.MapId}}</td></tr>
5+
<tr><td>Log-id: {{.Response.LogRoot.LogId}}</td></tr>
6+
<tr><td>SMR roothash: {{.Response.Smr.RootHash}}</td></tr>
7+
<tr><td>&nbsp;</td></tr>
8+
<tr><td>Errors: </td></tr>
9+
{{range .Errors}}
10+
<tr>
11+
<td>&nbsp;&nbsp;&nbsp;Error: {{.}}</td>
12+
</tr>
13+
{{end}}
14+
<hr>
15+
<hr>
16+
<hr>
17+
&nbsp;
18+
</table>
19+
{{end}}

0 commit comments

Comments
 (0)