Handle the metrics sent by nova notifier

Nova compute node can now get metrics from monitors and send
notifications to message bus. So, add listeners to handle the
metrics in ceilometer. This patch changes the directory layout
for compute notifications, because there will be other metrics
(e.g. network and cache Qos) to be added. The deployer can also
add the metrics they want. It's better to make a classification
of these metrics.

Nova blueprint utilization-aware-scheduling

Change-Id: I6f54ef18035c437370360bbaff6d71666d0323fe
Sync config generator workaround from oslo

The following workaround avoid error when parsing duplicated config
options during config generation, see bug 1262148 for the details.

7c18261 Temporary workaround for config generator

Change-Id: Ia21afa53c5801f59dd361946716d8a18c389ada5
Utilizes assertIsNone and assertIsNotNone

Using assertEqual/assertNotEqual to test if an element
is or is not None is too python2.4.
Our unit testing framework supports assertIsNone and assertIsNotNone
which were created for these types of tests.

Change-Id: Ieba2d4ce5602885dc8a33a938a40f3086879b2c3
Avoid false negatives on message signature comparison

Fixes bug 1262255

Previously, samples for the 'instance.scheduled' meter were always
rejected with a false negative on the message signature verification.

The problem occured because certain resource metadata (such as the
block_device_mapping) in the 'scheduler.run_instance.scheduled'
notification are realized as a list of dict, and are thus similarly
encoded in the corresponding sample payload.

However the message signature computation then became indeterminate,
as the unicode representation of equivalent dicts is not guaranteed
equal (e.g. depends on insertion order in the case of hash collisions).

Now, we avoid false negatives by explicitly re-ordering insertion
into such dicts.

Change-Id: I77f7d89229518cf040608d7eb3307e2257bce07a
1st & last sample timestamps in Resource representation

Fixes bug 1262335

Previously, the first and last sample timestamps associated
with a resource were calculated by the storage driver, but
then discarded.

Now, we include these values in the API resource representation.

Change-Id: I3cf6081e1ac1294083f6326f85dabebab0d02203
AlarmChange definition added to doc/source/webapi/v2.rst

Change-Id: I0c071a81ddd7a0e5a7083af9077ec20dce0a0b7c
Closes-Bug: #1266519
Merge "Sync config generator workaround from oslo"
Merge "Handle the metrics sent by nova notifier"
Merge "Avoid false negatives on message signature comparison"
Merge "AlarmChange definition added to doc/source/webapi/v2.rst"
Merge "1st & last sample timestamps in Resource representation"
Merge "Utilizes assertIsNone and assertIsNotNone"