Add qemu-guest-agent support for kvm instance

Registered by wangpan

Currently nova doesn't support qemu-guest-agent or other agent like it for kvm instance, if it is supported then we can get guest info on the compute node through read/write the socket file(using qmp protocol) by the guest agent, I think this is a useful way to help us implement guest monitor in cloud environment.
References:
http://libvirt.org/formatdomain.html#elementCharChannel
http://wiki.libvirt.org/page/Qemu_guest_agent
http://wiki.qemu.org/Features/QAPI/GuestAgent

DocImpact:
1. If you want to use this feature, you need to add the property 'hw_qemu_guest_agent=yes' to the image you used to create instance, the command is like below:
nova image-meta 659cfe93-3d81-496f-a98c-cc062eb1580b set hw_qemu_guest_agent=yes
2. If you set 'hw_qemu_guest_agent=no' to the image metadata, the qga support will be disabled.
3. If you are using devstack to test this feature, you should pay attention to this bug https://bugs.launchpad.net/nova/+bug/1227912

Blueprint information

Status:
Complete
Approver:
Russell Bryant
Priority:
Low
Drafter:
None
Direction:
Approved
Assignee:
wangpan
Definition:
Approved
Series goal:
Accepted for havana
Implementation:
Implemented
Milestone target:
milestone icon 2013.2
Started by
Russell Bryant
Completed by
Russell Bryant

Related branches

Sprints

Whiteboard

https://review.openstack.org/#/c/36372/ ----Added unix type channel support for qemu/kvm

Gerrit topic: https://review.openstack.org/#q,topic:bp/unix-virtio-serial-support,n,z

Addressed by: https://review.openstack.org/36372
    Added unix type channel support for qemu/kvm

The name & description of this blueprint is really bad. This is not about supporting 'unix socket type' for KVM, it is about adding support for the QEMU guest agent. Please rename this blueprint to reflect this .

Gerrit topic: https://review.openstack.org/#q,topic:bp/qemu-guest-agent-support,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/Implements,n,z

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.