32c6d672978c0920078d3edd059fbee4d1adaac1
[libguestfs.git] / guestfs-actions.pod
1 =head2 guestfs_add_cdrom
2
3  int guestfs_add_cdrom (guestfs_h *handle,
4                 const char *filename);
5
6 This function adds a virtual CD-ROM disk image to the guest.
7
8 This is equivalent to the qemu parameter C<-cdrom filename>.
9
10 This function returns 0 on success or -1 on error.
11
12 =head2 guestfs_add_drive
13
14  int guestfs_add_drive (guestfs_h *handle,
15                 const char *filename);
16
17 This function adds a virtual machine disk image C<filename> to the
18 guest.  The first time you call this function, the disk appears as IDE
19 disk 0 (C</dev/sda>) in the guest, the second time as C</dev/sdb>, and
20 so on.
21
22 You don't necessarily need to be root when using libguestfs.  However
23 you obviously do need sufficient permissions to access the filename
24 for whatever operations you want to perform (ie. read access if you
25 just want to read the image or write access if you want to modify the
26 image).
27
28 This is equivalent to the qemu parameter C<-drive file=filename>.
29
30 This function returns 0 on success or -1 on error.
31
32 =head2 guestfs_aug_close
33
34  int guestfs_aug_close (guestfs_h *handle);
35
36 Close the current Augeas handle and free up any resources
37 used by it.  After calling this, you have to call
38 C<guestfs_aug_init> again before you can use any other
39 Augeas functions.
40
41 This function returns 0 on success or -1 on error.
42
43 =head2 guestfs_aug_defnode
44
45  struct guestfs_int_bool *guestfs_aug_defnode (guestfs_h *handle,
46                 const char *name,
47                 const char *expr,
48                 const char *val);
49
50 Defines a variable C<name> whose value is the result of
51 evaluating C<expr>.
52
53 If C<expr> evaluates to an empty nodeset, a node is created,
54 equivalent to calling C<guestfs_aug_set> C<expr>, C<value>.
55 C<name> will be the nodeset containing that single node.
56
57 On success this returns a pair containing the
58 number of nodes in the nodeset, and a boolean flag
59 if a node was created.
60
61 This function returns a C<struct guestfs_int_bool *>.
62 I<The caller must call C<guestfs_free_int_bool> after use>.
63
64 =head2 guestfs_aug_defvar
65
66  int guestfs_aug_defvar (guestfs_h *handle,
67                 const char *name,
68                 const char *expr);
69
70 Defines an Augeas variable C<name> whose value is the result
71 of evaluating C<expr>.  If C<expr> is NULL, then C<name> is
72 undefined.
73
74 On success this returns the number of nodes in C<expr>, or
75 C<0> if C<expr> evaluates to something which is not a nodeset.
76
77 On error this function returns -1.
78
79 =head2 guestfs_aug_get
80
81  char *guestfs_aug_get (guestfs_h *handle,
82                 const char *path);
83
84 Look up the value associated with C<path>.  If C<path>
85 matches exactly one node, the C<value> is returned.
86
87 This function returns a string or NULL on error.
88 I<The caller must free the returned string after use>.
89
90 =head2 guestfs_aug_init
91
92  int guestfs_aug_init (guestfs_h *handle,
93                 const char *root,
94                 int flags);
95
96 Create a new Augeas handle for editing configuration files.
97 If there was any previous Augeas handle associated with this
98 guestfs session, then it is closed.
99
100 You must call this before using any other C<guestfs_aug_*>
101 commands.
102
103 C<root> is the filesystem root.  C<root> must not be NULL,
104 use C</> instead.
105
106 The flags are the same as the flags defined in
107 E<lt>augeas.hE<gt>, the logical I<or> of the following
108 integers:
109
110 =over 4
111
112 =item C<AUG_SAVE_BACKUP> = 1
113
114 Keep the original file with a C<.augsave> extension.
115
116 =item C<AUG_SAVE_NEWFILE> = 2
117
118 Save changes into a file with extension C<.augnew>, and
119 do not overwrite original.  Overrides C<AUG_SAVE_BACKUP>.
120
121 =item C<AUG_TYPE_CHECK> = 4
122
123 Typecheck lenses (can be expensive).
124
125 =item C<AUG_NO_STDINC> = 8
126
127 Do not use standard load path for modules.
128
129 =item C<AUG_SAVE_NOOP> = 16
130
131 Make save a no-op, just record what would have been changed.
132
133 =item C<AUG_NO_LOAD> = 32
134
135 Do not load the tree in C<guestfs_aug_init>.
136
137 =back
138
139 To close the handle, you can call C<guestfs_aug_close>.
140
141 To find out more about Augeas, see L<http://augeas.net/>.
142
143 This function returns 0 on success or -1 on error.
144
145 =head2 guestfs_aug_insert
146
147  int guestfs_aug_insert (guestfs_h *handle,
148                 const char *path,
149                 const char *label,
150                 int before);
151
152 Create a new sibling C<label> for C<path>, inserting it into
153 the tree before or after C<path> (depending on the boolean
154 flag C<before>).
155
156 C<path> must match exactly one existing node in the tree, and
157 C<label> must be a label, ie. not contain C</>, C<*> or end
158 with a bracketed index C<[N]>.
159
160 This function returns 0 on success or -1 on error.
161
162 =head2 guestfs_aug_load
163
164  int guestfs_aug_load (guestfs_h *handle);
165
166 Load files into the tree.
167
168 See C<aug_load> in the Augeas documentation for the full gory
169 details.
170
171 This function returns 0 on success or -1 on error.
172
173 =head2 guestfs_aug_ls
174
175  char **guestfs_aug_ls (guestfs_h *handle,
176                 const char *path);
177
178 This is just a shortcut for listing C<guestfs_aug_match>
179 C<path/*> and sorting the resulting nodes into alphabetical order.
180
181 This function returns a NULL-terminated array of strings
182 (like L<environ(3)>), or NULL if there was an error.
183 I<The caller must free the strings and the array after use>.
184
185 =head2 guestfs_aug_match
186
187  char **guestfs_aug_match (guestfs_h *handle,
188                 const char *path);
189
190 Returns a list of paths which match the path expression C<path>.
191 The returned paths are sufficiently qualified so that they match
192 exactly one node in the current tree.
193
194 This function returns a NULL-terminated array of strings
195 (like L<environ(3)>), or NULL if there was an error.
196 I<The caller must free the strings and the array after use>.
197
198 =head2 guestfs_aug_mv
199
200  int guestfs_aug_mv (guestfs_h *handle,
201                 const char *src,
202                 const char *dest);
203
204 Move the node C<src> to C<dest>.  C<src> must match exactly
205 one node.  C<dest> is overwritten if it exists.
206
207 This function returns 0 on success or -1 on error.
208
209 =head2 guestfs_aug_rm
210
211  int guestfs_aug_rm (guestfs_h *handle,
212                 const char *path);
213
214 Remove C<path> and all of its children.
215
216 On success this returns the number of entries which were removed.
217
218 On error this function returns -1.
219
220 =head2 guestfs_aug_save
221
222  int guestfs_aug_save (guestfs_h *handle);
223
224 This writes all pending changes to disk.
225
226 The flags which were passed to C<guestfs_aug_init> affect exactly
227 how files are saved.
228
229 This function returns 0 on success or -1 on error.
230
231 =head2 guestfs_aug_set
232
233  int guestfs_aug_set (guestfs_h *handle,
234                 const char *path,
235                 const char *val);
236
237 Set the value associated with C<path> to C<value>.
238
239 This function returns 0 on success or -1 on error.
240
241 =head2 guestfs_cat
242
243  char *guestfs_cat (guestfs_h *handle,
244                 const char *path);
245
246 Return the contents of the file named C<path>.
247
248 Note that this function cannot correctly handle binary files
249 (specifically, files containing C<\0> character which is treated
250 as end of string).  For those you need to use the C<guestfs_read_file>
251 function which has a more complex interface.
252
253 This function returns a string or NULL on error.
254 I<The caller must free the returned string after use>.
255
256 Because of the message protocol, there is a transfer limit 
257 of somewhere between 2MB and 4MB.  To transfer large files you should use
258 FTP.
259
260 =head2 guestfs_chmod
261
262  int guestfs_chmod (guestfs_h *handle,
263                 int mode,
264                 const char *path);
265
266 Change the mode (permissions) of C<path> to C<mode>.  Only
267 numeric modes are supported.
268
269 This function returns 0 on success or -1 on error.
270
271 =head2 guestfs_chown
272
273  int guestfs_chown (guestfs_h *handle,
274                 int owner,
275                 int group,
276                 const char *path);
277
278 Change the file owner to C<owner> and group to C<group>.
279
280 Only numeric uid and gid are supported.  If you want to use
281 names, you will need to locate and parse the password file
282 yourself (Augeas support makes this relatively easy).
283
284 This function returns 0 on success or -1 on error.
285
286 =head2 guestfs_config
287
288  int guestfs_config (guestfs_h *handle,
289                 const char *qemuparam,
290                 const char *qemuvalue);
291
292 This can be used to add arbitrary qemu command line parameters
293 of the form C<-param value>.  Actually it's not quite arbitrary - we
294 prevent you from setting some parameters which would interfere with
295 parameters that we use.
296
297 The first character of C<param> string must be a C<-> (dash).
298
299 C<value> can be NULL.
300
301 This function returns 0 on success or -1 on error.
302
303 =head2 guestfs_exists
304
305  int guestfs_exists (guestfs_h *handle,
306                 const char *path);
307
308 This returns C<true> if and only if there is a file, directory
309 (or anything) with the given C<path> name.
310
311 See also C<guestfs_is_file>, C<guestfs_is_dir>, C<guestfs_stat>.
312
313 This function returns a C truth value on success or -1 on error.
314
315 =head2 guestfs_file
316
317  char *guestfs_file (guestfs_h *handle,
318                 const char *path);
319
320 This call uses the standard L<file(1)> command to determine
321 the type or contents of the file.  This also works on devices,
322 for example to find out whether a partition contains a filesystem.
323
324 The exact command which runs is C<file -bsL path>.  Note in
325 particular that the filename is not prepended to the output
326 (the C<-b> option).
327
328 This function returns a string or NULL on error.
329 I<The caller must free the returned string after use>.
330
331 =head2 guestfs_get_autosync
332
333  int guestfs_get_autosync (guestfs_h *handle);
334
335 Get the autosync flag.
336
337 This function returns a C truth value on success or -1 on error.
338
339 =head2 guestfs_get_path
340
341  const char *guestfs_get_path (guestfs_h *handle);
342
343 Return the current search path.
344
345 This is always non-NULL.  If it wasn't set already, then this will
346 return the default path.
347
348 This function returns a string or NULL on error.
349 The string is owned by the guest handle and must I<not> be freed.
350
351 =head2 guestfs_get_verbose
352
353  int guestfs_get_verbose (guestfs_h *handle);
354
355 This returns the verbose messages flag.
356
357 This function returns a C truth value on success or -1 on error.
358
359 =head2 guestfs_is_dir
360
361  int guestfs_is_dir (guestfs_h *handle,
362                 const char *path);
363
364 This returns C<true> if and only if there is a directory
365 with the given C<path> name.  Note that it returns false for
366 other objects like files.
367
368 See also C<guestfs_stat>.
369
370 This function returns a C truth value on success or -1 on error.
371
372 =head2 guestfs_is_file
373
374  int guestfs_is_file (guestfs_h *handle,
375                 const char *path);
376
377 This returns C<true> if and only if there is a file
378 with the given C<path> name.  Note that it returns false for
379 other objects like directories.
380
381 See also C<guestfs_stat>.
382
383 This function returns a C truth value on success or -1 on error.
384
385 =head2 guestfs_kill_subprocess
386
387  int guestfs_kill_subprocess (guestfs_h *handle);
388
389 This kills the qemu subprocess.  You should never need to call this.
390
391 This function returns 0 on success or -1 on error.
392
393 =head2 guestfs_launch
394
395  int guestfs_launch (guestfs_h *handle);
396
397 Internally libguestfs is implemented by running a virtual machine
398 using L<qemu(1)>.
399
400 You should call this after configuring the handle
401 (eg. adding drives) but before performing any actions.
402
403 This function returns 0 on success or -1 on error.
404
405 =head2 guestfs_list_devices
406
407  char **guestfs_list_devices (guestfs_h *handle);
408
409 List all the block devices.
410
411 The full block device names are returned, eg. C</dev/sda>
412
413 This function returns a NULL-terminated array of strings
414 (like L<environ(3)>), or NULL if there was an error.
415 I<The caller must free the strings and the array after use>.
416
417 =head2 guestfs_list_partitions
418
419  char **guestfs_list_partitions (guestfs_h *handle);
420
421 List all the partitions detected on all block devices.
422
423 The full partition device names are returned, eg. C</dev/sda1>
424
425 This does not return logical volumes.  For that you will need to
426 call C<guestfs_lvs>.
427
428 This function returns a NULL-terminated array of strings
429 (like L<environ(3)>), or NULL if there was an error.
430 I<The caller must free the strings and the array after use>.
431
432 =head2 guestfs_ll
433
434  char *guestfs_ll (guestfs_h *handle,
435                 const char *directory);
436
437 List the files in C<directory> (relative to the root directory,
438 there is no cwd) in the format of 'ls -la'.
439
440 This command is mostly useful for interactive sessions.  It
441 is I<not> intended that you try to parse the output string.
442
443 This function returns a string or NULL on error.
444 I<The caller must free the returned string after use>.
445
446 =head2 guestfs_ls
447
448  char **guestfs_ls (guestfs_h *handle,
449                 const char *directory);
450
451 List the files in C<directory> (relative to the root directory,
452 there is no cwd).  The '.' and '..' entries are not returned, but
453 hidden files are shown.
454
455 This command is mostly useful for interactive sessions.  Programs
456 should probably use C<guestfs_readdir> instead.
457
458 This function returns a NULL-terminated array of strings
459 (like L<environ(3)>), or NULL if there was an error.
460 I<The caller must free the strings and the array after use>.
461
462 =head2 guestfs_lvcreate
463
464  int guestfs_lvcreate (guestfs_h *handle,
465                 const char *logvol,
466                 const char *volgroup,
467                 int mbytes);
468
469 This creates an LVM volume group called C<logvol>
470 on the volume group C<volgroup>, with C<size> megabytes.
471
472 This function returns 0 on success or -1 on error.
473
474 =head2 guestfs_lvm_remove_all
475
476  int guestfs_lvm_remove_all (guestfs_h *handle);
477
478 This command removes all LVM logical volumes, volume groups
479 and physical volumes.
480
481 This function returns 0 on success or -1 on error.
482
483 B<This command is dangerous.  Without careful use you
484 can easily destroy all your data>.
485
486 =head2 guestfs_lvs
487
488  char **guestfs_lvs (guestfs_h *handle);
489
490 List all the logical volumes detected.  This is the equivalent
491 of the L<lvs(8)> command.
492
493 This returns a list of the logical volume device names
494 (eg. C</dev/VolGroup00/LogVol00>).
495
496 See also C<guestfs_lvs_full>.
497
498 This function returns a NULL-terminated array of strings
499 (like L<environ(3)>), or NULL if there was an error.
500 I<The caller must free the strings and the array after use>.
501
502 =head2 guestfs_lvs_full
503
504  struct guestfs_lvm_lv_list *guestfs_lvs_full (guestfs_h *handle);
505
506 List all the logical volumes detected.  This is the equivalent
507 of the L<lvs(8)> command.  The "full" version includes all fields.
508
509 This function returns a C<struct guestfs_lvm_lv_list *>.
510 I<The caller must call C<guestfs_free_lvm_lv_list> after use>.
511
512 =head2 guestfs_mkdir
513
514  int guestfs_mkdir (guestfs_h *handle,
515                 const char *path);
516
517 Create a directory named C<path>.
518
519 This function returns 0 on success or -1 on error.
520
521 =head2 guestfs_mkdir_p
522
523  int guestfs_mkdir_p (guestfs_h *handle,
524                 const char *path);
525
526 Create a directory named C<path>, creating any parent directories
527 as necessary.  This is like the C<mkdir -p> shell command.
528
529 This function returns 0 on success or -1 on error.
530
531 =head2 guestfs_mkfs
532
533  int guestfs_mkfs (guestfs_h *handle,
534                 const char *fstype,
535                 const char *device);
536
537 This creates a filesystem on C<device> (usually a partition
538 of LVM logical volume).  The filesystem type is C<fstype>, for
539 example C<ext3>.
540
541 This function returns 0 on success or -1 on error.
542
543 =head2 guestfs_mount
544
545  int guestfs_mount (guestfs_h *handle,
546                 const char *device,
547                 const char *mountpoint);
548
549 Mount a guest disk at a position in the filesystem.  Block devices
550 are named C</dev/sda>, C</dev/sdb> and so on, as they were added to
551 the guest.  If those block devices contain partitions, they will have
552 the usual names (eg. C</dev/sda1>).  Also LVM C</dev/VG/LV>-style
553 names can be used.
554
555 The rules are the same as for L<mount(2)>:  A filesystem must
556 first be mounted on C</> before others can be mounted.  Other
557 filesystems can only be mounted on directories which already
558 exist.
559
560 The mounted filesystem is writable, if we have sufficient permissions
561 on the underlying device.
562
563 The filesystem options C<sync> and C<noatime> are set with this
564 call, in order to improve reliability.
565
566 This function returns 0 on success or -1 on error.
567
568 =head2 guestfs_mounts
569
570  char **guestfs_mounts (guestfs_h *handle);
571
572 This returns the list of currently mounted filesystems.  It returns
573 the list of devices (eg. C</dev/sda1>, C</dev/VG/LV>).
574
575 Some internal mounts are not shown.
576
577 This function returns a NULL-terminated array of strings
578 (like L<environ(3)>), or NULL if there was an error.
579 I<The caller must free the strings and the array after use>.
580
581 =head2 guestfs_pvcreate
582
583  int guestfs_pvcreate (guestfs_h *handle,
584                 const char *device);
585
586 This creates an LVM physical volume on the named C<device>,
587 where C<device> should usually be a partition name such
588 as C</dev/sda1>.
589
590 This function returns 0 on success or -1 on error.
591
592 =head2 guestfs_pvs
593
594  char **guestfs_pvs (guestfs_h *handle);
595
596 List all the physical volumes detected.  This is the equivalent
597 of the L<pvs(8)> command.
598
599 This returns a list of just the device names that contain
600 PVs (eg. C</dev/sda2>).
601
602 See also C<guestfs_pvs_full>.
603
604 This function returns a NULL-terminated array of strings
605 (like L<environ(3)>), or NULL if there was an error.
606 I<The caller must free the strings and the array after use>.
607
608 =head2 guestfs_pvs_full
609
610  struct guestfs_lvm_pv_list *guestfs_pvs_full (guestfs_h *handle);
611
612 List all the physical volumes detected.  This is the equivalent
613 of the L<pvs(8)> command.  The "full" version includes all fields.
614
615 This function returns a C<struct guestfs_lvm_pv_list *>.
616 I<The caller must call C<guestfs_free_lvm_pv_list> after use>.
617
618 =head2 guestfs_read_lines
619
620  char **guestfs_read_lines (guestfs_h *handle,
621                 const char *path);
622
623 Return the contents of the file named C<path>.
624
625 The file contents are returned as a list of lines.  Trailing
626 C<LF> and C<CRLF> character sequences are I<not> returned.
627
628 Note that this function cannot correctly handle binary files
629 (specifically, files containing C<\0> character which is treated
630 as end of line).  For those you need to use the C<guestfs_read_file>
631 function which has a more complex interface.
632
633 This function returns a NULL-terminated array of strings
634 (like L<environ(3)>), or NULL if there was an error.
635 I<The caller must free the strings and the array after use>.
636
637 =head2 guestfs_rm
638
639  int guestfs_rm (guestfs_h *handle,
640                 const char *path);
641
642 Remove the single file C<path>.
643
644 This function returns 0 on success or -1 on error.
645
646 =head2 guestfs_rm_rf
647
648  int guestfs_rm_rf (guestfs_h *handle,
649                 const char *path);
650
651 Remove the file or directory C<path>, recursively removing the
652 contents if its a directory.  This is like the C<rm -rf> shell
653 command.
654
655 This function returns 0 on success or -1 on error.
656
657 =head2 guestfs_rmdir
658
659  int guestfs_rmdir (guestfs_h *handle,
660                 const char *path);
661
662 Remove the single directory C<path>.
663
664 This function returns 0 on success or -1 on error.
665
666 =head2 guestfs_set_autosync
667
668  int guestfs_set_autosync (guestfs_h *handle,
669                 int autosync);
670
671 If C<autosync> is true, this enables autosync.  Libguestfs will make a
672 best effort attempt to run C<guestfs_sync> when the handle is closed
673 (also if the program exits without closing handles).
674
675 This function returns 0 on success or -1 on error.
676
677 =head2 guestfs_set_path
678
679  int guestfs_set_path (guestfs_h *handle,
680                 const char *path);
681
682 Set the path that libguestfs searches for kernel and initrd.img.
683
684 The default is C<$libdir/guestfs> unless overridden by setting
685 C<LIBGUESTFS_PATH> environment variable.
686
687 The string C<path> is stashed in the libguestfs handle, so the caller
688 must make sure it remains valid for the lifetime of the handle.
689
690 Setting C<path> to C<NULL> restores the default path.
691
692 This function returns 0 on success or -1 on error.
693
694 =head2 guestfs_set_verbose
695
696  int guestfs_set_verbose (guestfs_h *handle,
697                 int verbose);
698
699 If C<verbose> is true, this turns on verbose messages (to C<stderr>).
700
701 Verbose messages are disabled unless the environment variable
702 C<LIBGUESTFS_DEBUG> is defined and set to C<1>.
703
704 This function returns 0 on success or -1 on error.
705
706 =head2 guestfs_sfdisk
707
708  int guestfs_sfdisk (guestfs_h *handle,
709                 const char *device,
710                 int cyls,
711                 int heads,
712                 int sectors,
713                 char * const* const lines);
714
715 This is a direct interface to the L<sfdisk(8)> program for creating
716 partitions on block devices.
717
718 C<device> should be a block device, for example C</dev/sda>.
719
720 C<cyls>, C<heads> and C<sectors> are the number of cylinders, heads
721 and sectors on the device, which are passed directly to sfdisk as
722 the I<-C>, I<-H> and I<-S> parameters.  If you pass C<0> for any
723 of these, then the corresponding parameter is omitted.  Usually for
724 'large' disks, you can just pass C<0> for these, but for small
725 (floppy-sized) disks, sfdisk (or rather, the kernel) cannot work
726 out the right geometry and you will need to tell it.
727
728 C<lines> is a list of lines that we feed to C<sfdisk>.  For more
729 information refer to the L<sfdisk(8)> manpage.
730
731 To create a single partition occupying the whole disk, you would
732 pass C<lines> as a single element list, when the single element being
733 the string C<,> (comma).
734
735 This function returns 0 on success or -1 on error.
736
737 B<This command is dangerous.  Without careful use you
738 can easily destroy all your data>.
739
740 =head2 guestfs_sync
741
742  int guestfs_sync (guestfs_h *handle);
743
744 This syncs the disk, so that any writes are flushed through to the
745 underlying disk image.
746
747 You should always call this if you have modified a disk image, before
748 closing the handle.
749
750 This function returns 0 on success or -1 on error.
751
752 =head2 guestfs_touch
753
754  int guestfs_touch (guestfs_h *handle,
755                 const char *path);
756
757 Touch acts like the L<touch(1)> command.  It can be used to
758 update the timestamps on a file, or, if the file does not exist,
759 to create a new zero-length file.
760
761 This function returns 0 on success or -1 on error.
762
763 =head2 guestfs_umount
764
765  int guestfs_umount (guestfs_h *handle,
766                 const char *pathordevice);
767
768 This unmounts the given filesystem.  The filesystem may be
769 specified either by its mountpoint (path) or the device which
770 contains the filesystem.
771
772 This function returns 0 on success or -1 on error.
773
774 =head2 guestfs_umount_all
775
776  int guestfs_umount_all (guestfs_h *handle);
777
778 This unmounts all mounted filesystems.
779
780 Some internal mounts are not unmounted by this call.
781
782 This function returns 0 on success or -1 on error.
783
784 =head2 guestfs_vgcreate
785
786  int guestfs_vgcreate (guestfs_h *handle,
787                 const char *volgroup,
788                 char * const* const physvols);
789
790 This creates an LVM volume group called C<volgroup>
791 from the non-empty list of physical volumes C<physvols>.
792
793 This function returns 0 on success or -1 on error.
794
795 =head2 guestfs_vgs
796
797  char **guestfs_vgs (guestfs_h *handle);
798
799 List all the volumes groups detected.  This is the equivalent
800 of the L<vgs(8)> command.
801
802 This returns a list of just the volume group names that were
803 detected (eg. C<VolGroup00>).
804
805 See also C<guestfs_vgs_full>.
806
807 This function returns a NULL-terminated array of strings
808 (like L<environ(3)>), or NULL if there was an error.
809 I<The caller must free the strings and the array after use>.
810
811 =head2 guestfs_vgs_full
812
813  struct guestfs_lvm_vg_list *guestfs_vgs_full (guestfs_h *handle);
814
815 List all the volumes groups detected.  This is the equivalent
816 of the L<vgs(8)> command.  The "full" version includes all fields.
817
818 This function returns a C<struct guestfs_lvm_vg_list *>.
819 I<The caller must call C<guestfs_free_lvm_vg_list> after use>.
820
821 =head2 guestfs_wait_ready
822
823  int guestfs_wait_ready (guestfs_h *handle);
824
825 Internally libguestfs is implemented by running a virtual machine
826 using L<qemu(1)>.
827
828 You should call this after C<guestfs_launch> to wait for the launch
829 to complete.
830
831 This function returns 0 on success or -1 on error.
832
833 =head2 guestfs_write_file
834
835  int guestfs_write_file (guestfs_h *handle,
836                 const char *path,
837                 const char *content,
838                 int size);
839
840 This call creates a file called C<path>.  The contents of the
841 file is the string C<content> (which can contain any 8 bit data),
842 with length C<size>.
843
844 As a special case, if C<size> is C<0>
845 then the length is calculated using C<strlen> (so in this case
846 the content cannot contain embedded ASCII NULs).
847
848 This function returns 0 on success or -1 on error.
849
850 Because of the message protocol, there is a transfer limit 
851 of somewhere between 2MB and 4MB.  To transfer large files you should use
852 FTP.
853