nova/nova
Matt Riedemann 1b02166528 Restore soft-deleted compute node with same uuid
There is a unique index on the compute_nodes.uuid column which
means we can't have more than one compute_nodes record in the
same DB with the same UUID even if one is soft deleted because
the deleted column is not part of that unique index constraint.

This is a problem with ironic nodes where the node is 1:1 with
the compute node record, and when a node is undergoing maintenance
the driver doesn't return it from get_available_nodes() so the
ComputeManager.update_available_resource periodic task (soft)
deletes the compute node record, but when the node is no longer
under maintenance in ironic and the driver reports it, the
ResourceTracker._init_compute_node code will fail to create the
ComputeNode record again because of the duplicate uuid.

This change handles the DBDuplicateEntry error in compute_node_create
by finding the soft-deleted compute node with the same uuid and
simply updating it to no longer be (soft) deleted.

Closes-Bug: #1839560

Change-Id: Iafba419fe86446ffe636721f523fb619f8f787b3
(cherry picked from commit 8b007266f4)
2019-08-15 12:03:31 -04:00
..
api Merge "Fix GET /servers/detail host_status performance regression" into stable/stein 2019-08-01 13:06:21 +00:00
cells Per aggregate scheduling weight 2019-01-21 11:48:44 +08:00
cmd Eventlet monkey patching should be as early as possible 2019-03-25 09:22:01 +01:00
common
compute rt: only map compute node if we created it 2019-08-13 16:30:14 -04:00
conductor Cleanup when hitting MaxRetriesExceeded from no host_available 2019-07-30 10:10:17 -04:00
conf Fix help for ironic.peer_list config 2019-05-01 12:50:19 +00:00
console Move create of ComputeAPI object in websocketproxy 2019-04-02 15:43:18 +00:00
consoleauth Fix stacktraces with redis caching backend 2018-09-27 13:15:11 -04:00
db Restore soft-deleted compute node with same uuid 2019-08-15 12:03:31 -04:00
hacking Add a hacking rule for deprecated assertion methods 2018-10-25 11:49:10 +09:00
image Share snapshot image membership with instance owner 2019-02-08 18:06:27 -05:00
ipv6
keymgr
locale Imported Translations from Zanata 2018-09-23 06:53:32 +00:00
network Merge "Fix no propagation of nova context request_id" into stable/stein 2019-08-01 13:00:08 +00:00
notifications Remove CellMappingPayload database_connection and transport_url fields 2019-04-04 21:25:52 +00:00
objects Don't generate service UUID for deleted services 2019-08-07 21:04:07 +00:00
pci Add get_instance_pci_request_from_vif 2019-03-07 11:37:53 +02:00
policies Merge "Remove deprecated 'flavors' policy" 2019-02-23 06:13:00 +00:00
privsep Merge "Move slight bonkers IP management to privsep." 2019-03-20 13:21:29 +00:00
scheduler Merge "Remove redundant group host setup" into stable/stein 2019-07-24 17:03:49 +00:00
servicegroup Fix deprecation warning for threadgroup.add_timer 2019-02-07 09:37:00 -05:00
tests Restore soft-deleted compute node with same uuid 2019-08-15 12:03:31 -04:00
virt Add functional regression recreate test for bug 1839560 2019-08-15 11:57:42 -04:00
vnc Deprecate the nova-xvpvncproxy service 2018-10-15 10:03:13 +01:00
volume Use migration_status during volume migrating and retyping 2019-05-07 11:39:28 +00:00
__init__.py Eventlet monkey patching should be as early as possible 2019-03-25 09:22:01 +01:00
availability_zones.py AZ list performance optimization: avoid double service list DB fetch 2019-04-29 19:05:05 +00:00
baserpc.py
block_device.py Add method to generate device names universally 2019-01-15 18:55:11 +00:00
cache_utils.py
config.py Configure placement DB context manager for nova-manage/status 2018-09-05 10:29:48 -04:00
context.py Fix target used in nova.policy.check_is_admin 2019-05-21 10:55:14 +01:00
crypto.py
debugger.py
exception.py Handle Invalid exceptions as expected in attach_interface 2019-07-23 22:49:49 +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
loadables.py
manager.py
monkey_patch.py Eventlet monkey patching should be as early as possible 2019-03-25 09:22:01 +01:00
policy.py Fix target used in nova.policy.check_is_admin 2019-05-21 10:55:14 +01:00
profiler.py
quota.py Merge "quota: remove defaults kwarg in get_project_quotas" 2019-02-26 13:26:24 +00:00
rc_fields.py Switch to using os-resource-classes 2019-02-07 11:11:09 +00:00
rpc.py Fix jsonutils.to_primitive UserWarning 2018-12-17 22:56:50 -05:00
safe_utils.py
service.py Move conductor wait_until_ready() delay before manager init 2018-08-31 12:50:10 -07:00
service_auth.py
test.py Eventlet monkey patching should be as early as possible 2019-03-25 09:22:01 +01:00
utils.py Eventlet monkey patching should be as early as possible 2019-03-25 09:22:01 +01:00
version.py
weights.py Per aggregate scheduling weight 2019-01-21 11:48:44 +08:00
wsgi.py