-
Notifications
You must be signed in to change notification settings - Fork 4
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
CP-17112 New JSON interface for more control over reaction to next shutdown message #3
Conversation
The reaction of the kernel can now be controlled by a JSON object that describes how the kernel reacts to messages and how it acknowledges them. Parsing the JSON object is now in place but reactions are not yet implemented. Signed-off-by: Christian Lindig <[email protected]>
Signed-off-by: Christian Lindig <[email protected]>
Not all behaviour is fully tested yet. The kernel receives a JSON message that tells it to * either do something immediately * do something when the next control message arrives and how to acknowledge that message Currently the message is passed to the kernel via Xen Store. Signed-off-by: Christian Lindig <[email protected]>
Signed-off-by: Christian Lindig <[email protected]>
Signed-off-by: Christian Lindig <[email protected]>
Signed-off-by: Christian Lindig <[email protected]>
So far, Travis would only deploy a binary to GitHub when buiding for the xapi-project account. Now it deploys also when building for another account. The binary is deployed to the GitHub repo that it is building, which is not xapi-project in that case. Signed-off-by: Christian Lindig <[email protected]>
Signed-off-by: Christian Lindig <[email protected]>
This information is going to change in the long run but we need it to use the OCaml .travis that checks for them. Signed-off-by: Christian Lindig <[email protected]>
Signed-off-by: Christian Lindig <[email protected]>
With no longer using pinned packages we also no longer need to build inside a Docker container but can let opam manage compilation. This leads to a vastly simpler .travis. Signed-off-by: Christian Lindig <[email protected]>
Signed-off-by: Christian Lindig <[email protected]>
I was wrong about not needing the pins. I had overlooked that my packages were still pinned and while code compiles withou pinned packages, it does not implement suspend() correctly. Signed-off-by: Christian Lindig <[email protected]>
The remove target is called by opam (via opam/opam). Signed-off-by: Christian Lindig <[email protected]>
Signed-off-by: Christian Lindig <[email protected]>
Jon Ludlam helped to move pins forward. Signed-off-by: Christian Lindig <[email protected]>
return (Some msg) | ||
read client path >>= | ||
( function | ||
| "" -> return None (* XXX right design choice? *) |
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.
I think you are right to be concerned about conflating the empty string and ENOENT. If you returned Some ""
it could still be pattern-matched.
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.
On discussion we think this is fine and is symmetric protocol with the actual shutdown protocol.
This pull requests implements a richer behaviour of the VM towards the next incoming shutdown message: how to acknowledge it, and how to react. This is now described by a JSON object read from
control/testing
. The current interface uses some ad-hoc string syntax that is less expressive.The goal is to build this VM on Travis and to release it as a binary on GitHub such that test code can download it. This should be accomplished by the
.travis.yml
but needs to be checked. See also: https://travis-ci.org/lindig/xen-test-vm/buildsI am happy to squash commits as some are just fixes for typos and such.