From e3fa42c78b7af098096e2fa9125914a3e6abcd64 Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Fri, 13 Oct 2023 18:19:16 +0200 Subject: [PATCH] refactor: Adding logging --- cmd/dudirekta-example-tcp-client/main.go | 40 +++--------------------- cmd/dudirekta-example-tcp-server/main.go | 26 +++------------ pkg/rpc/registry.go | 33 +++++++++++++++++++ 3 files changed, 42 insertions(+), 57 deletions(-) diff --git a/cmd/dudirekta-example-tcp-client/main.go b/cmd/dudirekta-example-tcp-client/main.go index 51359cb..a63c5db 100644 --- a/cmd/dudirekta-example-tcp-client/main.go +++ b/cmd/dudirekta-example-tcp-client/main.go @@ -1,13 +1,11 @@ package main import ( - "bufio" "context" "flag" "fmt" "log" "net" - "os" "time" "github.com/pojntfx/dudirekta/pkg/rpc" @@ -60,46 +58,18 @@ func main() { ) go func() { - log.Println(`Enter one of the following letters followed by to run a function on the remote(s): - -- a: Increment remote counter by one -- b: Decrement remote counter by one`) - - stdin := bufio.NewReader(os.Stdin) - for { - line, err := stdin.ReadString('\n') - if err != nil { - panic(err) - } - for peerID, peer := range registry.Peers() { log.Println("Calling functions for peer with ID", peerID) - switch line { - case "a\n": - new, err := peer.Increment(ctx, 1) - if err != nil { - log.Println("Got error for Increment func:", err) - - continue - } - - log.Println(new) - case "b\n": - new, err := peer.Increment(ctx, -1) - if err != nil { - log.Println("Got error for Increment func:", err) - - continue - } - - log.Println(new) - default: - log.Printf("Unknown letter %v, ignoring input", line) + _, err := peer.Increment(ctx, 1) + if err != nil { + log.Println("Got error for Increment func:", err) continue } + + time.Sleep(time.Millisecond * 10) } } }() diff --git a/cmd/dudirekta-example-tcp-server/main.go b/cmd/dudirekta-example-tcp-server/main.go index a2e8f90..c597492 100644 --- a/cmd/dudirekta-example-tcp-server/main.go +++ b/cmd/dudirekta-example-tcp-server/main.go @@ -1,12 +1,10 @@ package main import ( - "bufio" "context" "flag" "log" "net" - "os" "sync/atomic" "time" @@ -60,33 +58,17 @@ func main() { ) go func() { - log.Println(`Enter one of the following letters followed by to run a function on the remote(s): - -- a: Print "Hello, world!"`) - - stdin := bufio.NewReader(os.Stdin) - for { - line, err := stdin.ReadString('\n') - if err != nil { - panic(err) - } - for peerID, peer := range registry.Peers() { log.Println("Calling functions for peer with ID", peerID) - switch line { - case "a\n": - if err := peer.Println(ctx, "Hello, world!"); err != nil { - log.Println("Got error for Println func:", err) - - continue - } - default: - log.Printf("Unknown letter %v, ignoring input", line) + if err := peer.Println(ctx, "Hello, world!"); err != nil { + log.Println("Got error for Println func:", err) continue } + + time.Sleep(time.Millisecond * 10) } } }() diff --git a/pkg/rpc/registry.go b/pkg/rpc/registry.go index 6f8e7c7..878baab 100644 --- a/pkg/rpc/registry.go +++ b/pkg/rpc/registry.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "io" + "log" "reflect" "strings" "sync" @@ -149,6 +150,8 @@ func (r Registry[R]) makeRPC( case <-t.C: t.Stop() + log.Println("Timed out RPC", name, callID) + res <- response{"", nil, ErrCallTimedOut, true} return @@ -157,6 +160,8 @@ func (r Registry[R]) makeRPC( return } + log.Println("Received response", name, callID) + if msg.id == callID { res <- msg @@ -166,12 +171,16 @@ func (r Registry[R]) makeRPC( } }() + log.Println("Sending request", name, callID) + if _, err := conn.Write(b); err != nil { errs <- err return } + log.Println("Sent request", name, callID) + returnValues := []reflect.Value{} select { case rawReturnValue := <-res: @@ -291,6 +300,8 @@ func (r Registry[R]) Link(conn io.ReadWriteCloser) error { d := json.NewDecoder(conn) for { + log.Println("Receiving requests") + var res []json.RawMessage if err := d.Decode(&res); err != nil { errs <- err @@ -327,6 +338,8 @@ func (r Registry[R]) Link(conn io.ReadWriteCloser) error { return } + log.Println("Received request", functionName, callID) + var functionArgs []json.RawMessage if err := json.Unmarshal(res[3], &functionArgs); err != nil { errs <- err @@ -438,11 +451,15 @@ func (r Registry[R]) Link(conn io.ReadWriteCloser) error { return } + log.Println("Sending response", functionName, callID) + if _, err := conn.Write(b); err != nil { errs <- err return } + + log.Println("Sent response", functionName, callID) case 1: if res[0].Type().Implements(errorType) && !res[0].IsNil() { b, err := json.Marshal([]interface{}{false, callID, nil, res[0].Interface().(error).Error()}) @@ -452,11 +469,15 @@ func (r Registry[R]) Link(conn io.ReadWriteCloser) error { return } + log.Println("Sending response", functionName, callID) + if _, err := conn.Write(b); err != nil { errs <- err return } + + log.Println("Sent response", functionName, callID) } else { v, err := json.Marshal(res[0].Interface()) if err != nil { @@ -472,11 +493,15 @@ func (r Registry[R]) Link(conn io.ReadWriteCloser) error { return } + log.Println("Sending response", functionName, callID) + if _, err := conn.Write(b); err != nil { errs <- err return } + + log.Println("Sent response", functionName, callID) } case 2: v, err := json.Marshal(res[0].Interface()) @@ -494,11 +519,15 @@ func (r Registry[R]) Link(conn io.ReadWriteCloser) error { return } + log.Println("Sending response", functionName, callID) + if _, err := conn.Write(b); err != nil { errs <- err return } + + log.Println("Sent response", functionName, callID) } else { b, err := json.Marshal([]interface{}{false, callID, json.RawMessage(string(v)), res[1].Interface().(error).Error()}) if err != nil { @@ -507,11 +536,15 @@ func (r Registry[R]) Link(conn io.ReadWriteCloser) error { return } + log.Println("Sending response", functionName, callID) + if _, err := conn.Write(b); err != nil { errs <- err return } + + log.Println("Sent response", functionName, callID) } } }()