diff --git a/ironic/conductor/cleaning.py b/ironic/conductor/cleaning.py index a7f75be686..044b64baf6 100644 --- a/ironic/conductor/cleaning.py +++ b/ironic/conductor/cleaning.py @@ -272,6 +272,7 @@ def do_next_clean_step(task, step_index, disable_ramdisk=None): return utils.cleaning_error_handler(task, msg, traceback=True, tear_down_cleaning=False) + utils.node_update_cache(task) LOG.info('Node %s cleaning complete', node.uuid) event = 'manage' if manual_clean or node.retired else 'done' # NOTE(rloo): No need to specify target prov. state; we're done diff --git a/ironic/conductor/servicing.py b/ironic/conductor/servicing.py index 0308edc243..3264643926 100644 --- a/ironic/conductor/servicing.py +++ b/ironic/conductor/servicing.py @@ -55,6 +55,8 @@ def do_node_service(task, service_steps=None, disable_ramdisk=False): disable_ramdisk) task.node.save() + utils.node_update_cache(task) + # Allow the deploy driver to set up the ramdisk again (necessary for IPA) try: if not disable_ramdisk: @@ -228,6 +230,7 @@ def _tear_down_node_service(task, disable_ramdisk): return utils.servicing_error_handler(task, msg, traceback=True, tear_down_service=False) + utils.node_update_cache(task) LOG.info('Node %s service complete.', task.node.uuid) task.process_event('done') diff --git a/releasenotes/notes/update-node-cache-after-successful-servicing-cleaning-7433c493e31742b0.yaml b/releasenotes/notes/update-node-cache-after-successful-servicing-cleaning-7433c493e31742b0.yaml new file mode 100644 index 0000000000..1289b03b83 --- /dev/null +++ b/releasenotes/notes/update-node-cache-after-successful-servicing-cleaning-7433c493e31742b0.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Update the node cache after a successful servicing and cleaning. + This ensures the node information is correctly updated in the + database.