X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=TODO;h=07e96f2964cd79745f6f0cca3cbd71a2eb41b998;hp=da39f1a31337c59841e355137d798ba057a1c0ac;hb=e44cf42f362d793c47d892a18a6853d88abd6ecb;hpb=1e568f057e8bb7b36cc14e0e531d74b75ad9cb6c diff --git a/TODO b/TODO index da39f1a..07e96f2 100644 --- a/TODO +++ b/TODO @@ -17,18 +17,16 @@ IDs and the host. It's not easy to automate this because you need extra details about the guest itself in order to get to its UID->username map (eg. /etc/passwd from the guest). -febootstrap / debootstrap inside appliance ------------------------------------------- - -This was originally proposed as a way to install new operating systems -in the appliance. However no one has come up with a workable -solution. - Haskell bindings ---------------- Complete the Haskell bindings (see discussion on haskell-cafe). +PHP bindings +------------ + +Add bindtests to PHP bindings. + Complete bind tests ------------------- @@ -85,11 +83,6 @@ This is mainly useful from live CDs, ie. virt-p2v. Should we bother having the daemon at all and just link the guestfsd code directly into libguestfs? -Supermin appliance to febootstrap ---------------------------------- - -Supermin appliance functionality should be moved into febootstrap. - Ideas for extra commands ------------------------ @@ -181,7 +174,6 @@ To mount read-only, add C 1> like this: which is equivalent to the following sequence of calls: $h = Sys::Guestfs->new (); - $h->set_autosync (1); $h->add_drive_ro ($filename); $h->launch (); $h->mount_ro (\"/dev/sda1\", \"/\"); @@ -242,18 +234,6 @@ However this won't work easily for VM disk images in the disk image. One would have to download those to the host and launch another libguestfs instance. -List, mount filesystems by UUID and label ------------------------------------------ - -[See related: -http://www.redhat.com/archives/libguestfs/2009-August/msg00031.html] - -List filesystems by UUID or label. - -Mount filesystems by UUID or label. (I'm not really sure if we can do -this at the moment but we ought to be able to do it, and perhaps make -it easier by having a direct command). - Map filesystems to disk blocks ------------------------------ @@ -264,6 +244,8 @@ And vice versa. Is it even possible? +See also contribs/visualize-alignment/ + Integration with host intrusion systems --------------------------------------- @@ -276,12 +258,6 @@ http://sourceforge.net/projects/aide/ http://osiris.shmoo.com/ http://sourceforge.net/projects/tripwire/ --N option should be generated ------------------------------ - -'-N' option should be generated code, and should generate -documentation in guestfish(1) manpage. - Fix 'file' ---------- @@ -295,6 +271,9 @@ Occasionally we break virt-inspector through some change. We should add a regression test for it. However this is hard because we'd need to avoid having to carry huge images. +Update: I managed to fit a real-but-minimal Fedora 13 image into 6.2 MB. +See: http://rwmj.wordpress.com/2010/09/07/tip-pack-files-into-a-new-disk-image/#content + Freeze/thaw filesystems ----------------------- @@ -318,20 +297,6 @@ Tip: Use 'mount fs /' to mount a filesystem. Tip: Use 'll /' to view the filesystem or ... > ll / -New guestfish commands ----------------------- - -'list-filesystems' => list mountable filesystems - -We could implement this as a new API call, replacing a number of areas -of the current code where this is done already (in virt-inspector and -elsewhere). What we normally do to find out if a partition contains a -mountable filesystem is to just blindly mount it, and see if that -succeeds. However the kernel won't let us do this if the filesystem -is already mounted somewhere, so a naive implementation of this in the -daemon won't work. We would have to check if the partition was -already mounted. - Could we make guestfish interactive if commands are used without params? ------------------------------------------------------------------------ @@ -345,7 +310,68 @@ Common problems How can we solve these common user problems? -- http://lists.fedoraproject.org/pipermail/users/2010-June/374931.html - In guestfish, specified -m non-existent filesystem. We could suggest - a list of filesystems, or suggest they run the virt-list-filesystems - command. +[space for common problems here] + +Better support for encrypted devices +------------------------------------ + +Currently LUKS support only works if the device contains volume +groups. If it contains, eg., partitions, you cannot access them. +We would like to add: + + - An easier way to use this from guestfish. + - Direct access to the /dev/mapper device (eg. if it contains + anything apart from VGs). + +Display image as PS +------------------- + +Display the structure of an image file as a PS. + +Greater use of blkid / libblkid +------------------------------- + +guestfs_zero should use wipefs. See wipefs(8). + +There are various useful functions in libblkid for listing partitions, +devices etc which we are essentially duplicating in the daemon. It +would make more sense to just use libblkid for this. + +There are some places where we call out to the 'blkid' program. This +might be replaced by direct use of the library (if this is easier). + +Visualization +------------- + +Eric Sandeen pointed out the blktrace tool which is a better way of +capturing traces than using patched qemu (see +contrib/visualize-alignment). We would still use the same +visualization tools in conjunction with blktrace traces. + +guestfish parsing +----------------- + +At the moment guestfish uses an ad hoc parser which has many +shortcomings. We should change to using a lex/yacc-based scanner and +parser (there are better parsers out there, but yacc is sufficient and +very widely available). + +The scanner must deal with the case of parsing a whole command string, +eg. for a command that the user types in: + + > add-drive-opts "/tmp/foo" readonly:true + +and also with parsing single words from the command line: + + guestfish add-drive-opts /tmp/foo readonly:true + +Note the quotes are for scanning and don't indicate types. + +We should also allow variables and expressions as part of this new +parsing code, eg: + + set roots inspect-os + set product inspect-get-product-name %{roots[0]} + +% is better than $ because of shell escaping and confusion with shell +variables.