- 24 10月, 2014 8 次提交
-
-
由 Daniel P. Berrange 提交于
Introduce a src/libvirt-storage.c file to hold all the methods related to the virStorage{Pool,Vol} types.
-
由 Daniel P. Berrange 提交于
Introduce a src/libvirt-stream.c file to hold all the methods related to the virStream type.
-
由 Daniel P. Berrange 提交于
Introduce a src/libvirt-secret.c file to hold all the methods related to the virSecret type.
-
由 Daniel P. Berrange 提交于
Introduce a src/libvirt-nodedev.c file to hold all the methods related to the virNodeDevice type.
-
由 Daniel P. Berrange 提交于
Introduce a src/libvirt-nwfilter.c file to hold all the methods related to the virNWFilter type.
-
由 Daniel P. Berrange 提交于
Introduce a src/libvirt-interface.c file to hold all the methods related to the virInterface type.
-
由 Daniel P. Berrange 提交于
Introduce a src/libvirt-network.c file to hold all the methods related to the virNetwork type.
-
由 Daniel P. Berrange 提交于
Introduce a src/libvirt-domain-snapshot.c file to hold all the methods related to the virDomainSnapshot type.
-
- 27 6月, 2014 1 次提交
-
-
由 Eric Blake 提交于
We publish libvirt-api.xml for others to use, and in fact, the libvirt-python bindings use it to generate python constants that correspond to our enum values. However, we had an off-by-one bug that any enum that relied on C's rules for implicit initialization of the first enum member to 0 got listed in the xml as having a value of 1 (and all later members of the enum were equally botched). The fix is simple - since we add one to the previous value when encountering an enum without an initializer, the previous value must start at -1 so that the first enum member is assigned 0. The python generator code has had the off-by-one ever since DV first wrote it years ago, but most of our public enums were immune because they had an explicit = 0 initializer. The only affected enums are: - virDomainEventGraphicsAddressType (such as VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_IPV4), since commit 987e31ed (libvirt v0.8.0) - virDomainCoreDumpFormat (such as VIR_DOMAIN_CORE_DUMP_FORMAT_RAW), since commit 9fbaff00 (libvirt v1.2.3) - virIPAddrType (such as VIR_IP_ADDR_TYPE_IPV4), since commit 03e0e79e (not yet released) Thanks to Nehal J Wani for reporting the problem on IRC, and for helping me zero in on the culprit function. * docs/apibuild.py (CParser.parseEnumBlock): Fix implicit enum values. Signed-off-by: NEric Blake <eblake@redhat.com>
-
- 13 5月, 2014 1 次提交
-
-
由 Michal Privoznik 提交于
Our documentation generator is a bit messy, to say the least. For instance, the description to return values of a function is searched within C comment. Currently, all lines that start with 'returns' or 'Returns' are viewed as return value description. However, there are some valid uses where the 'returns' word is in the middle of a sentence describing function behavior not the return value. And there are no places where 'returns' is used to describe return values. For instance: virDomainDetachDeviceFlags, virConnectNetworkEventRegisterAny and virDomainGetDiskErrors. This leads to HTML documemtation being generated incorrectly. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 18 3月, 2014 1 次提交
-
-
由 Daniel P. Berrange 提交于
Any source file which calls the logging APIs now needs to have a VIR_LOG_INIT("source.name") declaration at the start of the file. This provides a static variable of the virLogSource type. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 23 8月, 2013 1 次提交
-
-
由 Claudio Bley 提交于
Consistently use "is" or "is not" to compare variables to None, because doing so is preferrable, as per PEP 8 (http://www.python.org/dev/peps/pep-0008/#programming-recommendations): > Comparisons to singletons like None should always be done with is or > is not, never the equality operators.
-
- 30 7月, 2013 1 次提交
-
-
由 Yuri Chornoivan 提交于
Signed-off-by: NEric Blake <eblake@redhat.com>
-
- 25 6月, 2013 5 次提交
-
-
由 Jiri Denemark 提交于
This patch implements extensible variants of all internal migration APIs used for v3 migration.
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
All APIs that take typed parameters are only using params address in their entry point debug messages. With the new VIR_TYPED_PARAMS_DEBUG macro, all functions can easily log all individual typed parameters passed to them.
-
由 Jiri Denemark 提交于
This API is useful for checking whether only a specific subset of supported typed parameters were passed.
-
由 Jiri Denemark 提交于
-
- 24 4月, 2013 1 次提交
-
-
由 Daniel P. Berrange 提交于
Ensure that the driver struct field names match the public API names. For an API virXXXX we must have a driver struct field xXXXX. ie strip the leading 'vir' and lowercase any leading uppercase letters. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 08 2月, 2013 1 次提交
-
-
由 Guido Günther 提交于
-
- 02 2月, 2013 1 次提交
-
-
由 Eric Blake 提交于
Commit 6094ad7b (0.9.3 release) promoted several functions from internal to public, but forgot to fix the documentation generator to provide details about those functions. For an example of what this fixes, look at: file:///path/to/libvirt/docs/html/libvirt-libvirt.html#virEventAddHandle before and after the patch. * docs/apibuild.py (ignored_functions): Don't ignore functions that were turned into official API. * src/util/virevent.c: Fix comments to pass through parser.
-
- 01 2月, 2013 1 次提交
-
-
由 Claudio Bley 提交于
When a function has no associated information to one of its arguments or its return type we report it and stop with an error.
-
- 31 1月, 2013 1 次提交
-
-
由 Claudio Bley 提交于
When an exception happened inside the try clause in serialize_function, a new exception was raised in the except clause subsequently: Traceback (most recent call last): File "./apibuild.py", line 2529, in <module> rebuild("libvirt") File "./apibuild.py", line 2513, in rebuild builder.serialize() File "./apibuild.py", line 2467, in serialize self.serialize_function(output, function) File "./apibuild.py", line 2208, in serialize_function self.warning("Failed to save function %s info: " % name, `id.info`) TypeError: warning() takes exactly 2 arguments (3 given) Use the correct number of arguments for self.warning and print the original exception to stderr.
-
- 30 1月, 2013 1 次提交
-
-
由 Claudio Bley 提交于
Commit f24404a3 renamed virterror.c to virerror.c but forgot to change the reference in this file.
-
- 22 1月, 2013 2 次提交
-
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
-
- 14 1月, 2013 3 次提交
-
-
由 Daniel P. Berrange 提交于
This patch introduces support for LXC specific public APIs. In common with what was done for QEMU, this creates a libvirt_lxc.so library and libvirt/libvirt-lxc.h header file. The actual APIs are int virDomainLxcOpenNamespace(virDomainPtr domain, int **fdlist, unsigned int flags); int virDomainLxcEnterNamespace(virDomainPtr domain, unsigned int nfdlist, int *fdlist, unsigned int *noldfdlist, int **oldfdlist, unsigned int flags); which provide a way to use the setns() system call to move the calling process into the container's namespace. It is not practical to write in a generically applicable manner. The nearest that we could get to such an API would be an API which allows to pass a command + argv to be executed inside a container. Even if we had such a generic API, this LXC specific API is still useful, because it allows the caller to maintain the current process context, in particular any I/O streams they have open. NB the virDomainLxcEnterNamespace() API is special in that it runs client side, so does not involve the internal driver API. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Claudio Bley 提交于
When parsing the top level comment of a file, apibuild.py used to split on any ':' character of a line regarding the first part as a key for a setting, e.g. "Summary". The second part would then be assigned as the value for that key. This means you could not use a ':' character inside those comments without ill effects. Now, a key must consist solely of alphanumeric characters, '_' or '.'.
-
由 Claudio Bley 提交于
-
- 08 1月, 2013 1 次提交
-
-
由 Claudio Bley 提交于
-
- 12 10月, 2012 1 次提交
-
-
由 Ján Tomko 提交于
-
- 18 9月, 2012 1 次提交
-
-
由 Eric Blake 提交于
A block commit moves data in the opposite direction of block pull. Block pull reduces the chain length by dropping backing files after data has been pulled into the top overlay, and is always safe; block commit reduces the chain length by dropping overlays after data has been committed into the backing file, and any files that depended on base but not on top are invalidated at any point where they have unallocated data that is now pointing to changed contents in base. Both directions are useful, however: a qcow2 layer that is more than 50% allocated will typically be faster with a pull operation, while a qcow2 layer with less than 50% allocation will be faster as a commit operation. Committing across multiple layers can be more efficient than repeatedly committing one layer at a time, but requires extra support from the hypervisor. This API matches Jeff Cody's proposed qemu command 'block-commit': https://lists.gnu.org/archive/html/qemu-devel/2012-09/msg02226.html Jeff's command is still in the works for qemu 1.3, and may gain further enhancements, such as the ability to control on-error handling (it will be comparable to the error handling Paolo is adding to 'drive-mirror', so a similar solution will be needed when I finally propose virDomainBlockCopy with more functionality than the basics supported by virDomainBlockRebase). However, even without qemu support, this API will be useful for _offline_ block commits, by wrapping qemu-img calls and turning them into a block job, so this API is worth committing now. For some examples of how this will be implemented, all starting with the chain: base <- snap1 <- snap2 <- active + These are equivalent: virDomainBlockCommit(dom, disk, NULL, NULL, 0, 0) virDomainBlockCommit(dom, disk, NULL, "active", 0, 0) virDomainBlockCommit(dom, disk, "base", NULL, 0, 0) virDomainBlockCommit(dom, disk, "base", "active", 0, 0) but cannot be implemented for online qemu with round 1 of Jeff's patches; and for offline images, it would require three back-to-back qemu-img invocations unless qemu-img is patched to allow more efficient multi-layer commits; the end result would be 'base' as the active disk with contents from all three other files, where 'snap1' and 'snap2' are invalid right away, and 'active' is invalid once any further changes to 'base' are made. + These are equivalent: virDomainBlockCommit(dom, disk, "snap2", NULL, 0, 0) virDomainBlockCommit(dom, disk, NULL, NULL, 0, _SHALLOW) they cannot be implemented for online qemu, but for offline, it is a matter of 'qemu-img commit active', so that 'snap2' is now the active disk with contents formerly in 'active'. + Similarly: virDomainBlockCommit(dom, disk, "snap2", NULL, 0, _DELETE) for an offline domain will merge 'active' into 'snap2', then delete 'active' to avoid leaving a potentially invalid file around. + This version: virDomainBlockCommit(dom, disk, NULL, "snap2", 0, _SHALLOW) can be implemented online with 'block-commit' passing a base of snap1 and a top of snap2; and can be implemented offline by 'qemu-img commit snap2' followed by 'qemu-img rebase -u -b snap1 active' * include/libvirt/libvirt.h.in (virDomainBlockCommit): New API. * src/libvirt.c (virDomainBlockCommit): Implement it. * src/libvirt_public.syms (LIBVIRT_0.10.2): Export it. * src/driver.h (virDrvDomainBlockCommit): New driver callback. * docs/apibuild.py (CParser.parseSignature): Add exception.
-
- 27 7月, 2012 1 次提交
-
-
由 Peter Krempa 提交于
The method was not existing and did not allow to diagnose problems.
-
- 24 5月, 2012 1 次提交
-
-
由 Daniel P. Berrange 提交于
The apibuild.py parser needs to be able to parse & ignore any VIR_ENUM_IMPL/VIR_ENUM_DECL macros in the source. Add some special case code to deal with this rather than trying to figure out a generic syntax for parsing macros. * apibuild.py: Special case VIR_ENUM_IMPL & VIR_ENUM_DECL
-
- 02 2月, 2012 1 次提交
-
-
由 Eric Blake 提交于
Qemu is adding the ability to do a partial rebase. That is, given: base <- intermediate <- current virDomainBlockPull will produce: current but qemu now has the ability to leave base in the chain, to produce: base <- current Note that current qemu can only do a forward merge, and only with the current image as the destination, which is fully described by this API without flags. But in the future, it may be possible to enhance this API for additional scenarios by using flags: Merging the current image back into a previous image (that is, undoing a live snapshot), could be done by passing base as the destination and flags with a bit requesting a backward merge. Merging any other part of the image chain, whether forwards (the backing image contents are pulled into the newer file) or backwards (the deltas recorded in the newer file are merged back into the backing file), could also be done by passing a new flag that says that base should be treated as an XML snippet rather than an absolute path name, where the XML could then supply the additional instructions of which part of the image chain is being merged into any other part. * include/libvirt/libvirt.h.in (virDomainBlockRebase): New declaration. * src/libvirt.c (virDomainBlockRebase): Implement it. * src/libvirt_public.syms (LIBVIRT_0.9.10): Export it. * src/driver.h (virDrvDomainBlockRebase): New driver callback. * src/rpc/gendispatch.pl (long_legacy): Add exemption. * docs/apibuild.py (long_legacy_functions): Likewise.
-
- 14 9月, 2011 1 次提交
-
-
由 Osier Yang 提交于
The generated docs are: libvirt-qemu-api.xml, libvirt-qemu-refs.xml
-
- 02 9月, 2011 1 次提交
-
-
由 Jim Fehlig 提交于
Includes impl of python binding since the generator was not able to cope. Note: Requires gendispatch.pl patch from Matthias Bolte https://www.redhat.com/archives/libvir-list/2011-August/msg01367.html
-
- 22 7月, 2011 1 次提交
-
-
由 Adam Litke 提交于
Set up the types for the block pull functions and insert them into the virDriver structure definition. Symbols are exported in this patch to prevent documentation compile failures. * include/libvirt/libvirt.h.in: new API * src/driver.h: add the new entry to the driver structure * python/generator.py: fix compiler errors, the actual python bindings * are implemented later * src/libvirt_public.syms: export symbols * docs/apibuild.py: Extend 'unsigned long' parameter exception to this * API
-
- 19 7月, 2011 1 次提交
-
-
由 Daniel P. Berrange 提交于
The current API build scripts will continue and exit with a zero status even if they find problems. This has been the cause of many build problems, or hidden build errors, in the past. Change the scripts so they always exit with a non-zero status for any problems they do not understand. Also turn off all debug output by default so they respect $(AM_V_GEN) * docs/Makefile.am: Use $(AM_V_GEN) for API/HTML scripts * docs/apibuild.py, python/generator.py: Exit with non-zero status if problems are found. Also be silent, not outputting any debug messages. * src/Makefile.am: Use $(AM_V_GEN) for ESX generator * python/Makefile.am: Tweak rule
-
- 22 6月, 2011 1 次提交
-
-
由 Daniel Veillard 提交于
This fixes a number of issues most of them raised by Eric Blake on the generated documentation output: - parsing of "long long int" and similar - add parsing of unions within a struct - remove spurious " * " fron comments on structure fields and enums - fix concatenation of base type and name in arrays - extend XSLT to cope with union in structs * docs/apibuild.py: fix and extend API extraction tool * docs/newapi.xsl: extend the stylesheets to cope with union in public structures
-