X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=TODO;h=ee431d2fc05ab82de7764f0c880f5cbc6dc39e7a;hp=306f222991b77b0d30373a050837cabb4720ec20;hb=fab75c0337d7897d10ea5e95e47ac05eab81ace9;hpb=7c87dd1cf9cd14f753a2020425a5c20ba262f51b diff --git a/TODO b/TODO index 306f222..ee431d2 100644 --- a/TODO +++ b/TODO @@ -17,13 +17,6 @@ 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 ---------------- @@ -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,11 +258,6 @@ http://sourceforge.net/projects/aide/ http://osiris.shmoo.com/ http://sourceforge.net/projects/tripwire/ --N option should be generated ------------------------------ - -'-N' option should generate documentation in guestfish(1) manpage. - Fix 'file' ---------- @@ -320,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? ------------------------------------------------------------------------ @@ -347,14 +310,7 @@ 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. - - Related to the above: There should be an API call to list all - mountable / accessible devices. Or a guestfish command to replace - list-devices, list-partitions, lvs, vfs-type. +[space for common problems here] Better support for encrypted devices ------------------------------------ @@ -371,3 +327,58 @@ 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. + +live CD inspection +------------------ + +guestfish -i livecd.iso + +Could this be done through the core API and existing calls?