Consider making failsafeDataSource
- sets the user password, writing it to console
Consider a previousDataSource, if no other data source is
found, fall back to the previous one that worked.
Rewrite cloud-init-query (currently not implemented)
Possibly have a DataSource 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). See for example netcf which seems to be
an active project that has this capability.
Replace the apt* modules with variants that now use the distro classes
to perform distro independent packaging commands (wherever possible).
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_ prefix for config modules, either have them fully
specified (ie cloudinit.config.resizefs) or by default only look in
the cloudinit.config namespace 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)
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.