nova/nova
Matt Riedemann d75b995d03 Handle @safe_connect returns None side effect in _ensure_resource_provider
Change I0c4ca6a81f213277fe7219cb905a805712f81e36 added more error
handling to the _ensure_resource_provider flow but didn't account
for @safe_connect returning None when calling _create_resource_provider
in the case that nova-compute is started before placement is running.
If that happens, we fail with a TypeError during the nova-compute
startup because we put None in the resource provider cache and then
later blindly try to use it because the compute node resource provider
uuid is in the cache, but mapped to None.

This adds the None check back in _ensure_resource_provider and if
None is returned from _create_resource_provider we raise the same
exception that _create_resource_provider would raise if it couldn't
create the provider.

Conflicts:

nova/scheduler/client/report.py: entire method conflicted as
provider_tree changes have not been backported.

nova/tests/unit/scheduler/client/test_report.py - didn't conflict but
referenced non-existant methods. Re-implemented based on
test_ensure_resource_provider_create_fail changing mocked
create_resource_provider to return None instead of raising an exception.

Change-Id: If9e1581db9c1ae14340b787d03c815d243d5a50c
Closes-Bug: #1767139
(cherry picked from commit 80a0019893)
(cherry picked from commit f95a10b26e)
2018-05-04 00:44:55 +01:00
..
CA
api Return 400 when compute host is not found 2018-03-08 06:24:09 +00:00
cells Merge "Handle uuids in os-hypervisors API" 2017-07-20 01:03:27 +00:00
cmd Add --by-service to discover_hosts 2018-03-21 10:43:19 -07:00
common
compute libvirt: Block swap volume attempts with encrypted volumes prior to Queens 2018-04-17 14:29:43 +00:00
conductor Store block device mappings in cell0 2018-02-21 18:11:41 -05:00
conf libvirt: Allow to specify granular CPU feature flags 2018-04-10 20:18:50 +00:00
console Merge "Remove translation of log messages" 2017-08-10 11:39:03 +00:00
consoleauth Merge "Remove translation of log messages" 2017-08-10 11:39:03 +00:00
db Make request_spec.spec MediumText 2017-12-18 10:37:25 -05:00
hacking Remove unused variable 2017-06-12 18:19:57 +07:00
image Merge "Handle glance exception during rotating instance backup" into stable/pike 2018-03-08 15:43:26 +00:00
ipv6
keymgr Remove key_manager.api_class hack 2017-07-17 17:49:08 -04:00
locale Imported Translations from Zanata 2017-08-10 11:34:33 +00:00
network Fix wrapping of neutron forbidden error 2018-04-10 17:11:23 +00:00
notifications Fix sending legacy instance.update notification 2017-10-10 13:20:34 -04:00
objects Don't persist RequestSpec.retry 2018-04-12 11:49:03 -04:00
pci Modify PciPassthroughFilter to accept lists 2017-04-11 19:49:07 +00:00
policies Merge "Add policy granularity to the Flavors API" 2017-08-10 11:47:12 +00:00
scheduler Handle @safe_connect returns None side effect in _ensure_resource_provider 2018-05-04 00:44:55 +01:00
servicegroup Fix the display of updated_at time when using memcache driver. 2017-05-26 16:48:07 +08:00
tests Handle @safe_connect returns None side effect in _ensure_resource_provider 2018-05-04 00:44:55 +01:00
virt libvirt: Make `cpu_model_extra_flags` case-insensitive for real 2018-05-03 10:59:25 +00:00
vnc
volume Translate the return value of attachment_create and _update 2017-07-25 21:16:03 -04:00
__init__.py Make eventlet hub use a monotonic clock 2018-01-26 18:09:18 +08:00
availability_zones.py Avoid lazy-load error when getting instance AZ 2017-05-25 15:46:22 -04:00
baserpc.py
block_device.py db: Add attachment_id to block_device_mapping 2017-03-16 15:26:33 -04:00
cache_utils.py remove log translation tags from nova.cells 2017-04-10 14:48:07 +00:00
config.py
context.py Regenerate context during targeting 2017-10-17 00:55:48 +00:00
crypto.py
debugger.py
exception.py Merge "Handle glance exception during rotating instance backup" into stable/pike 2018-03-08 15:43:26 +00:00
exception_wrapper.py Remove **kwargs passing in payload __init__ 2017-06-08 08:50:40 +00:00
filters.py
hooks.py
i18n.py
loadables.py
manager.py
policy.py Add policy granularity to the Flavors API 2017-07-19 15:56:47 -04:00
profiler.py
quota.py Make Quotas object favor the API database 2017-07-20 21:02:18 +00:00
rpc.py Merge "Account for compute.metrics.update in legacy notification whitelist" into stable/pike 2017-10-24 11:46:57 +00:00
safe_utils.py Allow wrapping of closures 2017-07-20 10:07:52 +01:00
service.py Make eventlet hub use a monotonic clock 2018-01-26 18:09:18 +08:00
service_auth.py Fix NoneType error when [service_user] is misconfigured 2017-12-07 12:34:37 -05:00
test.py Make TestRPC inherit from the base nova TestCase 2017-10-13 13:20:44 +00:00
utils.py Move the last_bytes util method to libvirt 2017-07-26 08:36:32 +10:00
version.py
weights.py Correct some spelling errors 2017-02-25 02:45:30 +00:00
wsgi.py