Added Augeas support.
[libguestfs.git] / guestfish-actions.pod
1 =head2 add-cdrom | cdrom
2
3  add-cdrom filename
4
5 This function adds a virtual CD-ROM disk image to the guest.
6
7 This is equivalent to the qemu parameter C<-cdrom filename>.
8
9 =head2 add-drive | add
10
11  add-drive filename
12
13 This function adds a virtual machine disk image C<filename> to the
14 guest.  The first time you call this function, the disk appears as IDE
15 disk 0 (C</dev/sda>) in the guest, the second time as C</dev/sdb>, and
16 so on.
17
18 You don't necessarily need to be root when using libguestfs.  However
19 you obviously do need sufficient permissions to access the filename
20 for whatever operations you want to perform (ie. read access if you
21 just want to read the image or write access if you want to modify the
22 image).
23
24 This is equivalent to the qemu parameter C<-drive file=filename>.
25
26 =head2 aug-close
27
28  aug-close
29
30 Close the current Augeas handle and free up any resources
31 used by it.  After calling this, you have to call
32 C<aug_init> again before you can use any other
33 Augeas functions.
34
35 =head2 aug-defnode
36
37  aug-defnode name expr val
38
39 Defines a variable C<name> whose value is the result of
40 evaluating C<expr>.
41
42 If C<expr> evaluates to an empty nodeset, a node is created,
43 equivalent to calling C<aug_set> C<expr>, C<value>.
44 C<name> will be the nodeset containing that single node.
45
46 On success this returns a pair containing the
47 number of nodes in the nodeset, and a boolean flag
48 if a node was created.
49
50 =head2 aug-defvar
51
52  aug-defvar name expr
53
54 Defines an Augeas variable C<name> whose value is the result
55 of evaluating C<expr>.  If C<expr> is NULL, then C<name> is
56 undefined.
57
58 On success this returns the number of nodes in C<expr>, or
59 C<0> if C<expr> evaluates to something which is not a nodeset.
60
61 =head2 aug-get
62
63  aug-get path
64
65 Look up the value associated with C<path>.  If C<path>
66 matches exactly one node, the C<value> is returned.
67
68 =head2 aug-init
69
70  aug-init root flags
71
72 Create a new Augeas handle for editing configuration files.
73 If there was any previous Augeas handle associated with this
74 guestfs session, then it is closed.
75
76 You must call this before using any other C<aug_*>
77 commands.
78
79 C<root> is the filesystem root.  C<root> must not be NULL,
80 use C</> instead.
81
82 The flags are the same as the flags defined in
83 E<lt>augeas.hE<gt>, the logical I<or> of the following
84 integers:
85
86 =over 4
87
88 =item 1 C<AUG_SAVE_BACKUP>
89
90 Keep the original file with a C<.augsave> extension.
91
92 =item 2 C<AUG_SAVE_NEWFILE>
93
94 Save changes into a file with extension C<.augnew>, and
95 do not overwrite original.  Overrides C<AUG_SAVE_BACKUP>.
96
97 =item 4 C<AUG_TYPE_CHECK>
98
99 Typecheck lenses (can be expensive).
100
101 =item 8 C<AUG_NO_STDINC>
102
103 Do not use standard load path for modules.
104
105 =item 16 C<AUG_SAVE_NOOP>
106
107 Make save a no-op, just record what would have been changed.
108
109 =item 32 C<AUG_NO_LOAD>
110
111 Do not load the tree in C<aug_init>.
112
113 =back
114
115 To close the handle, you can call C<aug_close>.
116
117 To find out more about Augeas, see L<http://augeas.net/>.
118
119 =head2 aug-insert
120
121  aug-insert path label true|false
122
123 Create a new sibling C<label> for C<path>, inserting it into
124 the tree before or after C<path> (depending on the boolean
125 flag C<before>).
126
127 C<path> must match exactly one existing node in the tree, and
128 C<label> must be a label, ie. not contain C</>, C<*> or end
129 with a bracketed index C<[N]>.
130
131 =head2 aug-load
132
133  aug-load
134
135 Load files into the tree.
136
137 See C<aug_load> in the Augeas documentation for the full gory
138 details.
139
140 =head2 aug-match
141
142  aug-match path
143
144 Returns a list of paths which match the path expression C<path>.
145 The returned paths are sufficiently qualified so that they match
146 exactly one node in the current tree.
147
148 =head2 aug-mv
149
150  aug-mv src dest
151
152 Move the node C<src> to C<dest>.  C<src> must match exactly
153 one node.  C<dest> is overwritten if it exists.
154
155 =head2 aug-rm
156
157  aug-rm path
158
159 Remove C<path> and all of its children.
160
161 On success this returns the number of entries which were removed.
162
163 =head2 aug-save
164
165  aug-save
166
167 This writes all pending changes to disk.
168
169 The flags which were passed to C<aug_init> affect exactly
170 how files are saved.
171
172 =head2 aug-set
173
174  aug-set path val
175
176 Set the value associated with C<path> to C<value>.
177
178 =head2 cat
179
180  cat path
181
182 Return the contents of the file named C<path>.
183
184 Note that this function cannot correctly handle binary files
185 (specifically, files containing C<\0> character which is treated
186 as end of string).  For those you need to use the C<read_file>
187 function which has a more complex interface.
188
189 =head2 config
190
191  config qemuparam qemuvalue
192
193 This can be used to add arbitrary qemu command line parameters
194 of the form C<-param value>.  Actually it's not quite arbitrary - we
195 prevent you from setting some parameters which would interfere with
196 parameters that we use.
197
198 The first character of C<param> string must be a C<-> (dash).
199
200 C<value> can be NULL.
201
202 =head2 get-autosync
203
204  get-autosync
205
206 Get the autosync flag.
207
208 =head2 get-path
209
210  get-path
211
212 Return the current search path.
213
214 This is always non-NULL.  If it wasn't set already, then this will
215 return the default path.
216
217 =head2 get-verbose
218
219  get-verbose
220
221 This returns the verbose messages flag.
222
223 =head2 kill-subprocess
224
225  kill-subprocess
226
227 This kills the qemu subprocess.  You should never need to call this.
228
229 =head2 launch | run
230
231  launch
232
233 Internally libguestfs is implemented by running a virtual machine
234 using L<qemu(1)>.
235
236 You should call this after configuring the handle
237 (eg. adding drives) but before performing any actions.
238
239 =head2 list-devices
240
241  list-devices
242
243 List all the block devices.
244
245 The full block device names are returned, eg. C</dev/sda>
246
247 =head2 list-partitions
248
249  list-partitions
250
251 List all the partitions detected on all block devices.
252
253 The full partition device names are returned, eg. C</dev/sda1>
254
255 This does not return logical volumes.  For that you will need to
256 call C<lvs>.
257
258 =head2 ll
259
260  ll directory
261
262 List the files in C<directory> (relative to the root directory,
263 there is no cwd) in the format of 'ls -la'.
264
265 This command is mostly useful for interactive sessions.  It
266 is I<not> intended that you try to parse the output string.
267
268 =head2 ls
269
270  ls directory
271
272 List the files in C<directory> (relative to the root directory,
273 there is no cwd).  The '.' and '..' entries are not returned, but
274 hidden files are shown.
275
276 This command is mostly useful for interactive sessions.  Programs
277 should probably use C<readdir> instead.
278
279 =head2 lvs
280
281  lvs
282
283 List all the logical volumes detected.  This is the equivalent
284 of the L<lvs(8)> command.
285
286 This returns a list of the logical volume device names
287 (eg. C</dev/VolGroup00/LogVol00>).
288
289 See also C<lvs_full>.
290
291 =head2 lvs-full
292
293  lvs-full
294
295 List all the logical volumes detected.  This is the equivalent
296 of the L<lvs(8)> command.  The "full" version includes all fields.
297
298 =head2 mount
299
300  mount device mountpoint
301
302 Mount a guest disk at a position in the filesystem.  Block devices
303 are named C</dev/sda>, C</dev/sdb> and so on, as they were added to
304 the guest.  If those block devices contain partitions, they will have
305 the usual names (eg. C</dev/sda1>).  Also LVM C</dev/VG/LV>-style
306 names can be used.
307
308 The rules are the same as for L<mount(2)>:  A filesystem must
309 first be mounted on C</> before others can be mounted.  Other
310 filesystems can only be mounted on directories which already
311 exist.
312
313 The mounted filesystem is writable, if we have sufficient permissions
314 on the underlying device.
315
316 The filesystem options C<sync> and C<noatime> are set with this
317 call, in order to improve reliability.
318
319 =head2 pvs
320
321  pvs
322
323 List all the physical volumes detected.  This is the equivalent
324 of the L<pvs(8)> command.
325
326 This returns a list of just the device names that contain
327 PVs (eg. C</dev/sda2>).
328
329 See also C<pvs_full>.
330
331 =head2 pvs-full
332
333  pvs-full
334
335 List all the physical volumes detected.  This is the equivalent
336 of the L<pvs(8)> command.  The "full" version includes all fields.
337
338 =head2 read-lines
339
340  read-lines path
341
342 Return the contents of the file named C<path>.
343
344 The file contents are returned as a list of lines.  Trailing
345 C<LF> and C<CRLF> character sequences are I<not> returned.
346
347 Note that this function cannot correctly handle binary files
348 (specifically, files containing C<\0> character which is treated
349 as end of line).  For those you need to use the C<read_file>
350 function which has a more complex interface.
351
352 =head2 set-autosync | autosync
353
354  set-autosync true|false
355
356 If C<autosync> is true, this enables autosync.  Libguestfs will make a
357 best effort attempt to run C<sync> when the handle is closed
358 (also if the program exits without closing handles).
359
360 =head2 set-path | path
361
362  set-path path
363
364 Set the path that libguestfs searches for kernel and initrd.img.
365
366 The default is C<$libdir/guestfs> unless overridden by setting
367 C<LIBGUESTFS_PATH> environment variable.
368
369 The string C<path> is stashed in the libguestfs handle, so the caller
370 must make sure it remains valid for the lifetime of the handle.
371
372 Setting C<path> to C<NULL> restores the default path.
373
374 =head2 set-verbose | verbose
375
376  set-verbose true|false
377
378 If C<verbose> is true, this turns on verbose messages (to C<stderr>).
379
380 Verbose messages are disabled unless the environment variable
381 C<LIBGUESTFS_DEBUG> is defined and set to C<1>.
382
383 =head2 sync
384
385  sync
386
387 This syncs the disk, so that any writes are flushed through to the
388 underlying disk image.
389
390 You should always call this if you have modified a disk image, before
391 closing the handle.
392
393 =head2 touch
394
395  touch path
396
397 Touch acts like the L<touch(1)> command.  It can be used to
398 update the timestamps on a file, or, if the file does not exist,
399 to create a new zero-length file.
400
401 =head2 vgs
402
403  vgs
404
405 List all the volumes groups detected.  This is the equivalent
406 of the L<vgs(8)> command.
407
408 This returns a list of just the volume group names that were
409 detected (eg. C<VolGroup00>).
410
411 See also C<vgs_full>.
412
413 =head2 vgs-full
414
415  vgs-full
416
417 List all the volumes groups detected.  This is the equivalent
418 of the L<vgs(8)> command.  The "full" version includes all fields.
419