Make baremetal support metadata for ephemeral block-device-mapping

Make baremetal driver set instance['default_ephemeral_device'] to
/dev/sda1 since we are using the same device for root(sda3) and
ephemeral(sda1)

Change-Id: Ib2076198eacb0ea61706043b42d673c35d26f5d1
Partial-Bug: #1239524
Added monitor (e.g. CPU) to monitor and collect data

This patch gives a monitor interface for users to add their own monitors to
monitor on compute nodes on the compute manager.

The compute manager loads the monitors and gets the metrics, and sends to
the scheduler for utilization based scheduling.
The patch also gives a sample to collect CPU utilization data by libvirt
driver. The patch brings a new API get_host_cpu_stats() in class
ComputeDriver, and libvirt has implemented that in the patch.
For other virt drivers, it has not been implemented yet (TODO).

This is part of the blueprint utilization-aware-scheduling and the
blueprint generic-host-state-for-scheduler.

Change-Id: I4cd4f972c5c1cf6242a77aaeb9514c8a0d4faa0d
Add v3 api samples for shelve

Adds api sample tests and api samples for shelve

Partially implements blueprint v3-api-unittests
Partially implements blueprint v3-api-specification

Change-Id: Ib485ab042a340c4672ad01fb35d065fd52889b07
Remove "set()" from CoreAPIMissing exception

When some core v3 API extensions are not loaded, a CoreAPIMissing
exception happens like the following example:
  CoreAPIMissing: Core API extensions are missing: set(['keypairs'])

"set()" is used only for comparing the loaded extensions and the core
extensions. It is better to remove it from the exception message.

Change-Id: Iddfa69931064a6adb6e3aa7d6efaeb28260be5e0
Remove nullable=True in models.py which is set by default

Tiny change: nullable=True is set by default, no need to use it explicitly.

Change-Id: I28883f60a0319d4834913fcabe3a3c04410175c2
Merge "Make baremetal support metadata for ephemeral block-device-mapping"
Merge "Remove nullable=True in models.py which is set by default"
Merge "Added monitor (e.g. CPU) to monitor and collect data"
Merge "Add v3 api samples for shelve"
Merge "Remove "set()" from CoreAPIMissing exception"