Merge "Wipe Agent Token when cleaning timeout occcurs" into stable/2023.1
This commit is contained in:
commit
943604cb41
|
@ -488,9 +488,9 @@ def cleaning_error_handler(task, logmsg, errmsg=None, traceback=False,
|
||||||
node.del_driver_internal_info('cleaning_reboot')
|
node.del_driver_internal_info('cleaning_reboot')
|
||||||
node.del_driver_internal_info('cleaning_polling')
|
node.del_driver_internal_info('cleaning_polling')
|
||||||
node.del_driver_internal_info('skip_current_clean_step')
|
node.del_driver_internal_info('skip_current_clean_step')
|
||||||
# We don't need to keep the old agent URL
|
# We don't need to keep the old agent URL, or token
|
||||||
# as it should change upon the next cleaning attempt.
|
# as it should change upon the next cleaning attempt.
|
||||||
node.del_driver_internal_info('agent_url')
|
wipe_token_and_url(task)
|
||||||
# For manual cleaning, the target provision state is MANAGEABLE, whereas
|
# For manual cleaning, the target provision state is MANAGEABLE, whereas
|
||||||
# for automated cleaning, it is AVAILABLE.
|
# for automated cleaning, it is AVAILABLE.
|
||||||
manual_clean = node.target_provision_state == states.MANAGEABLE
|
manual_clean = node.target_provision_state == states.MANAGEABLE
|
||||||
|
|
|
@ -1197,6 +1197,9 @@ class ErrorHandlersTestCase(db_base.DbTestCase):
|
||||||
self.node.set_driver_internal_info('skip_current_clean_step', True)
|
self.node.set_driver_internal_info('skip_current_clean_step', True)
|
||||||
self.node.set_driver_internal_info('clean_step_index', 0)
|
self.node.set_driver_internal_info('clean_step_index', 0)
|
||||||
self.node.set_driver_internal_info('agent_url', 'url')
|
self.node.set_driver_internal_info('agent_url', 'url')
|
||||||
|
self.node.set_driver_internal_info('agent_secret_token', 'foo')
|
||||||
|
self.node.set_driver_internal_info('agent_secret_token_pregenerated',
|
||||||
|
False)
|
||||||
|
|
||||||
msg = 'error bar'
|
msg = 'error bar'
|
||||||
last_error = "last error"
|
last_error = "last error"
|
||||||
|
@ -1209,6 +1212,9 @@ class ErrorHandlersTestCase(db_base.DbTestCase):
|
||||||
self.assertNotIn('cleaning_polling', self.node.driver_internal_info)
|
self.assertNotIn('cleaning_polling', self.node.driver_internal_info)
|
||||||
self.assertNotIn('skip_current_clean_step',
|
self.assertNotIn('skip_current_clean_step',
|
||||||
self.node.driver_internal_info)
|
self.node.driver_internal_info)
|
||||||
|
self.assertNotIn('agent_secret_token', self.node.driver_internal_info)
|
||||||
|
self.assertNotIn('agent_secret_token_pregenerated',
|
||||||
|
self.node.driver_internal_info)
|
||||||
self.assertEqual(last_error, self.node.last_error)
|
self.assertEqual(last_error, self.node.last_error)
|
||||||
self.assertTrue(self.node.maintenance)
|
self.assertTrue(self.node.maintenance)
|
||||||
self.assertEqual(last_error, self.node.maintenance_reason)
|
self.assertEqual(last_error, self.node.maintenance_reason)
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixes an issue where an agent token was being orphaned if a baremetal node
|
||||||
|
timed out during cleaning operations, leading to issues where the node
|
||||||
|
would not be able to establish a new token with Ironic upon future
|
||||||
|
in some cases. We now always wipe the token in this case.
|
Loading…
Reference in New Issue