~smoser/cloud-init/lp-1077700

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
- 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.