nova/nova
Matt Riedemann a3b3e8d831 libvirt: wait for interface detach from the guest
The test_reassign_port_between_servers test in Tempest creates
a port in neutron and two servers. It attaches the port to the
first server and then quickly detaches it and waits for the
port.device_id to be unbound from the server. Then it repeats
that for the second server.

The interface detach from the guest is asynchronous and happens
before nova unbinds the port, so there is a race where the port's
device_id is unset but the interface is still on the first guest
when we try to attach to the second guest, which fails.

This is a latent bug, but apparently has been tickled by the
move to our neutron CI jobs to use ubuntu xenial nodes.

The fix is to add a detach and retry loop on the interface detach
on the guest so that we can wait until the interface is gone
from the guest before nova unbinds the port in neutron, which is
what the Tempest test is waiting for. Then the device should be
available for attaching to the second guest.

This is similar to what we do with detaching volumes.

Closes-Bug: #1607714

Change-Id: Ic04aad8923ea2edf1d16e32c208cd41fdf898834
2017-02-09 19:33:33 -05:00
..
CA
api Allow None for block_device_mapping_v2.boot_index 2017-02-08 17:08:07 -05:00
cells Merge "[2/3]Replace six.iteritems() with .items()" 2017-01-21 06:55:52 +00:00
cert Integrate OSProfiler and Nova 2017-01-18 15:00:14 +07:00
cloudpipe Rename security_group parameter in compute.API:create 2016-11-10 11:25:43 -05:00
cmd Removed unnecessary parantheses and fixed formation 2017-02-09 14:03:53 +01:00
common cors: update default configuration in config 2016-11-05 20:17:42 -04:00
compute Merge "Release PCI devices on drop_move_claim()" 2017-02-09 13:23:38 +00:00
conductor Merge "Ensure build request exists before creating instance" 2017-02-02 16:44:26 +00:00
conf Merge "Default live_migration_progress_timeout to off" 2017-02-09 17:36:22 +00:00
console Merge "tests: Replace use of CONF with monkey patching" 2017-01-24 12:03:07 +00:00
consoleauth Integrate OSProfiler and Nova 2017-01-18 15:00:14 +07:00
db Merge "Fix typo in 216_havana.py" 2017-02-07 04:05:58 +00:00
hacking Removed unnecessary parantheses and fixed formation 2017-02-09 14:03:53 +01:00
image Merge "conf: remove deprecated image url options" 2017-02-09 12:23:19 +00:00
ipv6 Fix test_ipv6 and simplify to_global() 2016-06-28 20:42:32 +02:00
keymgr Deprecate barbican options 2016-07-29 15:36:28 -05:00
locale Imported Translations from Zanata 2016-10-27 08:19:38 +00:00
network Assign mac address to vf netdevice when using macvtap port 2017-01-24 16:37:41 +00:00
notifications Merge "[2/3]Replace six.iteritems() with .items()" 2017-01-21 06:55:52 +00:00
objects Merge "Allow scheduler to run cell host discovery periodically" 2017-02-02 03:33:20 +00:00
pci [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
policies Separate CRUD policy for server_groups 2016-11-21 11:43:13 -05:00
scheduler Merge "Add placement request id to log when GET or POST rps" 2017-02-07 00:10:34 +00:00
servicegroup Don't use 'updated_at' to check service's status 2016-12-08 09:51:03 +00:00
tests libvirt: wait for interface detach from the guest 2017-02-09 19:33:33 -05:00
virt libvirt: wait for interface detach from the guest 2017-02-09 19:33:33 -05:00
vnc
volume Add service_token for nova-cinder interaction 2017-01-11 15:49:16 +00:00
wsgi Clarify the language in the apache wsgi sample 2017-02-02 15:43:25 -08:00
__init__.py
availability_zones.py Port test_metadata to Python 3 2016-11-29 11:28:24 +08:00
baserpc.py
block_device.py Allow None for block_device_mapping_v2.boot_index 2017-02-08 17:08:07 -05:00
cache_utils.py
config.py Integrate OSProfiler and Nova 2017-01-18 15:00:14 +07:00
context.py Fix Nova to allow using cinder v3 endpoint 2017-01-18 09:19:54 -07:00
crypto.py
debugger.py
exception.py Merge "Block starting compute unless placement conf is provided" 2017-01-31 20:43:44 +00:00
exception_wrapper.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
filters.py
hash_ring.py Ironic: allow multiple compute services 2016-08-04 23:51:13 +00:00
hooks.py
i18n.py
loadables.py
manager.py Integrate OSProfiler and Nova 2017-01-18 15:00:14 +07:00
policy.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
profiler.py Integrate OSProfiler and Nova 2017-01-18 15:00:14 +07:00
quota.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
rpc.py Added instance.reboot.error to the legacy notifications 2017-01-27 19:15:41 +00:00
safe_utils.py
service.py Integrate OSProfiler and Nova 2017-01-18 15:00:14 +07:00
service_auth.py Add service_token for nova-cinder interaction 2017-01-11 15:49:16 +00:00
signature_utils.py Trivial-Fix: Fix typos 2016-06-13 06:41:08 +00:00
test.py Make api_samples tests use simple cell environment 2017-01-24 09:59:50 -08:00
utils.py Merge "[2/3]Replace six.iteritems() with .items()" 2017-01-21 06:55:52 +00:00
version.py
weights.py
wsgi.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00