Fix inconsistency between Nova-Net and Neutron

The neutron client raises NeutronClientException (status_code 404)
that is not unknown for nova, and is translated in 500 computeFault.
Catching this exception in nova/nova/network/neutronv2/api.py and
raising more generic exception as exception.NotFound solves the problem.

Added also an unitary test to test neutronv2 api

bug #1160309
bug #1200175

(cherry picked from commit 4a2915b4e389bfba0ff25583369fd75b24e19118)

Conflicts:
	nova/network/quantumv2/api.py

Change-Id: Ib2f1a0d49a12114b28f0cd5ce0bb7119f864d1a6
Fixes KeyError bug with network api associate

Fixes bug in network api associate function where it would always
raise a KeyError when associating or disassociating a project.

Fixes bug 1171284

Conflicts:

	nova/tests/network/test_api.py

Change-Id: Iae0e57e0a961b8a3377b38dad72094188755a3e8
(cherry picked from commit 6cfc02531f92c2e98eb947bc7a46d6bed0158d82)
VMwareVCDriver Fix sparse disk copy error on spawn

The same approach of calling VirtualDiskManager.CopyVirtualDisk
without destination disk spec in the cluster driver for fixing 1184807
turns out to work for copying a sparse disk as well because vCenter's behavior
for specless copy is to do the reasonable thing of converting a sparse disk to
thin-provisioned, and a flat disk to preallocated.

Tests done:

Verified using tempest that sparse/thin/preallocated image types deploys
properly through the cluster driver. Tempest output to be included in
the review comments.

Fixes bug 1171226

(cherry picked from commit 42e929e990c7d5c4484c05bc92e57f64ca85629e)

Conflicts:

	nova/tests/virt/vmwareapi/test_vmwareapi.py
	nova/virt/vmwareapi/vmops.py

Change-Id: I51627ddb4b9df8cf80f0b9c6efe68ec9eb68cd99
VMware: Fix bug for root disk size

The code would not configure the root disk size to that specified
in the flavor. This was always the size of the glance image.

Fixes bug: 1226052

(cherry picked from commit f0a9b31d90532dd278c12572767c3874648dcaec)

Conflicts:

	nova/tests/virt/vmwareapi/test_vmwareapi.py
	nova/virt/vmwareapi/vmops.py

Change-Id: Ifc41e6f5bf95c17bac6ab26e9c08aa28d0325bcd
VMWare: Disabling linked clone doesn't cache images

This fixes an issue when use_linked_clone is false and the image is
already in the cache.  The problem was that the image would be
copied from glance into the instance directory even if it was already
in the cache.  This change checks if the file is in the cache, only
copies from glance if it is not, and copies the image from the cache
into the instance directory if use_linked_clone is false.

Fixes: bug #1207064
(cherry picked from commit c53b0f66802ed82fea8c637f0138c0a01e159efa)

Conflicts:

	nova/tests/virt/vmwareapi/test_vmwareapi.py
	nova/virt/vmwareapi/vmops.py

Change-Id: I635e00448fc014b3841ed43b590d451305e8ff2f
Bump stable/grizzly next version to 2013.1.5

Change-Id: Idb7cf867801b3ea79b42c0376d5cb712a5f1e2cf
Merge "VMwareVCDriver Fix sparse disk copy error on spawn" into stable/grizzly
Merge "VMware: Fix bug for root disk size" into stable/grizzly
Merge "VMWare: Disabling linked clone doesn't cache images" into stable/grizzly
Merge "Fixes KeyError bug with network api associate" into stable/grizzly
xenapi: enforce filters after live-migration

Currently and network filters, including security groups, are
lost after a server has been live-migrated.

This partially fixes the issue by ensuring that security groups are
re-applied to the VM once it reached the destination, and been started.

This leaves a small amount of time during the live-migrate where the VM
is not protected. There is a further bug raised to close the rest of
this whole, but this helps keep the VM protected for the majority of the
time.

Fixes bug 1202266

(Cherry picked from commit: 5cced7a6dd32d231c606e25dbf762d199bf9cca7)

Change-Id: I66bc7af1c6da74e18dce47180af0cb6020ba2c1a
xenapi: apply firewall rules in finish_migrate

