Added abc.ABCMeta metaclass for abstract classes

Change-Id: I036148693a38fb1b0d1c298eb22d16e8d24ecacf
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
Add table prefix for unit tests with hbase

Fixes: bug #1271993

Change-Id: Idaa8bd4ae54db56fd060720eb46ccef4049ce493
samples: fix test case status code check

If a driver returns NotImplemented, the status code won't be 404 but the
test should not fail. Use the status argument in get_json for that check.

Change-Id: I71f21589d3a9fa917746e5eecb20f0e883cab830
Adds additional details to alarm notifications

Previously, the alarm notification contained only a stringified
reason. This change adds a JSON formatted reason why the alarm changed its
state to the notification.

New notification:
{
  "alarm_id": "0ca2845e-c142-4d4b-a346-e495553628ce",
  "current": "alarm",
  "previous": "ok",
  "reason": "Transition to alarm due to 1 samples outside threshold, most recent: 99.4"
  "reason_data": {
    "type": "threshold",
    "disposition": "outside",
    "count": 1,
    "most_recent": 99.4
  }
}

It also improves the reporting of OR-combination alarms. Previously the
reason said something like "At least one alarm in xx,yy,zz in state alarm".
Now only the offending alarms are listed.

Change-Id: I258c7bfc0c093c07e518418fea1bb1f044fe98eb
Implements: blueprint alarm-notification-details
Handle engine creation inside of Connection object

We now store sqlalchemy engine object inside of our Connection object.
This allows us to open multiple concurrent connections.

Change-Id: I57b6d89f30c065643dbfab958e032f2adac59cd6
Doc: Add OldSample to v2.rst

OldSample is still referenced in controllers/v2.py. In order for samples to be
generated in the documentation (thanks to the sample() class method), it must
also be referenced in doc/source/webapi/v2.rst.

Change-Id: Ie5bfe3aa1bc552630dad56eab3b2f921eb2b7690
Replace 'Ceilometer' by 'Telemetry' in the generated doc

Text strings from ceilometer/api/controllers/v2.py may appear in the
documentation generated for api.openstack.org, where the word 'Ceilometer' has
been removed.

Change-Id: I3a8e333212a33a4775a1cd75da8909b5b14f3230
Replace BoundedInt with WSME's IntegerType

WSME has contained IntegerType class since version 0.6.
The class has been tested in WSME, and it is almost the same as
Ceilometer's BoundedInt class.
For the maintainability, this patch replaces BoundedInt class with
WSME's IntegerType class.

Change-Id: I8444d54c0bc53aec26dad57645f3f6e3f9867f01
Fixes invalid key in Neutron notifications

The tenant id in notifications is read from variable _context_tenant_id rather
than tenant_id. This caused KeyErrors when updating floating IPs.

Change-Id: I883e049f28cd8de6d46a622572832bdbf382de24
Closes-Bug: 1276761
Merge "Replace 'Ceilometer' by 'Telemetry' in the generated doc"
Merge "Doc: Add OldSample to v2.rst"
Improve help strings

Follow oslo.config style guide for help strings better to create
consistent help strings:
* Capitalize first word of each help string
* Finish help strings with "."
* Improve wording

Change-Id: I4723ad672c30146869254695ba82678b082efd91
Adds flavor_id in the nova_notifier

The instance_type_id is the primary key stored in Nova's instance_types table.
The flavorid is the public id provided at the creation of the flavor.

When we create an instance using the flavor m1.tiny, we can see instance
info contains below keys:
    "instance_type_name" :"m1.tiny"
    "instance_type_id": 2,
Actually, the "m1.tiny" flavorid should be a string '1'. Considering
changing the id's tpye maybe cause confusion with the already saved old
data, add flavor_id to the flavor dictionary.

The instance_ref has all the flavor infomation, not need to get flavor
info from DB again.

Change-Id: I5bd19b2bc2f874d31fd4609306c24e0f51517281
Closes-Bug: #1273638
Merge "Add table prefix for unit tests with hbase"
Updated from global requirements

Change-Id: I2b884c52fb605fcec654c5d5a706d517e705601b
Remove tox locale overrides

* tox.ini: The LANG, LANGUAGE and LC_ALL environment overrides were
introduced originally during the testr migration in an attempt to be
conservative about the possibility that locale settings in the
calling environment could cause consistency problems for test runs.
In actuality, this should be unnecessary and any place where it does
cause issues ought to be considered an actual bug. Also, having
these in the configuration actively causes older pip to have
problems with non-ASCII content in some package metadata files under
Python 3, so drop it now.

Change-Id: Ia3074e5fdcb8a0494d908944ea7d10942b08ab90
Closes-Bug: #1277495
fix column name and alignment

3rd column of measurements table should be Unit.
And alignment should be left.

Change-Id: Ic7e7e7264bb7b4dfe7949f781d23dcba7db71604
Implements complex query functionality for samples

New API resource /query/samples has been added

Implements: blueprint complex-filter-expressions-in-api-queries
Change-Id: I5b324f390eb3ed63514260683c1576a0fc0cb7af
Refactored run-tests script

Refactored run-tests script to become a setup script.
This is needed to make it work correctly with arbitary command we want
to run in venv (testenv:venv in tox).

Change-Id: I91d0e7a05fb1b9fa13e18789281fdf5267f5b526