)]}'
{"nova/utils.py":[{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"895ee49e3365fa9c7869d1d0be6bc0706c44580a","unresolved":true,"context_lines":[{"line_number":20,"context_line":"import contextlib"},{"line_number":21,"context_line":"import datetime"},{"line_number":22,"context_line":"import functools"},{"line_number":23,"context_line":"import futurist"},{"line_number":24,"context_line":"import hashlib"},{"line_number":25,"context_line":"import inspect"},{"line_number":26,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":1,"id":"d99c3fcd_21edb8f5","line":23,"updated":"2024-06-24 14:19:23.000000000","message":"Wouldn\u0027t `futurist` belong to the import block below as it\u0027s not part of the standard library?","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b9a1c7e2598eae0c02980b59e54a395c1a4afdbf","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import contextlib"},{"line_number":21,"context_line":"import datetime"},{"line_number":22,"context_line":"import functools"},{"line_number":23,"context_line":"import futurist"},{"line_number":24,"context_line":"import hashlib"},{"line_number":25,"context_line":"import inspect"},{"line_number":26,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":1,"id":"5cf5152c_d650187f","line":23,"in_reply_to":"831be98e_78e808a1","updated":"2024-07-01 12:31:40.000000000","message":"Done","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1100c31785edb3225ef1f38979dc4da7e556e064","unresolved":true,"context_lines":[{"line_number":20,"context_line":"import contextlib"},{"line_number":21,"context_line":"import datetime"},{"line_number":22,"context_line":"import functools"},{"line_number":23,"context_line":"import futurist"},{"line_number":24,"context_line":"import hashlib"},{"line_number":25,"context_line":"import inspect"},{"line_number":26,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":1,"id":"831be98e_78e808a1","line":23,"in_reply_to":"d99c3fcd_21edb8f5","updated":"2024-06-24 15:17:31.000000000","message":"yep fixed that in the next patch\n\nill fix this when i respin\n\nthis is partl ya rebase artifact","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"895ee49e3365fa9c7869d1d0be6bc0706c44580a","unresolved":true,"context_lines":[{"line_number":86,"context_line":"DEFAULT_GREEN_POOL \u003d None"},{"line_number":87,"context_line":"# The  futurist executor"},{"line_number":88,"context_line":"IO_THREAD_POOL_EXECUTOR \u003d None"},{"line_number":89,"context_line":"IO_WORKERS \u003d max(CONF.compute.max_concurrent_disk_ops, 4)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"def coopretive_yield():"}],"source_content_type":"text/x-python","patch_set":1,"id":"38d2e7b2_4086f120","line":89,"updated":"2024-06-24 14:19:23.000000000","message":"Might want to think about naming this `IO_WORKER_COUNT` so nobody confuses it with containing the workers instead of a count.","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"08d02706b0848f82d6302d68473170ca9d4920ea","unresolved":true,"context_lines":[{"line_number":86,"context_line":"DEFAULT_GREEN_POOL \u003d None"},{"line_number":87,"context_line":"# The  futurist executor"},{"line_number":88,"context_line":"IO_THREAD_POOL_EXECUTOR \u003d None"},{"line_number":89,"context_line":"IO_WORKERS \u003d max(CONF.compute.max_concurrent_disk_ops, 4)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"def coopretive_yield():"}],"source_content_type":"text/x-python","patch_set":1,"id":"69f5ca59_021a841b","line":89,"in_reply_to":"38d2e7b2_4086f120","updated":"2024-07-01 12:09:29.000000000","message":"ya so im debating about adding a new config option\n\ni think i will and default it to CONF.compute.max_concurrent_disk_ops if not set.","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b9a1c7e2598eae0c02980b59e54a395c1a4afdbf","unresolved":false,"context_lines":[{"line_number":86,"context_line":"DEFAULT_GREEN_POOL \u003d None"},{"line_number":87,"context_line":"# The  futurist executor"},{"line_number":88,"context_line":"IO_THREAD_POOL_EXECUTOR \u003d None"},{"line_number":89,"context_line":"IO_WORKERS \u003d max(CONF.compute.max_concurrent_disk_ops, 4)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"def coopretive_yield():"}],"source_content_type":"text/x-python","patch_set":1,"id":"5df36c89_3e6f0ed0","line":89,"in_reply_to":"69f5ca59_021a841b","updated":"2024-07-01 12:31:40.000000000","message":"ill adress this in a later patch in the series and leave a comment to that effect in the code in the next revsion","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"895ee49e3365fa9c7869d1d0be6bc0706c44580a","unresolved":true,"context_lines":[{"line_number":89,"context_line":"IO_WORKERS \u003d max(CONF.compute.max_concurrent_disk_ops, 4)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"def coopretive_yield():"},{"line_number":93,"context_line":"    if monkey_patch.is_patched():"},{"line_number":94,"context_line":"        eventlet.sleep(0)"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"82cf639d_095a06e9","line":92,"updated":"2024-06-24 14:19:23.000000000","message":"typo in function name. should most likely be `cooperative_yield`.","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"aee03b656e1baa9e8a5c4c64bac2018e303d3ff2","unresolved":false,"context_lines":[{"line_number":89,"context_line":"IO_WORKERS \u003d max(CONF.compute.max_concurrent_disk_ops, 4)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"def coopretive_yield():"},{"line_number":93,"context_line":"    if monkey_patch.is_patched():"},{"line_number":94,"context_line":"        eventlet.sleep(0)"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"0c2197b7_c6b8db9f","line":92,"in_reply_to":"5d1e4f37_c953fa3a","updated":"2024-08-20 15:54:44.000000000","message":"Done","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"08d02706b0848f82d6302d68473170ca9d4920ea","unresolved":true,"context_lines":[{"line_number":89,"context_line":"IO_WORKERS \u003d max(CONF.compute.max_concurrent_disk_ops, 4)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"def coopretive_yield():"},{"line_number":93,"context_line":"    if monkey_patch.is_patched():"},{"line_number":94,"context_line":"        eventlet.sleep(0)"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5d1e4f37_c953fa3a","line":92,"in_reply_to":"82cf639d_095a06e9","updated":"2024-07-01 12:09:29.000000000","message":"ack ill fix","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"895ee49e3365fa9c7869d1d0be6bc0706c44580a","unresolved":true,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"def io_executor_singleton():"},{"line_number":98,"context_line":"    global EXECUTOR"},{"line_number":99,"context_line":"    if EXECUTOR is None:"},{"line_number":100,"context_line":"        EXECUTOR \u003d futurist.ThreadPoolExecutor(max_workers\u003dIO_WORKERS)"},{"line_number":101,"context_line":"    return EXECUTOR"}],"source_content_type":"text/x-python","patch_set":1,"id":"634906c0_bf002963","line":98,"updated":"2024-06-24 14:19:23.000000000","message":"Is this supposed to be `EXECUTOR` or rather `IO_THREAD_POOL_EXECUTOR`?","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b9a1c7e2598eae0c02980b59e54a395c1a4afdbf","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"def io_executor_singleton():"},{"line_number":98,"context_line":"    global EXECUTOR"},{"line_number":99,"context_line":"    if EXECUTOR is None:"},{"line_number":100,"context_line":"        EXECUTOR \u003d futurist.ThreadPoolExecutor(max_workers\u003dIO_WORKERS)"},{"line_number":101,"context_line":"    return EXECUTOR"}],"source_content_type":"text/x-python","patch_set":1,"id":"d6ab8666_4e0a0f21","line":98,"in_reply_to":"612a143d_ff63c540","updated":"2024-07-01 12:31:40.000000000","message":"Done","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"08d02706b0848f82d6302d68473170ca9d4920ea","unresolved":true,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"def io_executor_singleton():"},{"line_number":98,"context_line":"    global EXECUTOR"},{"line_number":99,"context_line":"    if EXECUTOR is None:"},{"line_number":100,"context_line":"        EXECUTOR \u003d futurist.ThreadPoolExecutor(max_workers\u003dIO_WORKERS)"},{"line_number":101,"context_line":"    return EXECUTOR"}],"source_content_type":"text/x-python","patch_set":1,"id":"612a143d_ff63c540","line":98,"in_reply_to":"634906c0_bf002963","updated":"2024-07-01 12:09:29.000000000","message":"IO_THREAD_POOL_EXECUTOR\n\ni have a few rebase artifacts in the curent version as im trying to reorganise my patches to consolidate/reuse code.","commit_id":"e2d982af28ba5ff48a3ca7bb2499c37df6b97fe2"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cef9b0f8742fdfe632771995f045c61bf84d5a82","unresolved":true,"context_lines":[{"line_number":32,"context_line":"import futurist"},{"line_number":33,"context_line":"import netaddr"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from eventlet import tpool"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"from keystoneauth1 import loading as ks_loading"},{"line_number":38,"context_line":"from openstack import connection"}],"source_content_type":"text/x-python","patch_set":4,"id":"03f466c4_d65c526d","line":35,"updated":"2024-08-26 13:59:58.000000000","message":"hm, can we move this under the ```import eventlet``` line?","commit_id":"80b792b8704184215c94406e3e2b78256725ca99"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b2bec6710de9c120e55e60ab84b7091d5b8891c","unresolved":true,"context_lines":[{"line_number":32,"context_line":"import futurist"},{"line_number":33,"context_line":"import netaddr"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from eventlet import tpool"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"from keystoneauth1 import loading as ks_loading"},{"line_number":38,"context_line":"from openstack import connection"}],"source_content_type":"text/x-python","patch_set":4,"id":"99c1c957_72f7e665","line":35,"in_reply_to":"03f466c4_d65c526d","updated":"2024-08-26 16:07:19.000000000","message":"while it technially can go there im tryint to also fix our imports to properly seperate\n\n\nimport x\n\nand\n\nfrom x import y\n\nhacking allows both but absolute hate mixing them so i alwas fix this when im editing imports.","commit_id":"80b792b8704184215c94406e3e2b78256725ca99"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cef9b0f8742fdfe632771995f045c61bf84d5a82","unresolved":true,"context_lines":[{"line_number":110,"context_line":"    \"\"\"Run func in a global executor\"\"\""},{"line_number":111,"context_line":"    LOG.debug("},{"line_number":112,"context_line":"        f\"IO THREAD POOL Executor, \""},{"line_number":113,"context_line":"        f\"submitting function:{func} with args: {args} \""},{"line_number":114,"context_line":"        f\"and kwargs:{kwargs}\")"},{"line_number":115,"context_line":"    # yield to allow opportunity for logging to happen"},{"line_number":116,"context_line":"    cooperative_yield()"}],"source_content_type":"text/x-python","patch_set":4,"id":"cfe2dc6a_7aab5b6c","line":113,"updated":"2024-08-26 13:59:58.000000000","message":"Will this potentially log a whole context object that has sensitive info in it? Or do we have some automatic scrubbing in place?","commit_id":"80b792b8704184215c94406e3e2b78256725ca99"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b2bec6710de9c120e55e60ab84b7091d5b8891c","unresolved":true,"context_lines":[{"line_number":110,"context_line":"    \"\"\"Run func in a global executor\"\"\""},{"line_number":111,"context_line":"    LOG.debug("},{"line_number":112,"context_line":"        f\"IO THREAD POOL Executor, \""},{"line_number":113,"context_line":"        f\"submitting function:{func} with args: {args} \""},{"line_number":114,"context_line":"        f\"and kwargs:{kwargs}\")"},{"line_number":115,"context_line":"    # yield to allow opportunity for logging to happen"},{"line_number":116,"context_line":"    cooperative_yield()"}],"source_content_type":"text/x-python","patch_set":4,"id":"783d4587_682ab93c","line":113,"in_reply_to":"cfe2dc6a_7aab5b6c","updated":"2024-08-26 16:07:19.000000000","message":"i can double check the output but i did not see sesitive feild logged that i recall althgough i was not explictly looking for them.","commit_id":"80b792b8704184215c94406e3e2b78256725ca99"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"0f3e6798e7201b2d32ea5b8082b6130bd710fcf0","unresolved":true,"context_lines":[{"line_number":90,"context_line":"IO_THREAD_POOL_EXECUTOR \u003d None"},{"line_number":91,"context_line":"# TODO(sean-k-mooney) factor out a new config option"},{"line_number":92,"context_line":"# to control the io worker count"},{"line_number":93,"context_line":"IO_WORKERS \u003d max(CONF.compute.max_concurrent_disk_ops, 4)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def cooperative_yield():"}],"source_content_type":"text/x-python","patch_set":5,"id":"27a5b75d_effcf85e","line":93,"range":{"start_line":93,"start_character":30,"end_line":93,"end_character":53},"updated":"2025-04-24 08:57:25.000000000","message":"better to add min, max caps to option itself https://docs.openstack.org/oslo.config/latest/reference/api/oslo_config.html#oslo_config.types.Integer","commit_id":"a277f396d75f634a0edb79c1b878251f5d7dc22c"}]}
