TODO: Implement recursive upload/download in guestfish.
[libguestfs.git] / TODO
diff --git a/TODO b/TODO
index 66d3a5c..7737201 100644 (file)
--- a/TODO
+++ b/TODO
@@ -17,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 <char *, int> 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
 ------------------------------------------
 
@@ -119,6 +110,7 @@ Ideas for extra commands
     findfs
     logsave
     mklost+found
+    ext2undelete
 
   SELinux:
     chcat
@@ -271,3 +263,130 @@ 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 be generated code, and 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.
+
+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.
+><fs> add mydisk
+Tip: You need to type 'run' before you can see into the disk image.
+><fs> run
+Tip: Use 'list-filesystems' to see what filesystems are available.
+><fs> list-filesystems
+/dev/vda1
+Tip: Use 'mount fs /' to mount a filesystem.
+><fs> mount /dev/vda1 /
+Tip: Use 'll /' to view the filesystem or ...
+><fs> 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?
+------------------------------------------------------------------------
+
+><fs> sparse
+[[Prints man page]]
+Image name? disk.img
+Size of image? 10M
+
+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.
+
+Progress of long-running operations
+-----------------------------------
+
+For example, copying in virt-resize.  How can we display the progress
+of these operations?  This is a basic usability requirement, and
+frequently requested.
+
+See: https://www.redhat.com/archives/libguestfs/2010-July/msg00003.html
+and follow-ups.
+
+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).
+
+Recursive upload / download of multiple files
+---------------------------------------------
+
+virt-tar is really clumsy to use, and upload/download in guestfish can
+only do single files.  tar-in in guestfish can upload multiple files,
+but only if you have prepared a tarball in advance.
+
+What we really need is a method which is as easy to use as 'scp' and
+'scp -r'.
+
+Can we add this as a command in guestfish?  This will be more useful
+since users will already need to be in guestfish in order to create
+target directories, review what they've done etc.  It could be a meta-
+command such as:
+
+  copy-in-recursive localdir remotedir
+  copy-out-recursive remotedir localdir
+
+which would hide use of tgz-in etc.