Skip to content
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

Merged
merged 19 commits into from
Feb 6, 2024

Conversation

Cath3876
Copy link

@Cath3876 Cath3876 commented Dec 7, 2023

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.

Copy link
Contributor

@matejpavlovic matejpavlovic left a 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.

pkg/debugger/debugger.go Outdated Show resolved Hide resolved
pkg/debugger/debugger.go Outdated Show resolved Hide resolved
pkg/debugger/debugger.go Outdated Show resolved Hide resolved
pkg/debugger/debugger.go Outdated Show resolved Hide resolved
pkg/debugger/debugger.go Outdated Show resolved Hide resolved
pkg/debugger/debugger.go Outdated Show resolved Hide resolved
pkg/debugger/debugger.go Outdated Show resolved Hide resolved
pkg/debugger/debugger.go Outdated Show resolved Hide resolved
pkg/debugger/debugger.go Outdated Show resolved Hide resolved
samples/pingpong/main.go Outdated Show resolved Hide resolved
Cath3876 and others added 4 commits January 30, 2024 14:46
cleaned up newWSWriter(),
add optional -d flag for debug mode and refactor argument parsing
Copy link
Contributor

@matejpavlovic matejpavlovic left a 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.

pkg/debugger/debugger.go Outdated Show resolved Hide resolved
pkg/debugger/debugger.go Outdated Show resolved Hide resolved
@matejpavlovic
Copy link
Contributor

I pushed another commit, simplifying a part of the code (avoiding conversions from interface{} to string). It was simpler to just do then write about it, so here it is.

@matejpavlovic matejpavlovic merged commit 886b601 into consensus-shipyard:visualization Feb 6, 2024
3 checks passed
komplexon3 pushed a commit to komplexon3/mir that referenced this pull request Mar 29, 2024
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
komplexon3 pushed a commit to komplexon3/mir that referenced this pull request Apr 1, 2024
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants