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

CP-17112 New JSON interface for more control over reaction to next shutdown message #3

Merged
merged 16 commits into from
May 17, 2016

Conversation

lindig
Copy link
Collaborator

@lindig lindig commented May 6, 2016

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/builds

I am happy to squash commits as some are just fixes for typos and such.

lindig added 16 commits April 29, 2016 14:53
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]>
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]>
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]>
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]>
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]>
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? *)
Copy link
Collaborator

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.

Copy link
Collaborator

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.

@simonjbeaumont simonjbeaumont merged commit 76060f0 into xapi-project:master May 17, 2016
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