-
Story
-
Resolution: Done
-
Major
-
None
-
None
-
1
-
False
-
-
False
-
-
-
DFG Security: Test Sprint 7, DFG Security: Test Sprint 9, DFG Security: Test Sprint 10
-
3
Description
Remove eventlet dependency from Barbican codebase and migrate to using threading-based execution instead of eventlet.
Implementation Details
This change removes eventlet dependency from Barbican and migrates to using threading-based execution:
- Remove eventlet from requirements.txt
- Remove eventlet imports and monkey_patch calls from:
- barbican/cmd/worker.py
- barbican/cmd/keystone_listener.py
- barbican/cmd/retry_scheduler.py
- barbican/tests/queue/test_retry_scheduler.py
- Replace 'eventlet' executor with 'threading' executor in:
- get_server() function for RPC server
- get_notification_server() function for notification server
Testing
- Tested with tox environment to ensure functionality is preserved
- Queue module imports successfully
- All components work correctly with threading executor
Upstream Review
The implementation has been submitted for upstream review: https://review.opendev.org/c/openstack/barbican/+/955301
Related Work
This aligns with the OpenStack community goal for eventlet removal:
- https://governance.openstack.org/tc/goals/selected/remove-eventlet.html
- https://wiki.openstack.org/wiki/Eventlet-removal
The threading executor provides the same functionality as eventlet for oslo.messaging but without the eventlet dependency. This change modernizes the codebase and removes the need for monkey patching.