1
TODO
2
====
3
4
See KNOWN_BUGS for real bugs.
5
6
Bugs to fix and features to add for 5.0
7
---------------------------------------
8
9
* xen-create-image man page overhaul:
10
11
- ambiguous option list with regards to parameters
12
- Set Fail in more situations where the script has clearly failed
13
  i.e.: lvm exists
14
15
* Test and support more file system types.
16
17
   Actually this should be pretty simple now that the parameters are
18
   stored in the configuration hash.
19
20
* Setup locales in the hooks?
21
22
   Currently no locales are set and this causes several domU errors
23
   which appear in the domU's logs.
24
25
* Documentation overhaul
26
27
   Better explain what roles /should be/ used for, and that roles
28
   are examples, and shouldn't cover every single scenario. They
29
   are also easy to write.
30
31
* Think again about disk_device checks :
32
33
   Newer Xen provides "xvda", older provided "sda". The current check for
34
   valid values of disk_device (used for root device in domU /etc/fstab)
35
   does only allow those values.
36
   This forbids any deployment of LVM/RAID _inside_ domU, which cannot
37
   be created by xen-tools anyway. So the current check is fine with the
38
   current possibilities of xen-tools, but could become a limitation.
39
   - Is it possible/wanted to "query" xend for default device names ?
40
   - Is it possible to create /dev/mapper devices with xend conf ?
41
   - Can we just avoid to ask for this value and not specify the device
42
   in /etc/fstab (and use /dev/root, /dev/by-uuid, or anything ?)
43
44
* xen-create-image --dist=... / sources.list generation should be more fine-grained
45
46
   xen-tools should offer the possibility to enable/disable
47
   security/volatile/backports as well as
48
   contrib/non-free/universe/restricted/multiverse for each of them
49
   not only based on defaults plus the Dom0's sources.list
50
51
   One idea is to allow parameters like
52
53
   --dist="lenny:main,contrib,non-free;security;volatile:main"
54
55
   and maybe (if the default will be to include security) to also
56
   allow
57
58
   --dist="lenny;no-security"
59
60
   The second idea (by Mathieu Parent) is to have an
61
   /etc/xen-tools/sources.list.d/ which then contains files like
62
   lenny.list, lenny-server.list, karmic.list, etc. which defaults to
63
   $dist.list, but can be also select with --sources-list=lenny-server
64
   (which looks for ./lenny-server.list, ./lenny-server,
65
   /etc/xen-tools/sources.list.d/lenny-server.list and
66
   /etc/xen-tools/sources.list.d/lenny-server in that order).
67
68
   Third variant is to use /etc/xen-tools/sources.lists/ instead of
69
   /etc/xen-tools/sources.list.d/ because that directory is no
70
   runparts-like directory.
71
72
* LVM snapshot support as an install source.
73
74
* Clean up mounts on Ctrl-C, causes error while installing otherwise:
75
76
   Removing /dev/vg0/acromantula-domu1-disk - since we're forcing the
77
   install Can't remove open logical volume "acromantula-domu1-disk"
78
   this should be a matter of unmounting the mounted volume from /tmp.
79
80
* Generic grub support
81
82
   This will generate a much nicer menu.lst as a side effect, as its
83
   currently generated once at install, and is never updated. Installing
84
   a full grub into the domU should update the menu.lst every time a
85
   new kernel is installed and will also use the domU distro's menu.lst
86
   conform.
87
88
* pv-grub support
89
90
   This is a ways away and will probably start with a xen-pv-grub
91
   package.
92
93
* Move the hooks directory to /etc/xen-tools/ to officially allow
94
   added and modified hooks.
95
96
* Clean up the hooks directory
97
98
   Currently we have one directory for Ubuntu and Fedora named after
99
   the first supported release which is then duplicated for each
100
   subsequent release.
101
102
   I'm sure this won't scale forever. So to minimise code duplication
103
   I'd like to have one common directory per distribution (e.g. called
104
   ubuntu-common, fedora-common, debian-common, maybe even deb-common,
105
   rpm-common or yum-common for dpkg/apt-, rpm/yum-based
106
   distributions, etc.) with generic hooks valid for all or most of
107
   the releases of one distribution and then one hook directory per
108
   release (e.g. called ubuntu-10.04 or ubuntu-lucid or so) which has
109
   symbolic links to everything which can be used unchanged from the
110
   common directory and new files for everything which has to be
111
   different or only there.
112
113
* Create users, add ssh pubkeys to .ssh/authorized_keys
114
115
   Still have to think of a good way of doing this. It would be nice
116
   To specify a directory of public keys, parsing the hostnames
117
   parsing the usernames from the ssh comment line
118
119
* More generic roles
120
121
   Deploy a web server or setup ssmtp directly via flag when setting up
122
   the machine. Open to suggestions, should just be some general use-cases
123
   that are fairly common.
124
125
* Sections for the xen-tools.conf file
126
127
   Currently it's really annoying when you are trying to create VMs
128
   on multiple subnets. It would be nice to specify with a flag what
129
   "type" of configuration you want, and a set of options specific to
130
   that flag could be parsed from xen-tools.conf
131
132
* Refactor the code for less code duplication
133
134
   Like e.g. readConfigurationFile in xen-create-image and
135
   xen-resize-image which are not completely identical.
136
137
* Refactor the code for less variants of calling cp, rm, mv, etc.
138
139
   E.g. always use either cp() from File::Copy or /bin/cp, but not
140
   both. To allow verbose copying, I (Axel) would prefer /bin/cp over
141
   cp();
142
143
* Parse numerical parameters transparently for the user
144
145
   The user shouldn't have to know weather he should specify size
146
   as <size>G or <size>Gb or <size>. This should be parsed without
147
   user interaction and rely on a common format.
148
149
* xen-update-image should mount /dev/pts before running apt-get
150
151
* xen-update-image should have options for using ...
152
153
   ... aptitude instead of apt-get
154
155
   ... dist-upgrade instead of upgrade
156
157
* Support cpu_weight and other features from
158
  http://wiki.xensource.com/xenwiki/CreditScheduler
159
160
* Use Perl::Critic
161
162
Stuff from Steve's TODO list / Generic TODOs
163
--------------------------------------------
164
165
* Write more test cases.
166
167
* xen-delete-image should unallocate any used IP addresses.