Add a reconnect mechanism to the MethodCall protocol
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Landscape Client |
Fix Released
|
Low
|
Free Ekanayaka |
Bug Description
The MethodCall protocol what will be used for inter-process
communication between the various Landscape client components should be
robust enough to transparently:
1) Keep trying to connect if the very fist attempt failed (for instance the
remote process we're trying to contact is not yet ready to accept
connections).
2) Try to reconnect if the connection drops (for instance the remote
process died and the watchdog started it again).
3) In case a MethodCall request failed because it was issued during a
connection blackout (see 2), the protocol should try to perform it
again as soon as the connection gets established again (for instance
a monitor plugin tries to call a RemoteBroker.
broker is restarting).
affects landscape-client
status inprogress
importance low
assignee free.ekanayaka
milestone 1.4.4
Related branches
- Free Ekanayaka (community): Approve
- Thomas Herve (community): Needs Fixing
- Jamu Kakar (community): Approve
-
Diff: 688 lines (+486/-46)3 files modifiedlandscape/__init__.py (+1/-1)
landscape/lib/amp.py (+179/-25)
landscape/lib/tests/test_amp.py (+306/-20)
tags: | added: fix-it-friday |
Changed in landscape-client: | |
milestone: | 1.4.4 → 1.4.5 |
Changed in landscape-client: | |
status: | In Progress → Fix Committed |
tags: | added: testing |
tags: | added: needs-testing |
tags: | removed: testing |
Changed in landscape-client: | |
status: | Fix Committed → Fix Released |
Tested on a not-yet-committed branch, that makes all services (watchdog, broker, monitor and manager) talk over AMP. I tried various combinations of killing the broker, the monitor and the manager, and the system resumes fine and correctly talks to the server (accepted types etc.).