Enable no_parent and file_only security

The websockify package was recently upgraded to version 0.5.1, which added two
parameters that provide additional security:
* no_parent - returns 403 response if contents out of the web root are
requested. Required to disable directory traversal.
* file_only - returns 404 response if non-file contents are requested. Required
to disable directory listing.
This version is available in PyPi.

Nova should upgrade it's required version for websockify, and set these
parameters while creating and starting the NovaWebSocketProxy to ensure
better security.

DocImpact
Fixes bug #1195700

Change-Id: I9c4b28eb1b384048f10d365ed204b916afd371bb
Removed code duplication in test_get_server_*_by_id

blueprint api-compute-servers-tests

Change-Id: I3aa8580941984029baf3d39e30b5c0e9b491bc24
Allow Cinder to specify file format for NFS/GlusterFS

These drivers now have the option of passing a QCOW2 file rather
than a raw file as the volume to attach to the VM.

Required by blueprint qemu-assisted-snapshots

Change-Id: I23929538c7dad65035db5c38ff6e52348925fa27
libvirt: allow passing 'os_type' property to glance

Currently, libvirt driver doesn't pass the 'os_type' property to
glance. Thus all snapshots created don't have this property. Other
feature depend on 'os_type'(such as mkfs for ephemeral devices)
doesn't work.

This patch fixes this by passing the 'os_type' attribute to glance
as image properties. None value in metadata properties would not be
passed to glance, thus this patch has no side effect on situation
when instance has no 'os_type' attribute set.

Bug 1214372

Change-Id: I2bab617f6c1e8866650ca7dc5178b640738c9ae6
[v3] Show detail of an quota in API os-quota-sets

nova-manage shows `in_use`, `reserved` including `limit` of a quota.
So create a new API named `detail` to do the same with nova-manage.

The new URL is like :/v3/os-quota-sets/1234/detail.

Fix bug: #1183870

DocImpact

Change-Id: Ic53a68acf0f3f3184c7a900360343bb576560f46
Adds missing V3 API scheduler hints testcase

Adds a testcase for the V3 API scheduler hints extension
which was missed in the initial port

Partially implements blueprint v3-api-unittests

Change-Id: I21fe5f25c806310395bbcd41e6ca84d2c0c02569
xenapi: Added iPXE ISO boot support

This patch adds support for a new kind of Glance image, a specially crafted ISO
which supports iPXE booting, giving customers a means to roll their own image.

Two virt-layer modifications were needed. The first was adding configurations
for the iPXE ISO feature (network to use, boot menu, mkisofs_cmd). The second
was the ability to inject networking info into the ISO after it was
downloaded.

To use this feature, operators should enable the `ipxe_boot` image-property.

DocImpact

Implements blueprint xenapi-ipxe-iso-boot-support

Change-Id: I33acf9dfdff0a5ed9797723a142bc451348e8549
Remove deprecated legacy network info model in Hypervisor drivers

This patch removes legacy network info wihch is unused in any Hypervisor
drivers, clean up related tests and Also removes legacy method from
nova.network.model.

Partly implement blueprint nova-network-legacy

Change-Id: Ia3f11b1a162878817445619575b35187110dafb5
Add KeyPair object

This adds a KeyPair object implementation for use by compute_api.

Related to blueprint compute-api-objects

Change-Id: I791dd8e1a624a8c2ccaa409a9feae86fc67d2bad
Make compute_api use KeyPair objects

This makes compute_api's KeypairAPI use KeyPair objects to do
its work. Most of the change here is to tests to account for the
change.

Related to blueprint compute-api-objects

Change-Id: If516a88eac107670d9ae37fcfaf56f2add9dd0c5
Add Service object implementation

This adds a Service object implementation.

Related to blueprint compute-api-objects

Change-Id: I790204448e7f260f6d287efef319104a2f8b36d1
Add ComputeNode object implementation

This adds a ComputeNode object with proper linkage to the Service
object.

Related to blueprint compute-api-objects

Change-Id: I83412a0b07d3a5a0cef1117641e56d02dc41ba6a
Add resource tracking to build_and_run_instance

Resource tracker checking is added so that we have reasonable assurance
of being able to build the instance before it starts.  This allows for a
quick reschedule if the compute node does not have available resources.

This is one part of a series of patches to build up the
build_and_run_instance method.

Part of bp query-scheduler

Change-Id: Ife6e5aef4fda46f74e2db7be1a09b210be397152
Fix various cells issues due to object changes

1) Child cell scheduling fails.  The change to use Instance.create() in
child cells broke things.  The instance properties was being overwritten
due to a typo.  I also found a number of other things that need to be
popped out before passing to create_db_entry_for_new_instance().

2) Notification to the API cell was failing.  We cannot pass an object to
instance_update_at_top().

3) When cells is enabled, deleting an instance hits the '_local_delete'
part of code in the API because we don't see the compute node.  There's
a trap in cells_api.py to forward the delete on to child cells, but we
need to make sure not to try to deallocate network in the API cell.

Fixes bug 1216113

Change-Id: Ie989c22cb3b6a1359a0540e60e06fa4153e93476
Fix migrations index

`deleted` column in `migrations`.`migrations_by_host_nodes_and_status_idx`
index had been dropped after some migration.

This patch fixes this.

bp: db-sync-models-with-migrations

Change-Id: Ifd2e567b5beeeb027a72d5d35d8cb3405a5a1942
Add expected_errors for migrations v3

Partially implements bp v3-api-extension-versioning

Change-Id: I4eabd4ae4aa23b26a48f14f2ea9a57619ac38b41
Libvirt: fix KeyError in set_vif_bandwidth_config

The set_vif_bandwidth_config function must be able to get a parameter that has
no 'extra_specs' field and not fail.

This fixes bug 1214363.

Change-Id: I576fb087c7bcda9f6662c4df5b480668b1f23454
Merge "Add expected_errors for migrations v3"
Merge "Add resource tracking to build_and_run_instance"
Merge "xenapi: Added iPXE ISO boot support"