When security groups were added, the rules were not re-applied to
servers that have been migrated to a new hypervisor.

This change ensures the firewall rules are applied as part of creating
the new VM in finish_migrate. This code follows a very similar pattern
to the code in spawn, and that is where the cut and paste code comes
from. This code duplication was removed in Havana.

Fixes bug 1073306

Change-Id: I6295a782df328a759e358fb82b76dd3f7bd4b39e
Fail quickly if file injection for boot volume

Previously if the user attempted file injection on a booted volume it
would fail and retry several times, which slowed down the instance
spawning.  Instead of attempting file injection, fail quickly, and
log a warning

Backport to stable/grizzy

Fix bug 1188543

Conflicts:
	nova/virt/libvirt/driver.py

Change-Id: I264540de736c2bcb92567826fe5ba672e1244ba2
(cherry picked from commit f59c2d64ac8f0523c587e23b2d1c59fdfe7ea131)
Merge "xenapi: apply firewall rules in finish_migrate" into stable/grizzly
ensure we don't boot oversized images

Since we can't generally shrink incoming images, add extra checks
to ensure oversized images are not allowed through.
All cases when populating the libvirt image cache are now handled,
including the initial download from glance, where we avoid
converting to raw, as that could generate non sparse images
much larger than the downloaded image.

* nova/virt/libvirt/utils.py (fetch_image): Allow passing through
of the max_size parameter.
* nova/virt/images.py (fetch_to_raw): Accept the max_size parameter,
and use it to discard images with larger (virtual) sizes.
* nova/virt/libvirt/imagebackend.py (verify_base_size): A new
refactored function to identify and raise exception to oversized images.
(Raw.create_image): Pass the max_size to the fetch function.
Also enforce virtual image size checking for already fetched images,
as this class (despite the name) can be handling qcow files.
(Qcow2.create_image): Pass the max_size to the fetch function,
or verify the virtual size for the instance as done previously.
(Lvm.create_image): Pass the max_size to the fetch function.
Also check the size before transferring to the volume to improve
efficiency by not even attempting the transfer of oversized images.
(Rbd.create_image): Likewise.
* nova/tests/fake_libvirt_utils.py: Support max_size arg.
* nova/tests/test_libvirt.py (test_fetch_raw_image):
Add a case to check oversized images are discarded.
* nova/tests/test_imagebackend.py (test_create_image_too_small):
Adjust to avoid the fetch size check.

Fixes bug: 1177830
Fixes bug: 1206081

Conflicts:

	nova/tests/test_imagebackend.py
	nova/virt/libvirt/imagebackend.py

Change-Id: Idc35fce580be4f74e23883d1b4bea6475c3f6e30
Ensure anti affinity scheduling works

The query for the group in the system_metadata would not correctly
filter the instances with the groups.

Fixes bug: 1218878

Conflicts:
        nova/db/sqlalchemy/api.py
        nova/tests/db/test_db_api.py

Change-Id: I623c73635c36ffa038ae01476a25ba0c0863e536
(cherry picked from commit 4233e16ba2f5bb85e93494b6eeb9ffff31dbdf30)
Merge "Fix inconsistency between Nova-Net and Neutron" into stable/grizzly
Merge "Ensure anti affinity scheduling works" into stable/grizzly
Fix problem with setting SSL protocol in QPid

looks like we were setting the wrong param

This is patch Id138926f in Grizzly oslo-incubator and it was already
included as part of I9fc826a4 for Havana.

Closes-Bug: 1158807
Change-Id: Ie751e5670f612d52eea11db72bab4620de243e89
Add missing argument max_size in libvirt driver

max_size argument was added in commit 3cdfe894ab58f7b91bf7fb690fc5bc724e44066f,
but missing  in _create_ephemeral and _create_swap method, which cause
exception raised when caching ephemeral and swap disk files of the instance.

Add test for _create_ephemeral used with max_size parameter
and test _create_swap method

Closes-Bug: 1251152
Closes-Bug: 1250032
(cherry picked from commit 384f55bcb32251698cc2ce839a0286ef99e74984)

Conflicts:
	nova/tests/test_libvirt.py
	nova/virt/libvirt/driver.py

Change-Id: I46032ad32f317c923692b8b3d40cedd0dce06cad