)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"9f64e17b20e0aec3ef6b68a41001d8b4454752d8","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add flag to disable eventlet"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This flag will be used by many other modules to conditionally disable"},{"line_number":10,"context_line":"eventlet if either not installed or an operator decided to disable it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"eventlet is still used by default if installed. An operator can override"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"c5d32f20_3d9229d5","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":44},"updated":"2026-06-22 21:40:17.000000000","message":"Just internally by `swift.common.concurrency` now, right?","commit_id":"15a42397b702e86b82dc8de3a942a8782d88c4b6"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ad6beb0c62e68037663389d9ef4a5a071581fd75","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b0a787b0_03e89182","updated":"2026-05-01 20:02:10.000000000","message":"In light of https://review.opendev.org/c/openstack/swift/+/985751 (and its merging into `feature/threaded` with https://review.opendev.org/c/openstack/swift/+/986947) should this still be its own module, or should it just move into `swift.common.concurrency`?","commit_id":"d022c2aec8b26ba57303c9b5a54844771c23e2f1"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"fc0cd2bd148fcced00decf0e1866ef516e2f54d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3f8929f1_72ecadcc","updated":"2026-03-11 21:33:24.000000000","message":"Seems reasonable, and neither `swift/__init__.py` nor `swift/common/__init__.py` try to import eventlet.\n\n(Unlike `swift/common/utils/__init__.py`, which I\u0027m assuming is why this doesn\u0027t go there but gets its own module.)","commit_id":"d022c2aec8b26ba57303c9b5a54844771c23e2f1"},{"author":{"_account_id":38496,"name":"Andressa Cabistani","display_name":"Andressa","email":"acabistani@gmail.com","username":"andressadotpy","status":"I\u0027m a Software Engineer at Red Hat and I love Open Source and connect with people! Feel free to DM through IRC, I\u0027ll be delighted to chat"},"change_message_id":"569de721938bbf438272f2aca672ec901f3296a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b61dcef0_ea0070db","updated":"2026-06-04 10:56:53.000000000","message":"This looks good to me. I like the `importlib.util.find_spec(\u0027eventlet\u0027)` usage and how it accepts multiple ways to set to false.\n\nI played with the patch a bit just to ensure everything was working as expected:\n\nChecked if USE_EVENTLET defaults to True when is installed\n`python3 -c \"from swift.common import concurrency; print(\u0027USE_EVENTLET:\u0027, concurrency.USE_EVENTLET)\"`\n\nAnd disabling it (though I\u0027ve been using it while testing the other patches)\n`USE_EVENTLET\u003dfalse python3 -c \"from swift.common import concurrency; print(\u0027USE_EVENTLET:\u0027, concurrency.USE_EVENTLET)\"`\n\n\nAlso tested the multiple false values\n```\nfor val in false 0 no off f n False NO Off; do\n      USE_EVENTLET\u003d$val python3 -c \"from swift.common import concurrency; print(\u0027USE_EVENTLET with $val:\u0027, concurrency.USE_EVENTLET)\"\ndone\n```\n\nAnd yeah it looks solid! Thank you!","commit_id":"cf5558d9d750ba9618eeeff88c1546a8b63eb367"}],"swift/common/concurrency.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"9f64e17b20e0aec3ef6b68a41001d8b4454752d8","unresolved":true,"context_lines":[{"line_number":81,"context_line":"__all__ \u003d ["},{"line_number":82,"context_line":"    \u0027USE_EVENTLET\u0027,"},{"line_number":83,"context_line":"    \u0027FALSE_VALUES\u0027,"},{"line_number":84,"context_line":"    \u0027config_false_value\u0027,"},{"line_number":85,"context_line":"    \u0027debug\u0027,"},{"line_number":86,"context_line":"    \u0027greenio\u0027,"},{"line_number":87,"context_line":"    \u0027greenthread\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"81b661da_95b6bf64","line":84,"updated":"2026-06-22 21:40:17.000000000","message":"The more I think about it, I\u0027m kinda tempted to do a\n```\ndel FALSE_VALUES, config_false_value\n```\nto make it clear that these are really, truly, only intended for use in establishing a value for `USE_EVENTLET`.\n\nDefinitely not a blocker, though.","commit_id":"15a42397b702e86b82dc8de3a942a8782d88c4b6"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b3b40b85964e252dfc4c825a8d20cdc16b15582f","unresolved":false,"context_lines":[{"line_number":81,"context_line":"__all__ \u003d ["},{"line_number":82,"context_line":"    \u0027USE_EVENTLET\u0027,"},{"line_number":83,"context_line":"    \u0027FALSE_VALUES\u0027,"},{"line_number":84,"context_line":"    \u0027config_false_value\u0027,"},{"line_number":85,"context_line":"    \u0027debug\u0027,"},{"line_number":86,"context_line":"    \u0027greenio\u0027,"},{"line_number":87,"context_line":"    \u0027greenthread\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3b790564_886935e0","line":84,"in_reply_to":"81b661da_95b6bf64","updated":"2026-07-09 02:01:02.000000000","message":"Looks like this gets addressed later in https://review.opendev.org/c/openstack/swift/+/996117","commit_id":"15a42397b702e86b82dc8de3a942a8782d88c4b6"}]}
