X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=TODO;h=5002fc155d209105411c2ad181d3901fa1ffbe4a;hp=e99f7ed69d631f1b57af457434e2d4c39786eaf4;hb=3451d73a693091ae1a33e7dbefbe56c1b93f426a;hpb=819f30e332160ba05f7bf6dd068622cc07bf9ffc diff --git a/TODO b/TODO index e99f7ed..5002fc1 100644 --- a/TODO +++ b/TODO @@ -17,27 +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). -BufferIn --------- - -BufferIn should turn into and simple strings in other -languages that can handle 8 bit clean strings. - -Limit on transfers would still be 2MB for these types. - - then implement write-file properly - -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 ------------------- @@ -94,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 ------------------------ @@ -119,6 +103,7 @@ Ideas for extra commands findfs logsave mklost+found + ext2undelete SELinux: chcat @@ -189,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\", \"/\"); @@ -212,16 +196,6 @@ ntfsclone Useful imaging tool: http://man.linux-ntfs.org/ntfsclone.8.html -Standard images ---------------- - -Equip guestfish with some standard images that it can load -quickly, eg: - - load ext2 - -Maybe it's better to create these on the fly? - virt-rescue pty --------------- @@ -232,6 +206,10 @@ http://www.perlmonks.org/index.pl?node_id=582185 Note that pty requires cooperation inside the C code too (there are two sides to a pty, and one has to be handled after the fork). +[I tried to implement this in the new C virt-rescue, but it doesn't +work. qemu is implementing its own ptys, and they are broken. Need +to fix qemu.] + Windows-based daemon/appliance ------------------------------ @@ -260,37 +238,142 @@ 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 ------------------------------------------ +[Not sure this is such a good idea. See also live CD inspection idea below.] -[See related: -http://www.redhat.com/archives/libguestfs/2009-August/msg00031.html] +Map filesystems to disk blocks +------------------------------ -List filesystems by UUID or label. +Map files/filesystems/(any other object) to the actual disk +blocks they occupy. -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). +And vice versa. -UUencoded uploads ------------------ +Is it even possible? + +See also contribs/visualize-alignment/ -(Or base64). Something like: +Integration with host intrusion systems +--------------------------------------- -base64-in -< add mydisk +Tip: You need to type 'run' before you can see into the disk image. +> run +Tip: Use 'list-filesystems' to see what filesystems are available. +> list-filesystems +/dev/vda1 +Tip: Use 'mount fs /' to mount a filesystem. +> mount /dev/vda1 / +Tip: Use 'll /' to view the filesystem or ... +> ll / + +Could we make guestfish interactive if commands are used without params? +------------------------------------------------------------------------ + +> sparse +[[Prints man page]] +Image name? disk.img +Size of image? 10M + +Common problems +--------------- + +How can we solve these common user problems? + +[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: + + - 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 ----------------- -debug-upload -< 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 -debug sh ... +Could this be done through the core API and existing calls?