Merge "Make webob.exc.HTTPForbidden return correct message"
Merge "Emit message which merged user-supplied argument in log_handler"
Merge "DB: logging exceptions should use save_and_reraise"
libvirt: image property variable already defined

A variable image_meta_prop with properties from a glance image
is already defined and can be used.

Change-Id: I5a3bab2d944c60ed744bbfc79fb9d5ad195c0d69
Add a caching scheduler driver

This adds a new scheduler driver, CachingScheduler

It currently subclasses the filter scheduler and only adds caching of
calls to host_manager.get_all_host_states.

It relies on there being a small number of schedulers, ideally one,
calls to consume_from_instance within the filter scheduler to update the
current cached list of hosts, and a low rate of deletes.

It introduces the new config value:
scheduler_driver_task_period

The periodic task it controls is used by the caching scheduler to fetch
an updated copy of host_manager.get_all_host_states.

If your value for service_down_time is much smaller than
scheduler_driver_task_period, there will be issues with hosts appearing
to be dead, just because the list of hosts is being cached. Correct
configuration of those two values can avoid this issue.

DocImpact
Part of blueprint caching-scheduler
Change-Id: I2eb873ce8024a576e597205e2d52b5d5e8aee97a
Merge "Minor changes to make certificates test cases use HTTPRequestV3"
Merge "Remove unused variables in the xenapi.vmops module"
Merge "Fix import order in log_handler"
Unmount the NFS and GlusterFS shares on detach

When attaching an NFS or GlusterFS volume, nova mounts the share so it
can be reused by other instances but it is not unmounted when detaching.

This patch adds the disconnect_volume method to both drivers, which will
try to unmount the share. If a volume in that share is still being used
by another instance, the umount command will fail with the error 'target
is busy' and we will ignore it. Any other error while unmounting will be
properly logged. In any case the detach will fail because nova hasn't
been able to unmount the share.

Closes-Bug: #1285209
Change-Id: I79289524541a88ad359b3465719055cd402b4e3d
Merge "Hyper-V log cleanups."
Move the metrics update to get_metrics

It is not necessary to update the metrics when get every metric in
one compute monitor plugin, just update once when get metrics for
the monitor plugin.

Change-Id: Ib665188964de8318f6d94343891666c674111c8c
Update server_diagnostics to use instance object

Update the server_diagnostics API to get an instance object and then pass it
through the system down to the virt driver.

Converting the get_diagnostics() call in the compute manager also updates one of
the driver.get_info() calls to take an instance object.  Most had already been
converted.  There was one other stray case in the compute manager where it was
still taking an instance primitive, so this patch hits that one too to finish
the conversion of get_info() while we're at it.

Part of blueprint virt-objects

Change-Id: I20b324039c20f5b1fde4d55df2d679b7fb094573
update deallocate_for_instance to take instance obj

Update the deallocate_for_instance() method of the nova.network rpc API
to take a full instance object instead of just an instance UUID and some
other instance data.  This patch is just the mechanics of getting the
API changed.  The next patch will make use of getting the full instance
object to eliminate a db query in nova-network.

Part of blueprint nova-network-objects

Change-Id: I9be88206ecc64a92d2826a9ac43e4d2d384f29ff
Remove db query from deallocate_fixed_ip

A previous patch updated deallocate_for_instance() in nova-network to
take the full instance object over rpc.  This patch passes that instance
through nova-network to deallocate_fixed_ip(), which allows us to avoid
N instance db lookups (where N is the number of fixed IPs being
deallocated).

Related to blueprint nova-network-objects

Change-Id: Ib92e824f1bea2caae668945fabfae997632cd5f0
Remove unused method inject_file()

Remove the unused method, inject_file(), from the compute.api and
compute.rpcapi.  mark it deprecated on the manager side to be removed on the
next major iteration of the compute rpc interface.

Related to blueprint virt-objects

Change-Id: I53339e39604f90cf7ecf159da78c4e8e9283bf87
Update pre_live_migration to take instance object

Update the pre_live_migration method in the compute api, compute manager,
and virt driver to take an instance object.  The update to the compute manager
call also happens to finish the conversion of
ensure_filtering_rules_for_instance in the virt driver API, as well.

Part of blueprint virt-objects

Change-Id: I2ddb1d72dbbd11e153f75171b3a4dc4f87ca3972
Merge "Rewrite InstanceActionEvent object testcase using mock"
Merge "Add a caching scheduler driver"
Merge "Fix InstanceNotFound error in _delete_instance_files"
Merge "Clean up _make_*_list in object models to use base.obj_make_list"