Check for running inside RHEL and adjust the logging options.

It seems like at least RHEL does not have the "--stderr" option
but instead only supports the short version "-s" so add a check 
that will switch from the long version to the short version when
RHEL is detected.
ChangeLog: mention fix of lp:1079002
merge from trunk
replace if..else based on presense of /etc/redhat-release with use of -s

instead of using '--stderr' on non-rhel based on the presense of
/etc/redhat-release, just use the short form '-s' everywhere.
write-ssh-key-fingerprints: use logger -s rather than --stderr

--stderr would be preferred for readability, but older versions of
logger do not support the long form.  Use the short form for compatibility.
cloudinit/stages.py: separate _read_base_cfg() into static function

The Init._read_base_cfg() was really a static function, this just moves
it to its own static function.  Its not used anywhere else at the moment.
add 'omnibus' as an install type for chef.

Thanks to Anatoliy Dobrosynets
Provide a mechanism for puppet to be conditionally installed.
Provide a mechanism for puppet to be conditionally installed.

Instead of always installing puppet give users the ability to opt-out.
Add 'omnibus' install mode for chef

This adds 'omnibus' to the values supported for chef's "omnibus_url" config
option. It also:
 * makes 'omnibus_url' configurable in cloud-config.
 * adds a 'force_install' flag, to allow the install code to
   act even if /usr/bin/chef-client is already present.
ensure a datasource's 'distro' and sys_cfg are updated

After parsing and merging datasource's config, the changes in were not making
it into the datasource's 'distro.

The end result was that the when a config module was called, it's 'cloud'
argument would be updated in 'cloud.distro', but not in
'cloud.datasource.distro'.  This path was required for getting mirror settings
to take affect, because they include information from the datasource.

Ie:
  cc_apt_configure had
    mirror_info = cloud.datasource.get_package_mirror_info()
  the datasource then used *its* copy of sys_cfg to call
    self.distro.get_package_mirror_info
  and *that* distro's sys_cfg had not been updated.
tell upstart to reload configuration after writing an upstart job

Invoking 'initctl reload-configuration' is only required if inotify 
does not work.  overlayroot does not support inotify.  So, we just
call initctl always, which wont hurt anything.
cloudinit/handlers/upstart_job.py: pep8 / trailing whitespace
DataSourceCloudStack: use virtual router rather than default route

In CloudStack's documentation, it is stated that meta/user-data can be
retrieved from CloudStack's Virtual Router [1].

However, cloud-init retrieves these information from default gateway. VR
and default gateway may be the same machine (i.e. have the same address)
in some cases, but that is not be always true (actually, in my case, it is
not).

This change searches the lease files in /var/lib/dhclient to pick out 
the dhcp-server-identifier.

It admittedly does make this specific to dhclient.

--
[1] http://incubator.apache.org/cloudstack/docs/en-US/Apache_CloudStack/4.0.0-incubating/html/Admin_Guide/user-data-and-meta-data.html).
add ChangeLog entry for previous commit