The generated wrappers have an argument for every field in their "Args"
struct, and return everything in their "Ret" struct (these structs are
defined in the protocol file, and identified by procedure name).
Marshaling and unmarshaling is handled inside the generated procedures.
- Add a yacc-based parser and a hand-written lexer to read the
remote_protocol.x file from libvirt's sources.
- Use the new parser to generate the constants used to communicate with
libvirt.
* Handle TypedParamStrings
Add handling for TypedParamStrings, which are different from the other
TypedParam... types in that the decoded value is variable-sized.
* Add Get/SetBlockIoTune to go-libvirt API.
This adds two libvirt entry points to the go-libvirt API:
virDomainSetBlockIoTune and virDomainGetBlockIoTune. These can be used
to control block device throttling for a VM.
This updates the project README, removing the pre-production warning
and adding a note about the libvirt project's feelings surrounding
direct interaction with the RPC interface.
This adds a new method, Capabilities(), which returns an XML
definition of the hypervisor's system capabilities, much like
`virsh capabilities`.
I've only included integration tests for these two methods due to the
large amount of data returned by the capabilities call.
This adds support for dumping a domain's XML definition, akin to `virsh
dumpxml <domain>`. The returned data is quite large so I've included an
integration test rather than adding a huge blob of hex to `libvirttest`.
This modifies the travis-ci configuration to build and install libvirt
1.2.2 and 2.3.0 for integration testing. Simple integration tests have
been included for Connect() and Disconnect().
* Replaced scripts/golint.sh with built-in golint flag.
Fixes issue #16.
Should I delete the scripts/golint.sh?
* Added @mkoppmann to the AUTHORS file.
* Delete golint.sh as it is not needed anymore
Further testing reveals we need some additional padding on the request
passed to libvirt when performing migrations. I believe this is due to
the structure alignment normally provided automatically by the compiler.
In testing, this fixes an error I was seeing: "Unable to decode message
paylaod", returned from libvirt when performing migrations.
This adds basic support for domain migrations from one hypervisor to
another. Migration options, e.g., live, tunneled, compressed, etc..,
are specified by the constants described `constants.Migrate*`.
Two unknowns remain, Libvirt specifies `RemoteParameters` and `CookieIn`.
In testing both values are always set to 0 by `virsh` and the source
does not provide clear definitions of their purpose. For now, using
the same zero'd values used by `virsh` will be Good Enough.