)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"504a7358bcee84890da8a0e271b76d5063189a90","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"97e1e685_57e0e1cf","updated":"2023-06-06 12:27:16.000000000","message":"recheck openstack-tox-* jobs with TIMED_OUT","commit_id":"0f5878f422a86ade4c5df5d181001bd182e9a431"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"22c7757c46fb6a46a8281e9fd99d955ff17396ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8c9930ef_c2c9e65d","updated":"2023-07-06 10:57:55.000000000","message":"recheck standalone jobs","commit_id":"71f70e6ca0a473559a409ac0cf7a639e9eb7e3da"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"ce1f8f437a93893877b504f331883743a9deec1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a4549c87_c2fb6e30","updated":"2023-07-03 17:25:54.000000000","message":"recheck test_ramdisk_boot failed, doesn\u0027t seem related to the patch","commit_id":"71f70e6ca0a473559a409ac0cf7a639e9eb7e3da"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"1124f92ba4939ba994a4a0778990bbd2343bfd27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7f3f86ba_a0867441","updated":"2023-07-11 12:14:34.000000000","message":"LGTM, one outstanding question but don\u0027t let it block if others are OK","commit_id":"aecb58108223809d2e23454aa1fb4e8827c0f0ac"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"860b33ed4de943dc43abe13ef884f429cb568f58","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"cbcef802_8d57ba0b","updated":"2023-07-19 02:38:14.000000000","message":"recheck metal3","commit_id":"aecb58108223809d2e23454aa1fb4e8827c0f0ac"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"1271d7df84da5f4b5be13d448ec37c3aa2cf0a1f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"01910c5b_b94d858d","updated":"2023-07-18 12:15:26.000000000","message":"recheck metal3 failure","commit_id":"aecb58108223809d2e23454aa1fb4e8827c0f0ac"}],"ironic/api/controllers/v1/utils.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"21f8eb9b3e295e4615c871e082b8cfe2969e811d","unresolved":true,"context_lines":[{"line_number":2012,"context_line":"def allow_firmware_interface():"},{"line_number":2013,"context_line":"    \"\"\"Check if we should support firmware interface and endpoints."},{"line_number":2014,"context_line":""},{"line_number":2015,"context_line":"    Version 1.84 of the API added support for firmware interface."},{"line_number":2016,"context_line":"    \"\"\""},{"line_number":2017,"context_line":"    return api.request.version.minor \u003e\u003d versions.MINOR_86_FIRMWARE_INTERFACE"}],"source_content_type":"text/x-python","patch_set":7,"id":"03e5493a_087e73c2","line":2015,"range":{"start_line":2015,"start_character":12,"end_line":2015,"end_character":16},"updated":"2023-07-18 08:51:36.000000000","message":"nit: 1.86","commit_id":"aecb58108223809d2e23454aa1fb4e8827c0f0ac"}],"ironic/drivers/base.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"1124f92ba4939ba994a4a0778990bbd2343bfd27","unresolved":true,"context_lines":[{"line_number":1743,"context_line":"        \"\"\""},{"line_number":1744,"context_line":""},{"line_number":1745,"context_line":""},{"line_number":1746,"context_line":"def cache_firmware_components(func):"},{"line_number":1747,"context_line":"    \"\"\"A decorator to cache firmware components after running the function."},{"line_number":1748,"context_line":""},{"line_number":1749,"context_line":"    :param func: Function or method to wrap."}],"source_content_type":"text/x-python","patch_set":7,"id":"aa1244bf_c8fa2e86","line":1746,"updated":"2023-07-11 12:14:34.000000000","message":"Maybe I\u0027m a little shy about this pattern because of the deadlock-y testing bugs we\u0027ve been trying to eliminate lately, but I wonder about using tasks and DB writing in a decorator. I can\u0027t think of a reason it\u0027s not OK; but just marking this to see if you can give me more confidence 😄 -- mainly; have you tested this with a driver that does real work in this method + in update()?","commit_id":"aecb58108223809d2e23454aa1fb4e8827c0f0ac"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"ba7752c7a51dae4a102325e1f9edf708f96d52af","unresolved":true,"context_lines":[{"line_number":1743,"context_line":"        \"\"\""},{"line_number":1744,"context_line":""},{"line_number":1745,"context_line":""},{"line_number":1746,"context_line":"def cache_firmware_components(func):"},{"line_number":1747,"context_line":"    \"\"\"A decorator to cache firmware components after running the function."},{"line_number":1748,"context_line":""},{"line_number":1749,"context_line":"    :param func: Function or method to wrap."}],"source_content_type":"text/x-python","patch_set":7,"id":"af821ff6_f52f6b9f","line":1746,"in_reply_to":"85d1f472_dc8e1771","updated":"2023-07-14 08:38:39.000000000","message":"After looking at that code; I\u0027d give feedback that we may also want to tag FirmwareInterface.cache_firmware_components as a cleaning step -- for use cases where an operator wants to check firmware version but may not be using Ironic automation to do so.\n\nAs long as the code in 885425 works as written, I\u0027m not concerned with this anymore. Thanks!","commit_id":"aecb58108223809d2e23454aa1fb4e8827c0f0ac"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"621f0c45324bb28d0d526deac0d0fb7def37ab99","unresolved":true,"context_lines":[{"line_number":1743,"context_line":"        \"\"\""},{"line_number":1744,"context_line":""},{"line_number":1745,"context_line":""},{"line_number":1746,"context_line":"def cache_firmware_components(func):"},{"line_number":1747,"context_line":"    \"\"\"A decorator to cache firmware components after running the function."},{"line_number":1748,"context_line":""},{"line_number":1749,"context_line":"    :param func: Function or method to wrap."}],"source_content_type":"text/x-python","patch_set":7,"id":"85d1f472_dc8e1771","line":1746,"in_reply_to":"aa1244bf_c8fa2e86","updated":"2023-07-12 00:37:33.000000000","message":"Hey Jay, sorry I\u0027m on PTO this week, but I\u0027m setting up a env with bifrost and my chain of patches this one and https://review.opendev.org/c/openstack/ironic/+/885425 to test with real hardware, will solve the merge conflic on 885425 when I\u0027m back next week. If you want to look at the current code there it has the logic, so feel free to also provide feedback. Thanks!","commit_id":"aecb58108223809d2e23454aa1fb4e8827c0f0ac"}],"ironic/tests/unit/api/base.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"21f8eb9b3e295e4615c871e082b8cfe2969e811d","unresolved":true,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _make_app(self):"},{"line_number":74,"context_line":"        # Determine where we are so we can set up paths in the config"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        root_dir \u003d self.path_get()"},{"line_number":77,"context_line":"        self.app_config \u003d {"},{"line_number":78,"context_line":"            \u0027app\u0027: {"}],"source_content_type":"text/x-python","patch_set":7,"id":"cedce0d5_e11575c4","line":75,"updated":"2023-07-18 08:51:36.000000000","message":"nit: unrelated change","commit_id":"aecb58108223809d2e23454aa1fb4e8827c0f0ac"}]}
