To-do: Explain the situation with resizing block devices.
[libguestfs.git] / TODO
1 Ideas for the Python bindings:
2 https://www.redhat.com/archives/fedora-virt/2009-April/msg00114.html
3
4 ----------------------------------------------------------------------
5
6 We badly need to actually implement the FTP server mentioned in the
7 documentation.
8
9 Or: Implement a FUSE-based filesystem.  See the FUSE mountlo
10 project which does something similar, albeit only to single
11 filesystems:
12
13 http://sourceforge.net/project/showfiles.php?group_id=121684&package_id=150116
14
15 ----------------------------------------------------------------------
16
17 BufferIn and BufferOut should turn into <char *, int> and simple
18 strings in other languages that can handle 8 bit clean strings.
19 Limit on transfers would still be 2MB for these types.
20  - then implement write-file properly
21  - and implement read-file
22
23 ----------------------------------------------------------------------
24
25 Implement febootstrap command.
26
27 ----------------------------------------------------------------------
28
29 Complete the Haskell bindings (see discussion on haskell-cafe).
30
31 ----------------------------------------------------------------------
32
33 Practically, resizing the partitions when a block device is resized
34 isn't possible.  So for example it's not possible to resize a Fedora
35 block device.  If you try to use sfdisk-N to change the boundaries of
36 the existing partition to fill up the new space, you get an error that
37 the partition is in use.
38
39 The reason, I now think, is because LVM is using the partition as a
40 PV, and this locks it as far as the kernel is concerned.
41
42 Removing the PV [which is what we do in the test suite] isn't
43 desirable if the PV contains data you care about.  Rebooting the qemu
44 subprocess after the partition table change works, but isn't very
45 cool.  I believe what we need to do is to temporarily reconfigure LVM
46 (using /etc/lvm/lvm.conf) to ignore the PV, vgscan (which will then
47 ignore the PV), make the changes to the partition table, then set the
48 LVM configuration back and do a final vgscan.
49
50 Need to test the above, and find a nice way to present it through
51 the API.