X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=TODO;h=e9716f23d4ce1edbc787bd17467c52d9ce0ecbe4;hp=981d67b4fed0019b879a9de3f50854147399367a;hb=61da709722ec244da1c3c7d4f1a8706f76687cb3;hpb=3d05963f9e0fd2229e04e0add391a4cbcdf8d86c diff --git a/TODO b/TODO index 981d67b..e9716f2 100644 --- a/TODO +++ b/TODO @@ -6,12 +6,6 @@ to libguestfs in future. - RWMJ -Python bindings ---------------- - -Ideas for the Python bindings: -https://www.redhat.com/archives/fedora-virt/2009-April/msg00114.html - FUSE API -------- @@ -23,15 +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). -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 ------------------------------------------ @@ -44,6 +29,11 @@ Haskell bindings Complete the Haskell bindings (see discussion on haskell-cafe). +PHP bindings +------------ + +Add bindtests to PHP bindings. + Complete bind tests ------------------- @@ -100,34 +90,11 @@ 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? -PPC problems ------------- - -[This section should be filed as bugs, but no one seems to care for -PPC hosts and the hardware is rapidly becoming obsolete] - - ppc (32 bit) works with qemu from git, however there is no serial console - - ppc64 requires extra parameters: - -M mac99 -cpu ppc64 - however it still fails: - invalid/unsupported opcode: 01 - 01 - 1a (06301e83) 00000000018c2738 1 - invalid bits: 00400000 for opcode: 0b - 19 - 15 (2d746572) 0000000000009230 - - no serial console in ppc or ppc64 because no one can tell us what - console=ttyXX option to use - -Supermin appliance to febootstrap ---------------------------------- - -Supermin appliance functionality should be moved into febootstrap. - Ideas for extra commands ------------------------ General glibc / core programs: chgrp - dd (?) more mk*temp calls ext2 properties: @@ -143,6 +110,7 @@ Ideas for extra commands findfs logsave mklost+found + ext2undelete SELinux: chcat @@ -236,16 +204,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 --------------- @@ -256,29 +214,194 @@ 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). -virt-rescue TERM ----------------- - -Pass TERM from the library, through the kernel command line, to the -init script. - Windows-based daemon/appliance ------------------------------ See discussion on list: https://www.redhat.com/archives/libguestfs/2009-November/msg00165.html -virt-grow, virt-shrink ----------------------- - -Grow and shrink existing guests. The main problem comes with -MBR-style partitions where you have to actually copy data around the -disk (unless you only want to change the final partition). - qemu locking ------------ Add -drive file=...,lock=exclusive and -drive file=...,lock=shared Change libguestfs and libvirt to do the right thing, so that multiple -instances of qemu cannot stomp on each other. \ No newline at end of file +instances of qemu cannot stomp on each other. + +virt-disk-explore +----------------- + +For multi-level disk images such as live CDs: +http://rwmj.wordpress.com/2009/07/15/unpack-the-russian-doll-of-a-f11-live-cd/ + +It's possible with libguestfs to recursively look for anything that +might be a filesystem, mount-{,loop} it and look in those, revealing +anything in a disk image. + +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 +------------------------------ + +Map files/filesystems/(any other object) to the actual disk +blocks they occupy. + +And vice versa. + +Is it even possible? + +Integration with host intrusion systems +--------------------------------------- + +Perfect way to monitor VMs from outside the VM. Look for file +hashes, log events, login/logout etc. + +http://www.ossec.net/ +http://la-samhna.de/samhain/ +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' +---------- + +https://www.redhat.com/archives/libguestfs/2010-June/msg00053.html +https://www.redhat.com/archives/libguestfs/2010-June/msg00079.html + +Regression test on virt-inspector +--------------------------------- + +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 +----------------------- + +Access to these ioctls: +http://git.kernel.org/linus/fcccf502540e3d7 + +Tips for new users in guestfish +------------------------------- + +$ guestfish +Tip: You need to 'add disk.img' or 'alloc disk.img nn' to make a new image. +Type 'notips' to disable tips permanently. +> 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 / + +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? +------------------------------------------------------------------------ + +> 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: + + - 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). + +Remove repo from appliance name +------------------------------- + +There's no need to have the appliance name contain the repository name +(ie initramfs.x86_64.img instead of initramfs.fedora-13.x86_64.img). + +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. + +Virt-df UUID +------------ + +Virt-df and any other tools with --csv output should be able to print +UUID of domain. This allows you to track the real domain across +renames etc. + +Add-domain command +------------------ + +guestfs_add_domain (g, "libvirt-dom"); + +However this would need to not depend on libvirt, eg. loading it +on demand.