Fix recursive_keypairs output

recursive_keypairs has 'separator' argument. This method is recursive
and a problem is that 'separator' argument is applied only in first
iteration of the method.

Besides, this method is used in flatten_metadata in API implementation.
That's why it is needed not to change output from recursive_keypairs in flatten_metadata.

So the path has a goal to fix incorrect recursive_keypairs impementation but
not to change output of flatten_matadata in API

Fixes bug 1268628

Change-Id: Ic9829342c47325c1df7b81dc4148c08a13e0d067
Fix some flaws in ceilometer docstrings

Change-Id: Iaed56b46cefff10f9a88fa5096390b19a297d237
allow hacking to set dependencies

allow hacking to define flake8, pep8, pyflakes dependencies.
see Change-Id: Ie61a97d5ed26bb8cab04df686a4a2d1df9976f1d

Change-Id: I183dbc82bfbed0e10b75c1eb8f0f926105e3d319
Implements field validation for complex query functionality

Implements: blueprint complex-filter-expressions-in-api-queries
Change-Id: Id186995b4c7106f9e3ceb596b3faf46cb2231790
Keep py3.X compatibility for urllib.urlencode

For py3.X, urllib has no attr urlencode while python 2 has.
Change urlencode to keep compatibility.

Partial-Bug: #1280105

Change-Id: I2c0447af3206cdfc55ba22748b2793de8eb94cfb
Modify the discription of combination alarm

Adding two blanks to the default discripion of combination alarm.
It is more reasonable that the discription of combination alarm with two
blanks around the operator(or,and).

Change-Id: Iccf0959897d57d52ae90bd68bb0497a58ed55e24
Handle Heat notifications for stack CRUD

Add meters for all successfully CRUD operations :
- stack.create
- stack.delete
- stack.update
- stack.suspend
- stack.resume

Implements blueprint handle-heat-notifications

Change-Id: I98ffd1544d184237dc91aed98b1ad7b2fce8734a
sync units.py from oslo to ceilometer

This patch syncs the units module from oslo to ceilometer.

Change-Id: Iaf3a357738e71ef37fa3dd895b25d6335bf4f544
Use the module units to refer bytes type

Change-Id: I7d3e1b93fcbd7d60593d44bb86899fb43dc69003
Refactor timestamp existence validation in V2 API

There was a bug in AlarmThresholdRule in v2.py, the timestamp_keys
were defined with a missing comma:
['timestamp', 'start', 'start_timestamp' 'end', 'end_timestamp'].

The validation, if the timestamp field is used or not, was unclear
in the current implementation. A new parameter, 'timestamp_is_valid',
was added to the validation functions to show, if the timestamp is
allowed to use or not in the validated query.

Fixes bug 1280975

Change-Id: I2aaef54354926f9afe3bb1d4fae8f8aa0ae600ab
Merge "Keep py3.X compatibility for urllib.urlencode"
Fix missing source field content on /v2/samples API

Also fix example Sample in API doc

Closes-Bug: #1282176

Change-Id: I322aa57c0e8f83f9b220cf544378eb5e183df134
Merge "Handle Heat notifications for stack CRUD"
Merge "sync units.py from oslo to ceilometer"
Merge "Use the module units to refer bytes type"
Merge "Modify the discription of combination alarm"
Merge "Fix recursive_keypairs output"
Merge "Refactor timestamp existence validation in V2 API"
Merge "Fix some flaws in ceilometer docstrings"
Remove code that works around a (now-resolved) bug in pecan

Remove workaround from Bug #1202739
Closes-Bug: #1280003
Change-Id: Icf562b843f6940cb6085cc67f292e8b746cbcc9d