use file instead of tap for non-blockdevice images on Xen

In nova/virt/libvirt/utils.py the method pick_disk_driver_name() returns
"tap" for non-blockdevices on Xen. This leads to an exception on the
xend service. The returned driver name should be "file" instead of
"tap".

fixes bug 1084618

Change-Id: Ib87f18f56afb3c5f34c30e9aea605dad24a36cdf
Add generic customization hooks via decorator.

Hooks add the ability to insert custom code around operations that
declare a named hook:

e.g.

@hooks.add_hooks('create_instance')
def create_instance(....):
   ....

The above hook allows Hook objects to be run 'pre' and 'post' the
execution of create_instance()

Hook objects are discovered via the setuptools entry point group
'nova.hooks'.

Change-Id: I3961df12ef415085de7459438967edacc34500c2
Access DB values as dict not as attributes. Part 3

We cannot assume nova.db.api will be returning sqlalchemy objects
attributes, instead treat return values as dicts

Part of blueprint db-api-cleanup

Change-Id: Icf45e5475b9d626f7e07efe953615dd82bb69ade
powervm: add DiskAdapter for local volumes

This change begins moving all block device
related functionality to an abstract DiskAdapter class
The original local logical volume implementation
has been moved into PowerVMLocalVolumeAdapter

Also, this patch opts for on the fly decompression of the
image during the dd copy to the Logical Volume, instead
of running a separate decompress before hand

bp powervm-compute-enhancements

Change-Id: I9ecb81e4351fd3a5c34ab8bce544b8daec353c5a
improve sessions for key_pair_(create,destroy)

improve sessions for key_pair_(create,destroy)

blueprint db-session-cleanup

Change-Id: Ia26d9d3a96a5be0a6c475159426f5f8edfe5401e
remove session param from certificate_get

remove unused session param from certificate_get()

blueprint db-session-cleanup

Change-Id: I9bcf8c73507cd3d8beb60a262d47368206652e74
Add support for new WMI iSCSI initiator API

blueprint hyper-v-volume-w2012

Change-Id: Iba432176c822c45820e2b46e1d28bfa941c8ddab
update mailmap to add my perferred mail.

Change-Id: I5b0a92683b73e0bd4219f8faa9849ea71b8a3c8a
Make update_service_capabilities() accept a list of capabilities

This makes it possible to send multiple capabilites by single RPC.

Change-Id: I7c1b75eada17181c4fe08c55992b34d66276f498
Add notifications when libvirtd goes down

During driver status update from periodic tasks, if we find that
the libvirtd is down then we should send send notifications and
log an error.

Fixes LP #1011087

Change-Id: I447f24e4ac719d2d550810509f72be6f270ce326
Allow newer boto library versions

Change the boto dependency specification in pip-requires to just 'boto'
without version restriction, as it was before the build issue.

Change-Id: If6c317ffce867f9e544e47c5b0e4b1f2fe9f082f
Implements volume usage metering.

Add volume usage cache tables to record no. of reads, bytes read,
no. of write, bytes written to a volume.
A periodic task runs in compute manager to query each volume mounted
on a compute host and record its usage, this task also send a
volume.usage notification contains volume usage statistics

Part of blueprint volume-usage-metering

Change-Id: I215ce0c94e9ea5a07e18940802c20d1379b8f6d1
Boot from volume without image supplied

This patch allows for booting instances without supplying an image if
there is block device mapping supplied. It makes changes to nova API
and
compute services to handle requests that do not have any image
supplied.

Also it makes rescue and rebuild work with instances started from
volume.

Finally the patch introduces tests to make sure the system acts as
expected, and in the process fixes and refactors some old tests to make
them test for cases this new functionality can introduce.

This patch is intended to be a proof of concept and a first step
towards
a more cleaner interface for booting from volumes, outlined in
https://etherpad.openstack.org/grizzly-boot-from-volumes.

This patch also introduces a slight modification of the nova API so I
am flagging it with DocImpact. The change is that if the os-volumes
extension is used ImageRef does not need to be supplied to the create
server API call provided there is block_device_mapping provided.

Also note that this is the first step towards introducing a 'volume'
parameter
for starting instances which will replace the somewhat unintuitive
block_device_mapping (they will still be used but not for the boot
device).

This patch is coupled with I5ba9b0f35a5084aa91eca260f46cac83b8b6591e
that provides changes to the nova client.

Implements: blueprint improve-boot-from-volume
Fixes bug #1008622

Change-Id: I530760cfaa5eb0cae590c7383e0840c6b3f896b9
Adds API Sample tests for Quotas extension.

Partially implements blueprint nova-api-samples
Fixes bug 1070172

Change-Id: I796897e69ec75da6da047574c0b8131f94bfa17e
Merge "Add notifications when libvirtd goes down"
Merge "powervm: add DiskAdapter for local volumes"
Add pyflakes option to tox

* Uses pyflakes wrapper to ignore gettext errors
* Based on: https://bugs.launchpad.net/pyflakes/+bug/844592

Change-Id: I4fd947176f5258f89f517acf5dda2ded4a2da15e
Volume backed live migration w/o shared storage

This patch allows live migration of volume backed instances without
the need for shared storage (For Libvirt only).

Fixes LP Bug #1074054
DocImpact

Change-Id: If7abd63a610a44720cec2d4021cc4ee737ea301d
network managers: Pass elevated cxtx to update_dhcp

Updates the Nova FlatDHCPManager and VlanManager network
managers so they pass an elevated context to update_dhcp.
In some cases (linux_net) the network driver may make use of
DB calls which require an admin context.

This fixes an issue where resize operations (confirm, revert)
would fail if the user was not an admin.

This is more fallout from 14e2ed3 where we stopped passing admin
contexts for resize across RPC.

Fixes LP Bug #1085071
Change-Id: I718c40f0df0b2955626033cf3b6f78323527e9cf
Merge "Adds API Sample tests for Quotas extension."