76 Commits

Author SHA1 Message Date
Geoff Hickey
fcd4f72b3c Rename the main structure types for clarity
libvirt follows a convention where structure types used in its API are
named "remote_nonnull_domain", and optional values for those  structures
are called "remote_domain". The generator was translating these into go
names like "NonnullDomain" and "Domain". In go this seems unnatural, and
doesn't match the way the pre-generator version of go-libvirt named
things. So this commit changes the names: "remote_nonnull_domain" will
now be "Domain" in go; "remote_domain" will be "OptDomain". This pattern
is applied to all types.
2017-11-20 13:50:32 -05:00
Geoff Hickey
7c0f66a1e9
Merge pull request #49 from digitalocean/geoff/generate-lv-bindings
Geoff/generate lv bindings
2017-11-17 14:02:45 -05:00
Geoff Hickey
382425aa72 Update the README. 2017-11-16 19:56:41 -05:00
Geoff Hickey
1e71d0e45e Shorten an error path 2017-11-16 19:27:00 -05:00
Geoff Hickey
3c5bd59dc7 Build changes:
- Bump the minimum libvirt version from 1.2.2 to 1.2.12, because
virDomainDefineXMLFlags wasn't introduced until that version.
- Use the correct format for the generated file notice, so that golint
ignores the generated files.
2017-11-16 19:14:34 -05:00
Geoff Hickey
57b9cae05d add licenses and fix the license checking script. 2017-11-16 18:44:11 -05:00
Geoff Hickey
53846d5d14 oops. Fix the goyacc import URI. 2017-11-16 17:53:31 -05:00
Geoff Hickey
e6dc7bd464 travis: move goyacc install to before-install section 2017-11-16 17:41:26 -05:00
Geoff Hickey
94eb6fad03 travis build changes
- Update go version to 1.9.
- add go generate step.
2017-11-16 17:29:58 -05:00
Geoff Hickey
c73820057a fix an integration test failure. 2017-11-16 17:28:40 -05:00
Geoff Hickey
45342c3080 fix another integration test problem. 2017-11-16 17:16:10 -05:00
Geoff Hickey
71f606ddd7 Add comments to generated code, fix integration test. 2017-11-16 17:14:05 -05:00
Geoff Hickey
4ec9ce0aea git add parser output files in lvgen 2017-11-16 15:56:36 -05:00
Geoff Hickey
f0eaf10a26 Review comments 2017-11-16 15:49:40 -05:00
Geoff Hickey
96763e5316 Rename "String" type to "OptString" 2017-11-16 14:36:31 -05:00
Geoff Hickey
b59e9d42f4 Migrate all libvirt calls to the generated code.
- Update libvirt.go so that all libvirt calls now go through the
generated routines.
- Remove some libvirt routines that had the same name as generated ones,
leave the rest as convenience routines.
- Fix the handling of Optional-values (the declarations of which in the
.x file look like pointers)
2017-11-16 14:17:46 -05:00
Geoff Hickey
a3bd42a5b1 Cleanup, and fix decoding of TypedParams. 2017-11-14 18:59:55 -05:00
Geoff Hickey
deb7a54ff8 Generate libvirt procedure wrappers.
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.
2017-11-13 15:18:18 -05:00
Geoff Hickey
fb16117ff9 Generate libvirt structs, unions, typedefs. 2017-11-07 16:05:12 -05:00
Geoff Hickey
f88cbd7a8e Move the constants.go template to its own file. 2017-11-03 13:58:41 -04:00
Geoff Hickey
6e924657b1 Move the rpcgen lexer to its own file. 2017-11-03 13:37:16 -04:00
Geoff Hickey
5a6654f07a Generate libvirt constants from libvirt sources.
- 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.
2017-11-02 19:42:44 -04:00
Katrina Ellison Geltman
8b2644f7ff Merge pull request #47 from digitalocean/domainstate-const
Explicitly specify type of DomainState constants
2017-10-23 18:14:56 -04:00
Katrina Ellison Geltman
85330a67c6 Explicitly specify type of DomainState constants 2017-10-23 17:23:17 -04:00
Geoff Hickey
a339d0ac95 Handle TypedParamStrings (#46)
* Handle TypedParamStrings

Add handling for TypedParamStrings, which are different from the other
TypedParam... types in that the decoded value is variable-sized.
2017-09-15 10:48:46 -04:00
Geoff Hickey
c8e4b6a7b8 Add Get/SetBlockIoTune to go-libvirt API. (#45)
* 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.
2017-08-31 11:21:31 -04:00
Geoff Hickey
85dc33f30e Merge pull request #44 from digitalocean/gh/fix-compiler-warnings
fix a trio of compiler warnings
2017-08-01 17:24:15 -04:00
Geoff Hickey
1df4a7eec4 fix a trio of compiler warnings
Fix three compiler warnings caused by using format strings in calls to
testing.Error() and Fatal(). Switched to Errorf() and Fatalf().
2017-08-01 16:52:12 -04:00
Ben LeMasurier
975d5a18d5 Updates README (#43)
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.
2017-06-22 10:04:46 -06:00
Amanda H. L. de Andrade
9ca7034516 Add DomainMemoryStats method (#38) (#39) 2017-06-02 11:28:20 -06:00
Alexander Polakov
c09ce7b21d Add Reboot and Reset methods (#37) 2017-05-04 11:30:22 -05:00
Alexander Polakov
208ef2aff1 Add Shutdown() method (#36)
* Add Shutdown() method
2017-05-04 10:39:45 -05:00
Alexander Polakov
d41d9eb855 Add DomainCreate method (#35)
* Adds DomainCreateWithFlags
2017-05-04 10:17:25 -05:00
Ben LeMasurier
b92ccddb00 Adds libvirt 3.1.0 integration test target (#34) 2017-04-19 10:00:23 -06:00
Ben LeMasurier
2609dd2697 Add Secrets() (#29)
This adds the `Secrets()` method, used to retrieve all secrets managed
by the libvirt daemon.
2017-01-19 20:40:31 -06:00
Ben LeMasurier
cfa567708b Adds StoragePool(), StoragePoolRefresh() (#28)
This adds two new methods:
- `StoragePool()`, used to lookup a storage pool by name.
- `StoragePoolRefresh()`, used to refresh a storage pool by name.
2017-01-09 14:54:30 -07:00
Ben LeMasurier
591f6798f1 Adds StoragePools() (#27)
* Adds StoragePools()

This adds the ability to list storage pools.
2017-01-06 15:58:27 -06:00
Michael Bruskov
85674d25f7 Add DefineXML() (#26) 2016-12-09 09:49:14 -07:00
Michael Bruskov
fe0f99a7c1 Add DomainState method. (#23)
Returns state of the domain.
2016-12-02 10:54:04 -07:00
Ben LeMasurier
953e83ac30 Merge pull request #19 from digitalocean/capabilities
Adds Capabilities()
2016-12-01 14:19:01 -07:00
Ben LeMasurier
5a1fe4c14a Adds Capabilities()
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.
2016-12-01 14:09:24 -07:00
Ben LeMasurier
311150f931 Merge pull request #24 from digitalocean/dumpxml
Adds support for dumping domain XML
2016-12-01 11:48:52 -07:00
Ben LeMasurier
c6e0d02f28 Adds support for dumping domain XML
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`.
2016-11-30 19:31:45 -07:00
Ben LeMasurier
850adbae3f Merge pull request #20 from simar7/master
destroy: Add the ability to destroy a KVM domain.
2016-11-03 08:27:33 -06:00
Simarpreet Singh
693bffa997
destroy: Adding the ability to destroy a domain.
Signed-off-by: Simarpreet Singh <simar@linux.com>
2016-11-02 20:47:37 -07:00
Simarpreet Singh
e7178e25dc Merge pull request #3 from digitalocean/master
Merging from upstream

Signed-off-by: Simarpreet Singh <simar@linux.com>
2016-11-02 16:46:48 -07:00
Ben LeMasurier
3f7af99055 Merge pull request #18 from digitalocean/integration-tests
ci: install libvirt for integration testing
2016-10-26 11:20:45 -06:00
Ben LeMasurier
4ad0ae7f82 ci: install libvirt for integration testing
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().
2016-10-20 14:53:29 -06:00
Simarpreet Singh
53bb4bc9da Merge pull request #1 from digitalocean/master
Merging from upstream

Acked-by: Simarpreet Singh <simar@opendns.com>
2016-10-07 13:45:54 -07:00
Matt Layher
00a2c05c46 Merge pull request #15 from digitalocean/readme-contributing-irc
CONTRIBUTING, README: add IRC channel information
2016-10-04 20:27:11 -04:00