- Consider a 'failsafe' DataSource If all others fail, setting a default that - sets the user password, writing it to console - logs to console that this happened - Consider a 'previous' DataSource If no other data source is found, fall back to the 'previous' one keep a indication of what instance id that is in /var/lib/cloud - Rewrite "cloud-init-query" (currently not implemented) Possibly have DataSource and cloudinit expose explicit fields - instance-id - hostname - mirror - release - ssh public keys - Remove the conversion of the ubuntu network interface format conversion to a RH/fedora format and replace it with a top level format that uses the netcf libraries format instead (which itself knows how to translate into the specific formats) - Replace the 'apt*' modules with variants that now use the distro classes to perform distro independent packaging commands (where possible) - Canonicalize the semaphore/lock name for modules and user data handlers a. It is most likely a bug that currently exists that if a module in config alters its name and it has already ran, then it will get ran again since the lock name hasn't be canonicalized - Replace some the LOG.debug calls with a LOG.info where appropriate instead of how right now there is really only 2 levels (WARN and DEBUG) - Remove the 'cc_' for config modules, either have them fully specified (ie 'cloudinit.config.resizefs') or by default only look in the 'cloudinit.config' for these modules (or have a combination of the above), this avoids having to understand where your modules are coming from (which can be altered by the current python inclusion path) - Depending on if people think the wrapper around 'os.path.join' provided by the 'paths' object is useful (allowing us to modify based off a 'read' and 'write' configuration based 'root') or is just to confusing, it might be something to remove later, and just recommend using 'chroot' instead (or the X different other options which are similar to 'chroot'), which is might be more natural and less confusing... - Instead of just warning when a module is being ran on a 'unknown' distribution perhaps we should not run that module in that case? Or we might want to start reworking those modules so they will run on all distributions? Or if that is not the case, then maybe we want to allow fully specified python paths for modules and start encouraging packages of 'ubuntu' modules, packages of 'rhel' specific modules that people can add instead of having them all under the cloud-init 'root' tree? This might encourage more development of other modules instead of having to go edit the cloud-init code to accomplish this.