nova/nova
Matt Riedemann 7732f0e6f3 Add useful error log when _determine_version_cap raises DBNotAllowed
Change Icddbe4760eaff30e4e13c1e8d3d5d3f489dac3c4 was intended for the
API service to check all cells for the minimum nova-compute service
version when [upgrade_levels]/compute=auto.

That worked in the gate with devstack because we don't configure
nova-compute with access to the database and run nova-compute with
a separate nova-cpu.conf so even if nova-compute is on the same
host as the nova-api service, they aren't using the same config
file (nova-api runs with nova.conf which has access to the API DB
obviously).

The problem is when nova-compute is configured with
[upgrade_levels]/compute=auto and an [api_database]/connection,
there are flows that can try to hit the API database directly
because of the _determine_version_cap method. For example, the
_sync_power_states periodic task trying to stop an instance,
or even simple inter-compute communication over RPC like during
a resize.

This change simply catches the DBNotAllowed exception, logs a more
useful error message, and re-raises the exception. In addition,
the config help for the [api_database] group and "configuration"
option specifically are updated to mention they should not be set
on the nova-compute service.

Change-Id: Iac2911a7a305a9d14bc6dadb364998f3ecb9ce42
Related-Bug: #1807044
Closes-Bug: #1839360
(cherry picked from commit 7d7d58509d)
(cherry picked from commit bd03723a0c)
2019-08-30 13:41:35 +00:00
..
api Add 'path' query parameter to console access url 2019-08-06 19:20:50 +00:00
cells Add instance action record for snapshot instances 2017-12-11 17:46:38 +08:00
cmd Handle templated cell mappings in nova-status 2019-03-11 21:01:08 -04:00
common
compute Add useful error log when _determine_version_cap raises DBNotAllowed 2019-08-30 13:41:35 +00:00
conductor Cleanup when hitting MaxRetriesExceeded from no host_available 2019-07-30 12:16:15 -04:00
conf Add useful error log when _determine_version_cap raises DBNotAllowed 2019-08-30 13:41:35 +00:00
console Move create of ComputeAPI object in websocketproxy 2019-04-10 15:34:17 -07:00
consoleauth Fix stacktraces with redis caching backend 2018-10-01 07:50:53 +00:00
db Restore soft-deleted compute node with same uuid 2019-08-15 12:09:54 -04:00
hacking Use nova.db.api directly 2018-07-10 14:56:27 +00:00
image Share snapshot image membership with instance owner 2019-04-30 21:13:46 +09:00
ipv6
keymgr
locale Imported Translations from Zanata 2019-01-06 07:42:59 +00:00
network Revert resize: wait for events according to hybrid plug 2019-07-12 19:19:58 -04:00
notifications Remove noisy DEBUG log 2018-08-24 11:19:14 +02:00
objects Merge "Add 'path' query parameter to console access url" into stable/rocky 2019-08-16 15:55:46 +00:00
pci PCI: do not force remove allocated devices 2019-02-05 23:29:36 +00:00
policies Remove support for /os-floating-ip-dns REST API 2018-07-18 22:23:45 -04:00
privsep Make supports_direct_io work on 4096b sector size 2018-11-21 14:14:22 +00:00
scheduler Merge "Disable limit if affinity(anti)/same(different)host is requested" into stable/rocky 2019-07-04 18:03:40 +00:00
servicegroup Fix service list for disabled compute using MC driver 2018-09-14 02:25:10 +00:00
tests Add useful error log when _determine_version_cap raises DBNotAllowed 2019-08-30 13:41:35 +00:00
virt Add functional regression recreate test for bug 1839560 2019-08-15 12:09:04 -04:00
vnc
volume Use migration_status during volume migrating and retyping 2019-05-07 12:43:10 +01:00
__init__.py
availability_zones.py AZ list performance optimization: avoid double service list DB fetch 2019-04-30 13:17:04 +00:00
baserpc.py
block_device.py Add uuid column to BlockDeviceMapping 2017-12-17 14:28:35 +00:00
cache_utils.py
config.py Configure placement DB context manager for nova-manage/status 2018-09-06 10:47:55 -04:00
context.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
crypto.py Convert certificate generation to processutils. 2018-05-02 19:18:41 +10:00
debugger.py
exception.py Merge "Fixes multi-registry config in Quobyte driver" into stable/rocky 2019-06-13 19:38:25 +00:00
exception_wrapper.py Add full traceback to ExceptionPayload in versioned notifications 2018-06-19 16:46:46 +08:00
filters.py
hooks.py
i18n.py correct referenced url in comments 2018-01-18 09:16:37 +08:00
loadables.py
manager.py conf: Remove 'db_driver' config opt 2018-03-16 17:23:16 +00:00
policy.py
profiler.py
quota.py Merge "Avoid joins in _server_group_count_members_by_user" 2018-08-07 23:16:06 +00:00
rc_fields.py Nix unused raise_if_custom_resource_class_pre_v1_1 2018-06-18 19:52:45 +00:00
rpc.py Use oslo.messaging per-call monitoring 2018-06-11 14:44:10 -07:00
safe_utils.py
service.py Move conductor wait_until_ready() delay before manager init 2018-08-31 16:21:52 -04:00
service_auth.py Fix NoneType error when [service_user] is misconfigured 2017-11-28 12:22:30 -06:00
test.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
utils.py Harden placement init under wsgi 2018-11-12 11:30:32 +00:00
version.py
weights.py
wsgi.py Refactor WSGI apps and utils to limit imports 2018-03-06 22:05:12 +00:00