@@ -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
5253var (
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
6970func 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 }
0 commit comments