summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Update API support.1.19.62Richard W.M. Jones2012-11-203-0/+1881
|
* Add Lua bindings.Richard W.M. Jones2012-11-171-0/+7
| | | | | | | | These are relatively complete, although only lightly tested. Missing: - events - last_errno - user_cancel
* tests: Add 'make check-slow' rule to recursively run slow/long-running tests.Richard W.M. Jones2012-11-131-0/+4
|
* tests: Replace 'make extra-tests' with individual tests.Richard W.M. Jones2012-11-131-8/+53
| | | | | | | | | | | | | | | | | | | | | | | | | 'make extra-tests' was a monolithic set of tests that did all sorts of things: valgrind, tests over local guests, tests with upstream qemu, tests with upstream libvirt, tests with the appliance attach method. This made it hard to perform individual tests, eg. just valgrind testing. It was also hard to maintain because the tests were not located in the same directories as the programs and sometimes duplicated tests that were run elsewhere. This commit splits up 'make extra-tests' into 5 separate targets: make check-valgrind # run a subset of tests under valgrind make check-valgrind-local-guests # test under valgrind with local guests make check-with-appliance # test with attach-method == appliance make check-with-upstream-qemu # test with an alternate/upstream qemu make check-with-upstream-libvirt # test with an alternate/upstream libvirt (You can also still run 'make extra-tests' which is now simply a rule that runs the above 5 targets in order). This replaces everything that was in the tests/extra directory, so that has now gone.
* Various fixes to API support script.Richard W.M. Jones2012-11-1211-49/+5373
| | | | | Remove internal structures, fix it so it works with the new code layout under src/
* lib: Split up huge src/guestfs.c into logical compilation units.Richard W.M. Jones2012-11-128-540/+669
| | | | | | | | | | | | | | | | | | | This file had grown by accretion to include: - code related to handles (now in src/handle.c) - safe allocation (src/alloc.c) - debug, errors, warnings (src/errors.c) - private data (src/private-data.c) - miscellaneous functions (src/canonical-name.c, src/utils.c) This commit also removes about a dozen #include files which were probably not really used. This is just code motion.
* lib: Fix memory leak in tmpdir/cachedir code (found by valgrind).Richard W.M. Jones2012-11-101-0/+3
| | | | This fixes commit 1efed122c07792f4c66a4083159cfacfb1893212.
* lib: Modify library code to use guestfs_{push,pop}_error_handler.Richard W.M. Jones2012-11-095-34/+33
| | | | | This is less efficient than directly manipulating g->error_cb, but easier to maintain.
* lib: Add new C API calls: guestfs_push_error_handler,Richard W.M. Jones2012-11-093-11/+89
| | | | | | | | | | | | | | | | | guestfs_pop_error_handler. The addition of these calls makes it much simpler to temporarily disable or ignore errors: guestfs_push_error_handler (g, NULL, NULL); guestfs_mkdir (g, "/foo"); /* We don't care if this fails. */ guestfs_pop_error_handler (g); Note these calls are used by the C API only. They are not necessary in other languages, because those map errors to exceptions. The subsequent commits change existing code to use push/pop instead of laboriously saving and restoring the error handler.
* lib: Break long line in definition of guestfs_set_error_handler.Richard W.M. Jones2012-11-091-1/+2
| | | | This is just a whitespace change.
* lib: Rework temporary and cache directory code.Richard W.M. Jones2012-11-099-117/+208
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New APIs: set-tmpdir, get-tmpdir, set-cachedir, get-cachedir. The current code has evolved over time and has a number of problems: (a) A single environment variable ($TMPDIR) controls the location of several directories. (b) It's hard for the library user to predict which directory libguestfs will use, unless the user simulates the same internal steps that libguestfs performs. This commit fixes these issues. (a) Now three environment variables control the location of all small temporary files, and the appliance cache: For temporary files: $LIBGUESTFS_TMPDIR or $TMPDIR or /tmp. For the appliance cache: $LIBGUESTFS_CACHEDIR or $TMPDIR or /var/tmp. The user can also set these directories explicitly through API calls (guestfs_set_tmpdir and guestfs_set_cachedir). (b) The user can also retrieve the actual directories that libguestfs will use, by calling guestfs_get_tmpdir and guestfs_get_cachedir. These functions are also used internally. This commit also: - reworks the internal tmpdir code - removes the internal (undocumented) guestfs_tmpdir call (replacing it with calls to the documented guestfs_get_tmpdir API instead) - changes the ./run script to set LIBGUESTFS_TMPDIR and LIBGUESTFS_CACHEDIR - adds a test - fixes a few places like libguestfs-make-fixed-appliance which depended on $TMPDIR
* lib: When parsing environment, handle LIBGUESTFS_TRACE first.Richard W.M. Jones2012-11-091-4/+4
| | | | So that we can trace all the later calls.
* lib: debian support for package arch inspectionJohn Eckersberg2012-11-051-3/+8
|
* generator: Split up huge src/actions.c into separate files.Richard W.M. Jones2012-11-021-2/+14
| | | | | | | | Split the functions according to a simple hash across C.nr_actions_files files (this number can be increased later if necessary). This is just code motion.
* generator: actions: Move variant functions to a separate file.Richard W.M. Jones2012-11-021-0/+2
| | | | This is just code motion.
* generator: actions: Move 3 helper functions to a separate file.Richard W.M. Jones2012-11-023-0/+120
| | | | This is just code motion.
* New API: mklost_and_foundRichard W.M. Jones2012-11-021-1/+1
|
* lib: Add inspect_list_applications2 method (RHBZ#859949)John Eckersberg2012-11-012-44/+100
| | | | | | RWMJ: - Fix memory leak in guestfs__inspect_list_applications wrapper. - Don't document app2_spare* fields.
* build: Source 'localenv' in top-level Makefile.Richard W.M. Jones2012-10-301-0/+35
| | | | Also document 'local*' files.
* generator: Move struct-freeing functions to a separate source file.Richard W.M. Jones2012-10-301-0/+2
| | | | This is just code motion.
* lib: update inspect_list_applications to return all installed RPMs ↵John Eckersberg2012-10-291-46/+71
| | | | | | | (RHBZ#859885). Note that because of RHBZ#859949, this will return two identical entries for RPMs which differ only by arch.
* docs: Review and clarify ERROR HANDLING section of guestfs(3).Richard W.M. Jones2012-10-251-14/+32
|
* launch: libvirt: Disable CPU host-model.Richard W.M. Jones2012-10-251-0/+8
| | | | | | See the comment in the change. This "fixes" commit f7a67914c03db6d4c75671793964954640af7892.
* launch: libvirt: Fix <cpu> element.Richard W.M. Jones2012-10-251-1/+6
| | | | | | | | | Use <cpu mode="host-model"> (not model=... which was a typo). Also set fallback=allow so that libvirt knows it can use another CPU model if it wants. This fixes commit 890a4fbc8740b9b2019885a866aa06bc82566a41.
* filearch: Use command mini-library to run external cpio command.Richard W.M. Jones2012-10-181-8/+14
|
* fuse: Use command mini-library to run the fusermount command.Richard W.M. Jones2012-10-181-61/+28
|
* info: Use command mini-library to run 'qemu-img info' commands.Richard W.M. Jones2012-10-181-133/+91
|
* inspect: Use command mini-library to parse the output of db_dump command.Richard W.M. Jones2012-10-181-78/+103
|
* inspect: Change icon code to use command mini-lib instead of system(3).Richard W.M. Jones2012-10-181-46/+73
|
* launch: libvirt: Use command mini-library to run qemu-img create command.Richard W.M. Jones2012-10-181-87/+17
|
* launch: appliance: Use command mini-library to parse output of qemu -help etc.Richard W.M. Jones2012-10-181-64/+48
|
* appliance: Use command mini-library to run febootstrap-supermin-helper ↵Richard W.M. Jones2012-10-181-157/+70
| | | | (RHBZ#713678)
* lib: Change guestfs___remove_tmpdir function to use command mini-library.Richard W.M. Jones2012-10-185-32/+23
|
* lib: Add a new 'command' mini-library for running external commands.Richard W.M. Jones2012-10-183-0/+771
| | | | | | | | | | | | | This is a wrapper or mini-library for running external command, loosely based on libvirt's virCommand interface. Amongst the advantages are: - Can redirect errors into the error log (RHBZ#713678). - Can redirect output into a callback function. - Handles shell quoting properly. - Safely resets signal handlers, closes file descriptors, etc. - Single place where we can implement other improvements in future.
* NEW API: mktempWanlong Gao2012-10-171-1/+1
| | | | | | | | | | | | | | | | Used to create temporary directory or file with an optional suffix. Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com> RWMJ: - Split this out into a new file (daemon/mktemp.c). - I don't see a reason to deprecate the mkdtemp function which works fine. Instead remove complex dir-making code from the new function. - Test and fix the patch (missing close(fd)).
* lib: Fix guestfs_create_flags example program in man page.Richard W.M. Jones2012-10-151-2/+4
| | | | This fixes commit 9466060201600db47016133d80af22eb38091a49.
* libvirt: auth: Some clarifications of the API from Dan Berrange.Richard W.M. Jones2012-10-151-19/+8
| | | | This updates commit d83d17e9dbfb24496a0841fc2aed436181ca0341.
* New APIs: guestfs_create_flags, guestfs_parse_environment,Richard W.M. Jones2012-10-153-72/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | guestfs_parse_environment_list. Add a new function for creating a handle: guestfs_h *guestfs_create_flags (unsigned flags [, ...]); This variant lets you supply flags and extra arguments, although extra arguments are not used at the moment. Of particular interest is the ability to separate the creation of the handle from the parsing of environment variables like LIBGUESTFS_DEBUG. guestfs_create does both together, which prevents us from propagating errors from parsing environment variables back to the caller (guestfs_create has always printed any errors on stderr and then just ignored them). If you are interested in these errors, you can now write: g = guestfs_create_flags (GUESTFS_CREATE_NO_ENVIRONMENT); if (!g) exit (EXIT_FAILURE); r = guestfs_parse_environment (g); if (!r) exit (EXIT_FAILURE); Also you can *omit* the call to guestfs_parse_environment, which creates a handle unaffected by the environment (which was not possible before). This commit also includes new (backwards compatible) changes to the OCaml, Perl, Python, Ruby and Java constructors that let you use the flags.
* Update API support.Richard W.M. Jones2012-10-1425-0/+14338
|
* New APIs: Model libvirt authentication events through the API.Richard W.M. Jones2012-10-136-3/+523
| | | | | | | | | | | | | | | | | | | | | This commit models libvirt authentication events through the API, adding one new event (GUESTFS_EVENT_LIBVIRT_AUTH) and several new APIs: guestfs_set_libvirt_supported_credentials guestfs_get_libvirt_requested_credentials guestfs_get_libvirt_requested_credential_prompt guestfs_get_libvirt_requested_credential_challenge guestfs_get_libvirt_requested_credential_defresult guestfs_set_libvirt_requested_credential See the documentation and example which shows how to use the new API. This commit also changes existing calls to virConnectOpen* within the library so that the new API is used. Also included is an example (but not a test, because it's hard to see how to automatically test the libvirt API).
* configure: Add --without-libvirt option.Richard W.M. Jones2012-10-131-6/+0
| | | | | | | | | | | Normally we check if libvirt is installed, and the default is still to do this. However having this option makes it simpler to check if a change to the code has broken the case where libvirt is not installed. In fact, this change revealed one such place, which is also fixed in this commit.
* docs: Make 'EVENTS' into its own =head1 section.Richard W.M. Jones2012-10-131-2/+6
| | | | | For some reason it was stuck under "CALLS WITH OPTIONAL ARGUMENTS", which made no sense.
* launch: libvirt: Make handle data conditional on HAVE_LIBVIRT.Richard W.M. Jones2012-10-132-11/+18
| | | | | | This means that we can use virConnectPtr and virDomainPtr instead of using void* types. In the case where libvirt support is disabled or not present, effectively nothing changes.
* lib: Rename src/libvirtdomain.c -> src/libvirt-domain.c.Richard W.M. Jones2012-10-132-1/+1
| | | | No change, just code motion.
* lib: Pointer arg to safe_memdup function should be const.Richard W.M. Jones2012-10-132-2/+2
|
* launch: libvirt: Always set <qemu:env> TMPDIR.Richard W.M. Jones2012-10-111-13/+16
| | | | | | | | If TMPDIR is not set, we must choose one, because otherwise libvirt will use a random TMPDIR: http://bugzilla.redhat.com/865464 The convenient guestfs___persistent_tmpdir function does everything needed in this case.
* docs: Fix documentation about hotplugging.Richard W.M. Jones2012-10-101-3/+2
|
* docs: Fully document all subdirectories of the source.Richard W.M. Jones2012-10-091-4/+17
|
* docs: Add overview to guestfs(3)/EXTENDING LIBGUESTFS.Richard W.M. Jones2012-10-091-3/+34
|
* launch: appliance is optionalOlaf Hering2012-10-091-8/+14
| | | | | | | | | | | | | | | | | # virt-filesystems -v -d 6326ad4e-5805-2ab4-1338-d1dad8c76162 --all libguestfs: libvirt version = 10002 libguestfs: [00000ms] connect to libvirt libguestfs: [00001ms] get libvirt capabilities libguestfs: [00234ms] build appliance libguestfs: [00234ms] create libvirt XML libguestfs: error: error constructing libvirt XML at "xmlTextWriterWriteAttribute (xo, BAD_CAST "file", BAD_CAST appliance)": No such file or directory libguestfs: closing guestfs handle 0x656270 (state 0) # ls -lh /usr/lib64/guestfs/* -rw-r--r-- 1 root root 13M Oct 8 16:15 /usr/lib64/guestfs/initramfs.x86_64.img -rw-r--r-- 1 root root 3.7M Oct 6 09:25 /usr/lib64/guestfs/vmlinuz.x86_64 Signed-off-by: Olaf Hering <olaf@aepfle.de>