noop impl (#32)

* improve logger usage
* add noop client and server

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2020-09-05 02:11:29 +03:00
committed by GitHub
parent c062aab1a9
commit c576749b57
24 changed files with 418 additions and 140 deletions

View File

@@ -444,7 +444,7 @@ func writeError(w http.ResponseWriter, r *http.Request, err error) {
_, werr := w.Write([]byte(ce.Error()))
if werr != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(werr)
}
}
@@ -470,7 +470,7 @@ func writeResponse(w http.ResponseWriter, r *http.Request, rsp []byte) {
// write response
_, err := w.Write(rsp)
if err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
}

View File

@@ -49,7 +49,7 @@ func serveWebsocket(ctx context.Context, w http.ResponseWriter, r *http.Request,
}
payload, err := requestPayload(r)
if err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
return
@@ -72,7 +72,7 @@ func serveWebsocket(ctx context.Context, w http.ResponseWriter, r *http.Request,
conn, rw, _, err := upgrader.Upgrade(r, w)
if err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
return
@@ -80,7 +80,7 @@ func serveWebsocket(ctx context.Context, w http.ResponseWriter, r *http.Request,
defer func() {
if err := conn.Close(); err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
return
@@ -116,7 +116,7 @@ func serveWebsocket(ctx context.Context, w http.ResponseWriter, r *http.Request,
// create a new stream
stream, err := c.Stream(ctx, req, callOpt)
if err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
return
@@ -124,7 +124,7 @@ func serveWebsocket(ctx context.Context, w http.ResponseWriter, r *http.Request,
if request != nil {
if err = stream.Send(request); err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
return
@@ -150,7 +150,7 @@ func serveWebsocket(ctx context.Context, w http.ResponseWriter, r *http.Request,
if strings.Contains(err.Error(), "context canceled") {
return
}
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
return
@@ -158,13 +158,13 @@ func serveWebsocket(ctx context.Context, w http.ResponseWriter, r *http.Request,
// write the response
if err := wsutil.WriteServerMessage(rw, op, buf); err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
return
}
if err = rw.Flush(); err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
return
@@ -195,7 +195,7 @@ func writeLoop(rw io.ReadWriter, stream client.Stream) {
return
}
}
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
return
@@ -212,7 +212,7 @@ func writeLoop(rw io.ReadWriter, stream client.Stream) {
// if the extracted payload isn't empty lets use it
request := &raw.Frame{Data: buf}
if err := stream.Send(request); err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Error(err)
}
return

View File

@@ -53,7 +53,7 @@ func (r *registryRouter) refresh() {
services, err := r.opts.Registry.ListServices()
if err != nil {
attempts++
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Errorf("unable to list services: %v", err)
}
time.Sleep(time.Duration(attempts) * time.Second)
@@ -66,7 +66,7 @@ func (r *registryRouter) refresh() {
for _, s := range services {
service, err := r.opts.Registry.GetService(s.Name)
if err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Errorf("unable to get service: %v", err)
}
continue
@@ -94,7 +94,7 @@ func (r *registryRouter) process(res *registry.Result) {
// get entry from cache
service, err := r.opts.Registry.GetService(res.Service.Name)
if err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Errorf("unable to get %v service: %v", res.Service.Name, err)
}
return
@@ -129,7 +129,7 @@ func (r *registryRouter) store(services []*registry.Service) {
}
// if we got nothing skip
if err := api.Validate(end); err != nil {
if logger.V(logger.TraceLevel, logger.DefaultLogger) {
if logger.V(logger.TraceLevel) {
logger.Tracef("endpoint validation failed: %v", err)
}
continue
@@ -176,7 +176,7 @@ func (r *registryRouter) store(services []*registry.Service) {
}
hostreg, err := regexp.CompilePOSIX(h)
if err != nil {
if logger.V(logger.TraceLevel, logger.DefaultLogger) {
if logger.V(logger.TraceLevel) {
logger.Tracef("endpoint have invalid host regexp: %v", err)
}
continue
@@ -197,7 +197,7 @@ func (r *registryRouter) store(services []*registry.Service) {
rule, err := util.Parse(p)
if err != nil && !pcreok {
if logger.V(logger.TraceLevel, logger.DefaultLogger) {
if logger.V(logger.TraceLevel) {
logger.Tracef("endpoint have invalid path pattern: %v", err)
}
continue
@@ -208,7 +208,7 @@ func (r *registryRouter) store(services []*registry.Service) {
tpl := rule.Compile()
pathreg, err := util.NewPattern(tpl.Version, tpl.OpCodes, tpl.Pool, "")
if err != nil {
if logger.V(logger.TraceLevel, logger.DefaultLogger) {
if logger.V(logger.TraceLevel) {
logger.Tracef("endpoint have invalid path pattern: %v", err)
}
continue
@@ -233,7 +233,7 @@ func (r *registryRouter) watch() {
w, err := r.opts.Registry.Watch()
if err != nil {
attempts++
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Errorf("error watching endpoints: %v", err)
}
time.Sleep(time.Duration(attempts) * time.Second)
@@ -258,7 +258,7 @@ func (r *registryRouter) watch() {
// process next event
res, err := w.Next()
if err != nil {
if logger.V(logger.ErrorLevel, logger.DefaultLogger) {
if logger.V(logger.ErrorLevel) {
logger.Errorf("error getting next endpoint: %v", err)
}
close(ch)
@@ -324,7 +324,7 @@ func (r *registryRouter) Endpoint(req *http.Request) (*api.Service, error) {
if !mMatch {
continue
}
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
if logger.V(logger.DebugLevel) {
logger.Debugf("api method match %s", req.Method)
}
@@ -347,7 +347,7 @@ func (r *registryRouter) Endpoint(req *http.Request) (*api.Service, error) {
if !hMatch {
continue
}
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
if logger.V(logger.DebugLevel) {
logger.Debugf("api host match %s", req.URL.Host)
}
@@ -355,12 +355,12 @@ func (r *registryRouter) Endpoint(req *http.Request) (*api.Service, error) {
for _, pathreg := range cep.pathregs {
matches, err := pathreg.Match(path, "")
if err != nil {
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
if logger.V(logger.DebugLevel) {
logger.Debugf("api gpath not match %s != %v", path, pathreg)
}
continue
}
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
if logger.V(logger.DebugLevel) {
logger.Debugf("api gpath match %s = %v", path, pathreg)
}
pMatch = true
@@ -381,12 +381,12 @@ func (r *registryRouter) Endpoint(req *http.Request) (*api.Service, error) {
// 4. try path via pcre path matching
for _, pathreg := range cep.pcreregs {
if !pathreg.MatchString(req.URL.Path) {
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
if logger.V(logger.DebugLevel) {
logger.Debugf("api pcre path not match %s != %v", path, pathreg)
}
continue
}
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
if logger.V(logger.DebugLevel) {
logger.Debugf("api pcre path match %s != %v", path, pathreg)
}
pMatch = true

View File

@@ -249,8 +249,8 @@ func (r *staticRouter) endpoint(req *http.Request) (*endpoint, error) {
if !mMatch {
continue
}
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
logger.Debugf("api method match %s", req.Method)
if logger.V(logger.TraceLevel) {
logger.Tracef("api method match %s", req.Method)
}
// 2. try host
@@ -272,21 +272,21 @@ func (r *staticRouter) endpoint(req *http.Request) (*endpoint, error) {
if !hMatch {
continue
}
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
logger.Debugf("api host match %s", req.URL.Host)
if logger.V(logger.TraceLevel) {
logger.Tracef("api host match %s", req.URL.Host)
}
// 3. try google.api path
for _, pathreg := range ep.pathregs {
matches, err := pathreg.Match(path, "")
if err != nil {
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
logger.Debugf("api gpath not match %s != %v", path, pathreg)
if logger.V(logger.TraceLevel) {
logger.Tracef("api gpath not match %s != %v", path, pathreg)
}
continue
}
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
logger.Debugf("api gpath match %s = %v", path, pathreg)
if logger.V(logger.TraceLevel) {
logger.Tracef("api gpath match %s = %v", path, pathreg)
}
pMatch = true
ctx := req.Context()
@@ -306,8 +306,8 @@ func (r *staticRouter) endpoint(req *http.Request) (*endpoint, error) {
// 4. try path via pcre path matching
for _, pathreg := range ep.pcreregs {
if !pathreg.MatchString(req.URL.Path) {
if logger.V(logger.DebugLevel, logger.DefaultLogger) {
logger.Debugf("api pcre path not match %s != %v", req.URL.Path, pathreg)
if logger.V(logger.TraceLevel) {
logger.Tracef("api pcre path not match %s != %v", req.URL.Path, pathreg)
}
continue
}

View File

@@ -31,7 +31,7 @@ func (a *autocertProvider) TLSConfig(hosts ...string) (*tls.Config, error) {
}
dir := cacheDir()
if err := os.MkdirAll(dir, 0700); err != nil {
if logger.V(logger.InfoLevel, logger.DefaultLogger) {
if logger.V(logger.InfoLevel) {
logger.Infof("warning: autocert not using a cache: %v", err)
}
} else {

View File

@@ -75,7 +75,7 @@ func (s *httpServer) Start() error {
return err
}
if logger.V(logger.InfoLevel, logger.DefaultLogger) {
if logger.V(logger.InfoLevel) {
logger.Infof("HTTP API Listening on %s", l.Addr().String())
}