-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added function related to the debugger #528
Added function related to the debugger #528
Conversation
Signed-off-by: Matej Pavlovic <[email protected]>
# Conflicts: # pkg/eventlog/eventwriter.go # pkg/eventlog/eventwritergzip.go # pkg/eventlog/eventwritersqlite.go # pkg/eventlog/recorder.go # workers.go
…ventList and an error
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR! I made some comments, pls. have a look. I was sometimes rather brief, so if anything is not clear, please let me know immediately and I'll explain more.
cleaned up newWSWriter(), add optional -d flag for debug mode and refactor argument parsing
Signed-off-by: Matej Pavlovic <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the fixes! There are only two minor things left, very easy to address, we can merge when you have them fixed.
I pushed another commit, simplifying a part of the code (avoiding conversions from |
…tion use logger in Write
Signed-off-by: Matej Pavlovic <[email protected]>
Signed-off-by: Matej Pavlovic <[email protected]>
40583f4
to
12827ef
Compare
886b601
into
consensus-shipyard:visualization
Generalize and simplify the interceptor Generalize: The interceptor can now interfere with the intercepted events. Instead of returning just an error value, it now also returns an `EventList`. It is those returned events (instead of the input events) that Mir uses for delivering to its modules. Simplify: The `EventRecord`s have been overused in parts of the code where they did not necessarily belong. They are now replaced by simple `EventList`s wherever appropriate. Signed-off-by: Matej Pavlovic <[email protected]> Co-authored-by: Schmit Catherine <[email protected]> Co-authored-by: Matej Pavlovic <[email protected]> Add run.sh to pingpong for convenience Signed-off-by: Matej Pavlovic <[email protected]> Implement WebSocket debugger (consensus-shipyard#528) Signed-off-by: Matej Pavlovic <[email protected]> Co-authored-by: Schmit Catherine <[email protected]> Co-authored-by: Matej Pavlovic <[email protected]> Add Mir debugger frontend (consensus-shipyard#527) Create frontend to connect to MIR nodes to accept or decline new log messages Co-authored-by: Andrea Jiang <[email protected]> Event modification through frontend (consensus-shipyard#541) * added the replace event functionality for the debugger in the backend, using protojson.Marshal instead of json.Marshal * Satisfy linter * Do not re-generate timestamp in debugger * Update the frontend deparser to support the protojson parsing Signed-off-by: Matej Pavlovic <[email protected]> Co-authored-by: Matej Pavlovic <[email protected]> Co-authored-by: Andrea Jiang <[email protected]> Co-authored-by: Schmit Catherine <[email protected]> Modify event data using the debugger (consensus-shipyard#533) Added the possibility to modify the logs that each MIR node sends by modifying the incoming message. (For now, only the JSON leaves are modifiable. ) All the JSON types have been taken care of: it's important to notice that once a 'null' field is clicked to modify, it will become a 'string type afterward'. For other types, the type will be preserved if the newly modified value is acceptable for that specific type. For example, inserting 'true' into a boolean field will remain a boolean, but using 'tru' will result in it becoming a string field. Co-authored-by: Andrea Jiang <[email protected]> Disconnecting the debugger (consensus-shipyard#534) * Added 'close connection' button to close the connection to the specific websocket * Decline any current Log when clicking the 'close connection' button Co-authored-by: Andrea Jiang <[email protected]> Async debug mode (consensus-shipyard#535) Add the possibility to automatically accept the incoming logs from the MIR node. Co-authored-by: Andrea Jiang <[email protected]> Describe debugger events (consensus-shipyard#542) Co-authored-by: Andrea Jiang <[email protected]> Latest debugger event on top (consensus-shipyard#543) Co-authored-by: Andrea Jiang <[email protected]> Update debugger log message (consensus-shipyard#544) Co-authored-by: Andrea Jiang <[email protected]> restructure original visualization code
Generalize and simplify the interceptor Generalize: The interceptor can now interfere with the intercepted events. Instead of returning just an error value, it now also returns an `EventList`. It is those returned events (instead of the input events) that Mir uses for delivering to its modules. Simplify: The `EventRecord`s have been overused in parts of the code where they did not necessarily belong. They are now replaced by simple `EventList`s wherever appropriate. Signed-off-by: Matej Pavlovic <[email protected]> Co-authored-by: Schmit Catherine <[email protected]> Co-authored-by: Matej Pavlovic <[email protected]> Add run.sh to pingpong for convenience Signed-off-by: Matej Pavlovic <[email protected]> Implement WebSocket debugger (consensus-shipyard#528) Signed-off-by: Matej Pavlovic <[email protected]> Co-authored-by: Schmit Catherine <[email protected]> Co-authored-by: Matej Pavlovic <[email protected]> Add Mir debugger frontend (consensus-shipyard#527) Create frontend to connect to MIR nodes to accept or decline new log messages Co-authored-by: Andrea Jiang <[email protected]> Event modification through frontend (consensus-shipyard#541) * added the replace event functionality for the debugger in the backend, using protojson.Marshal instead of json.Marshal * Satisfy linter * Do not re-generate timestamp in debugger * Update the frontend deparser to support the protojson parsing Signed-off-by: Matej Pavlovic <[email protected]> Co-authored-by: Matej Pavlovic <[email protected]> Co-authored-by: Andrea Jiang <[email protected]> Co-authored-by: Schmit Catherine <[email protected]> Modify event data using the debugger (consensus-shipyard#533) Added the possibility to modify the logs that each MIR node sends by modifying the incoming message. (For now, only the JSON leaves are modifiable. ) All the JSON types have been taken care of: it's important to notice that once a 'null' field is clicked to modify, it will become a 'string type afterward'. For other types, the type will be preserved if the newly modified value is acceptable for that specific type. For example, inserting 'true' into a boolean field will remain a boolean, but using 'tru' will result in it becoming a string field. Co-authored-by: Andrea Jiang <[email protected]> Disconnecting the debugger (consensus-shipyard#534) * Added 'close connection' button to close the connection to the specific websocket * Decline any current Log when clicking the 'close connection' button Co-authored-by: Andrea Jiang <[email protected]> Async debug mode (consensus-shipyard#535) Add the possibility to automatically accept the incoming logs from the MIR node. Co-authored-by: Andrea Jiang <[email protected]> Describe debugger events (consensus-shipyard#542) Co-authored-by: Andrea Jiang <[email protected]> Latest debugger event on top (consensus-shipyard#543) Co-authored-by: Andrea Jiang <[email protected]> Update debugger log message (consensus-shipyard#544) Co-authored-by: Andrea Jiang <[email protected]> restructure original visualization code
I added the functions related to the new interceptor with the basic functionality to accept or decline events. In main.go of the pingpongapplication, I added a few lines to use this interceptor.