Fix SQL exception getting statitics with metaquery

In the scenario with mysql as storage backend, when getting statistics
with metaquery, sqlalchemy will raise an exception of "Unknown column
'sample.id' in 'on clause'", this is because of a wrong usage of JOIN
clause.

Change-Id: I6f140952082ab245f27d576ee9629a086104f8b1
Closes-bug: #1332673
Use resource discovery for Network Services

This change migrates the network services pollsters to
leverage resource discovery through pipeline yaml. This
will also be more HA friendly to distribute work across
multiple central agents.

Change-Id: I4d454e98974438438c166051451b76ce9fbbc2a4
Add support for metering VPNaaS

Change-Id: Ida9e04b13d54ab4853a4ba30d2148ac7bc8ba244
Partially-Implements: blueprint ceilometer-meter-vpnaas
Multi meter arithmetic transformer

New pipeline transformer that enables us to perform arithmetic calculations
over one more meters and/or their metadata, for example:

    memory_util = 100 * memory.usage / memory .

The calculation is limited to meters with the same interval.

Example configuration:

    - name: "arithmetic"
      parameters:
        target:
          name: "memory_util"
          unit: "%"
          type: "gauge"
          expr: "100 * $(memory.usage) / $(memory)"

To demonstrate the use of metadata, here is the implementation of
a silly metric that shows average CPU time per core::

    - name: "arithmetic"
      parameters:
        target:
          name: "avg_cpu_per_core"
          unit: "ns"
          type: "cumulative"
          expr: "$(cpu) / ($(cpu).resource_metadata.cpu_number or 1)"

Expression evaluation gracefully handles NaNs and exceptions. In such
a case it does not create a new sample but only logs a warning.

DocImpact: add documentation about using this new transformer
Implements: blueprint arithmetic-transformer
Change-Id: I1b637e5b1d1bb15ed3c3d7ec758d2a684eaccf21
Adds Content-Type to alarm REST notifier

When doing a POST request in the REST alarm notifier,
we should include a Content-Type: 'application/json' header.

Closes-Bug: #1346147
Change-Id: Ic02c8caeb294763443858dbbb3192e09c594c8cf
Merge "Adds Content-Type to alarm REST notifier"
Support for metering FWaaS

Partially-Implements: blueprint ceilometer-meter-fwaas

Change-Id: I3b0e40fa3bbddc304d3adf936626334342288a2d
Implement consuming ipmi notifications from Ironic

This borrows heavily from the compute notifications code. The basic
idea is that there are few classes of samples that can be had
(Fan, Temperature, Voltage, Current). Within these are potentially
multiple individual sensors and values. In all cases the volume and
unit of a sample can always be extracted from the value of a
'Sensor Reading' key. The volume is cast to a float. If the value
is 'Disabled' the data is dropped.

Each subclass exists to allow flexible handling via stevedore, but
all activity is performed in the superclass.

The supplied good test data is the currently blessed sample from the
Ironic team. The bad test data tickles either skipping missing data or
producing warnings in the log.

Identifier and name construction is worth a close look because this
is an area of frequent discussion:

* resource_id is composed from node_uuid and sensor id
* meter name is based on the class name and is generic, only
  paired with a resource_id does it identify a specific sensor
* unit is parsed out of sensor data and mapped to SI units

Change-Id: Ie7ac92aebb45fc23d6134b4d6693f8a1e4d4ea40
Implements blueprint ironic-notifications
Merge "Use resource discovery for Network Services"
Updated from global requirements

Change-Id: I367c368e2bd82c8e0ac00780fcf0e05410df09bf
Merge "Add support for metering VPNaaS"
Merge "Support for metering FWaaS"
Merge "Implement consuming ipmi notifications from Ironic"
Follow up fixes to network services pollsters

This is a follow up commit addressing comments around
minor clean up, fix resources variable to set to empty
list instead of None and others.

Change-Id: Ied9edd356d59f0cdccde45040897018228df2d20
Merge "Fix SQL exception getting statitics with metaquery"
Merge "Follow up fixes to network services pollsters"
Merge "Updated from global requirements"