XenAPI: Allow 10GB overhead on VHD file check size

_check_vdi_size in vm_utils.py does not account for VHD overhead. Builds
will fail if on disk VHD file usage is even slightly greater than the
root_gb partition allocation size to the VM.

With VHDs, VM root disks usually come from two-file chains (one, if a
snapshot has never been taken or it was not a fast copy build). There is
a mild file format overhead involved and additionally, once a block has
been written to, the space is never freed or compressed from the VHD
file. The two VHD files in the chain may have overlapping blocks adding
to the total amount of overhead over the actual utilization. This can
result in a VM's partition internally not even being full, with the
external VHD File chain being even just a few MB larger than the allowed
size. Building from an image of such a VM will fail due to this check
expecting external/on-disk usage to never be greater than the internal
partion size granted.

This patch adds a 10GB tolerance which should fix almost all cases of
build failures due to this bug.

Fixes: bug #1216042

Change-Id: I69f47351fe83e54775e0147a27450c21196f9bfd
Merge "Make compute_api use Aggregate objects"
Merge "Fix a gross duplication of context code in objects tests"
Add columns_to_join to instance_update_and_get_original

Add a parameter to instance_update_and_get_original() to specify the
expecected columns to be returned.

Change-Id: Ib324fdf02f3d462970cdf7c7065ddc3d87f72fba
Signed-off-by: Yongli He
PCI passthrough Libvirt vm config

PCI passthrough device's xml config formatter. adding pci
passthrough device to VM, and detach it from a VM. adapter the
hypervisor PCI passthrough devices management interface given a
unify interface to other PCI passthrough components.

bp:pci-passthrough-libvirt

Co-authored-by: Boris Pavlovic <boris@pavlovic.me>
Change-Id: If55648e5cc2ed5b7ea44aad08205689d99338856
Signed-off-by: Yongli He <yongli.he@intel.com>
Merge "Nova support for vmware cinder driver"
Generalize the _make_list() function for objects

Each object with a list duplicated the _make_list() method in its
own module. This removes that duplication and adds a generalized
helper in objects/base.py. The instance object still uses its own
because it has to do a bunch of other stuff in the loop for
efficiency.

Change-Id: Ic910f39087ebc167b2b930979f7951116caf8598
Add missing Aggregate object tests

This file was not properly git-add'd to commit:

  f2252de974e1bf3b40f8dce0e768597e31ac2a05

Related to blueprint compute-api-objects

Change-Id: Ibd25f4479d49f456bcb49e3eb003edf3d4b2b334
Merge "Remove versioning from IOVisor APIs PATH"
Merge "Port Cheetah templates to Jinja2"
Port "Make flavors is_public option .." to v3 tree

The following commit(I5b37fa0bb19683fe1642fd81222547d4a317054e) have
not been merged to v3 tree now, because the commit was merged to the
existing api after porting flavors.py to v3 tree.

    commit b65d506a5f9d9b2b20777a9aceb44a8ffed6a5de
    Author: Russell Bryant <rbryant@redhat.com>
    Date:   Thu Jun 27 21:00:05 2013 +0000

        Make flavors is_public option actually work

This patch ports the commit to v3 tree.

Partially implements blueprint nova-v3-api

Change-Id: I3c7f11c53594118456d0cd62eb1ddf74634b77c3
Merge "Change resize_instance paths to use objects"
Merge "Fix AggregateDBApiTestCase on PostreSQL and MySQL"
Refresh network info cache for secgroups

Before updating security group rules, we need to make sure that
the info cache is up-to-date. Without this source groups are not
updated properly. This was a regression introduced in commit
85aac04704350566d6b06aa7a3b99649946c672c which fixed a potential
DOS using source groups.

Fixes bug 1216720

Change-Id: I6b5115df53f2e159ea506ef966cd49cedd35f83d
Merge "Adds Hyper-V dynamic memory support"
Merge "Adds Hyper-V VHDX support"
Merge "Adds ephemeral storage support for Hyper-V"
Merge "vm_state and task_state not updated during instance delete"
Merge "update neutronclient to 2.3.0 minimum"
Merge "Use utils.execute instead of subprocess"