vmwareapi: simple refactor of config drive tests

A fairly trivial refactor of multiple identical spawn
invocation calls.

Change-Id: I110df1786b4081abe72428f888c3d27430017ff1
Support IPv6 when booting instances

When nova uses neutron, IPv6 addresses may be allocated.  This ensures
those addresses are supported.

Change-Id: Ic904f3a7811b07264128bc62067cdf0bca9efac9
Closes-bug: #1267685
Accurate comment in compute layer

Currently instance usually refer to an object instead of a dict
but comments didn't update in compute, this patch update it.

Change-Id: I7902f09b21c951c1e7a9d32a75b3c75208fb6d86
Add doc update for 4 filters which is missing in filter_scheduler.rst

DiskFilter
NumInstancesFilter
IoOpsFilter
PciPassthroughFilter
are missing in doc/source/devref/filter_scheduler.rst, add them.

DocImpact

Change-Id: I50868598c9769783e1677c9ec50abf031896af82
Closes-Bug: #1276575
Don't allow reboot when instance in rebooting_hard

It shouldn't allow reboot a instance while the instance in
rebooting_hard task state.
If the instance is in rebooting_hard, solf reboot action is
meaningless.

Change-Id: I43147104a7473eaaf1b86f84386bb28b7e3574c3
Closes-bug: #1288926
Instance groups: only display valid instances for policy members

When displaying the members we will validate that the members
are actually valid. There may be cases when the members of an instance
group are not all valid, for example the instance has been deleted.

This is part of blueprint instance-group-api-extension.

Change-Id: I77062ce14d337662254ca3be956620dda3f44cd7
Do not add HPET timer config to non x86 targets

HPET is a harware timer for x86 arch. Also, qemu option '-no-hpet'
is not supported on non x86 targets. This change does not add hpet
in the guest's timer config when the arch is not x86_64 or i686.

Closes-Bug: #1290362

Change-Id: I1b81d1c5ed4f900ed87d1ecbbb97d4fdb22405fa
network_info cache should be cleared before being rescheduled

If an instance fails to boot due to a non-networking error the instance
then gets rescheduled and launched on another compute node. In these cases
deallocate_for_instance() is called which deletes the network ports
allocated though the info_cache for the instance is never cleared. This patch
adds a call to update_instance_cache_with_nw_info() which causes the cache
to get cleared out. Note: the cache is only cleared if the instance hasn't
been marked for deletion. This is due to how instance_info_cache_update()
is implemented.

Change-Id: If967884c9a6276f5949a7a04b597cedcce12ba09
Closes-bug: #1285158
VMware: ensure that the task completed for resize operation

In the event of a VM resize, the code did not wait for the task
to complete. This may lead to a race condition.

Change-Id: I0ce28e9d83da2f0e5741ae99bfba4b0f1d20c699
Closes-bug: #1270573
Use HTTPRequestV3 instead of HTTPRequest in v3 API tests

This patch uses HTTPRequestV3 instead of HTTPRequest in
v3 API tests and removes the "/v3", it has been specified
already in HTTPRequestV3.

Change-Id: I0b973458b2afac4b3e6eb16e11a56bd301f1b6df
xenapi: boot from volume without image_ref

Currently xenapi does not deal well with image_meta that does not
contain "disk_format". This happens when we get image_meta from an
associated volume, rather than from glance.

Change-Id: Id673158442fde27e8d468ca412c9bd557a886e6b
Closes-Bug: #1294069
Update quantum to neutron in comment

Change-Id: I2606740cde56d947577ec64d21f62d8287a83bc8
Check if nfs/glusterfs export is already mounted

_mount_nfs() do not check if the nfs_share is already mounted on
the same mnt path and pollutes logs with warnings about
'mount.nfs: xxx busy or already mounted'.

The patch will add the method is_mounted to libvirt/utils.py and
use the findmnt tool to find if the same network share on the same target
mount point is already mounted.
If 'findmnt' is not available for any reason (part of utils-linux),
the check will always return False.

Closes-Bug: #1280306
Change-Id: I1d7384ba2f1f1bb82bfbae96cca2772266d2583e
Fix the rpc module import in the service module

After porting Nova to oslo.messaging, we forgot to change the import to
point to the new rpc module, and thus the rpc cleanup() method was never
called on service shutdown.

Change-Id: Ic06a19d9b9b98e1575d0aa72afa0d5ae71f6513a
Wait till message handling is done on service stop

In order to be able to perform graceful shutdown of services, we need to
wait for all the current message handling thread to finish before
exiting from the service process.

Oslo.messaging MessageHandlingServer class provides this facility
through it's wait() method, so we need to call it in nova Service stop()
method which gets called when gracefull shutdown is requested by sending
the process SIGINT or SIGTERM.

Closes-bug:#1295625
Change-Id: I8556b598f6263a2d4d77e8315950ef1b298aa0a1
Don't allow empty or 0 volume size for images

When specifying the block device that has source_type 'image' and
destination_type 'volume', we should confirm that the volume size is
specified, as Cinder won't be able to guess it, and will reject the
request, thus erroring out the instance.

Closes-bug:#1224469
Change-Id: I87ece3be1a5e9d6b229717f8025ce542707007c4
VMware: fix exception when no objects are returned

get_object_properties may return data that does not contain any
objects. The patch validates that the returned data is accessible.

Change-Id: I9432582bf5bc841aea705a84f939e9482465ff70
Closes-bug: #1294102
Merge "Support IPv6 when booting instances"
Merge "Don't allow empty or 0 volume size for images"
Merge "VMware: fix exception when no objects are returned"