)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"ecb42d38a2898dc5c0fdd10b2b8400431ecefdee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"507c4961_b3028d0f","updated":"2025-04-23 14:40:01.000000000","message":"I\u0027d suggest add a Closes-Bug in the commit message instead of spec url to trace the work.","commit_id":"20afafef06cdddb8ea1342261b6c90e3593a1113"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"743154bc80180f9ec37271d0d95747402391486f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3c106d26_e1760ad3","updated":"2025-04-23 14:41:24.000000000","message":"It seems that the ca could be chained so that a path is required?","commit_id":"20afafef06cdddb8ea1342261b6c90e3593a1113"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"bbf69cd4e45a1fccca99bd3fbb0e83cf347105b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6faee2ae_400b4924","in_reply_to":"507c4961_b3028d0f","updated":"2025-04-24 02:46:04.000000000","message":"Got it, thanks.","commit_id":"20afafef06cdddb8ea1342261b6c90e3593a1113"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5fed6b9e191fcaae0747589b86b2c2326cae8291","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b7c86080_51e4d1c7","updated":"2025-05-28 10:26:29.000000000","message":"Thank you for starting this effort, some comments inline","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"98c04483f72f33677aad98eb3ee05e6d750212be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bc7d881f_8b6e6cc5","updated":"2025-06-16 08:44:56.000000000","message":"Updated.","commit_id":"bc65e22adf66f7959a075736ed0c90a742cd44aa"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"29f84edc6d67c091748106005aebda8598611399","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"87ab7296_37450c74","updated":"2025-06-30 12:21:02.000000000","message":"Thank you for updates. Is it really still work in progress? Looks pretty complete to me. I\u0027ve left one request for expanding the documentation for the configuration option. Otherwise, I believe, this patch is ready.","commit_id":"99e75a6b835e5617999d66892701a889fb3dd4d5"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"d8a11605a63a7ca4463d4e203eed04286931d7a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"cfc345de_4943e38a","in_reply_to":"87ab7296_37450c74","updated":"2025-07-01 06:02:48.000000000","message":"Thank you for your review.\n\nThe patch is marked as work in progress because there are still some aspects that I would like to verify in the actual environment. The physical servers on my side are quite limited, and I need some time to complete the tests. I will remove the WIP status once the tests are completed and everything is confirmed to be working as expected. I appreciate your patience and support during this process.","commit_id":"99e75a6b835e5617999d66892701a889fb3dd4d5"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6ec977fa5bd5c22bbaf0890b1ff97cae6cd276c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"053b8c1d_127b9801","updated":"2025-07-01 10:14:49.000000000","message":"Looks good, thanks! Please note that your Workflow-1 tag will prevent this change from getting merged and may discourage other reviewers. If you\u0027re ready, please remove the tag.","commit_id":"65909e25abe19a9d5b090ec54c1f53096694443e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"bb692965fc7697411d867001f28e2dfaeaf823c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4887fb52_86616542","updated":"2025-07-07 12:05:52.000000000","message":"Please note: since you have Workflow-1 set, this patch is considered incomplete and cannot be merged. Could you either complete it or remove the Workflow-1 flag?","commit_id":"65909e25abe19a9d5b090ec54c1f53096694443e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"dc9aa2775eb089527bf1d1736715596cc03221c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d49c2fd6_0efb08da","updated":"2025-07-10 12:03:03.000000000","message":"recheck the job should be slowly recovering","commit_id":"65909e25abe19a9d5b090ec54c1f53096694443e"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"0b5140e9e53d6681cf58ea91fb260a748c964748","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"69cd187a_def40f88","in_reply_to":"4887fb52_86616542","updated":"2025-07-08 05:44:20.000000000","message":"Thanks for your comments. As you know, this is part of the OCP enhancement \"Support BMC CA Certificate.\" I originally intended to remove the WIP flag after conducting a full integration test in a real environment (including Ironic, CBO, Installer, etc.), but unfortunately, I am unable to obtain a test environment in the short term.\n\nBelow are the tests I have conducted before:\n・Test environment is an IPI-installed OCP cluster.\n・Test scenario is adding a worker node.\n・Test steps:\n  1. Create a CA and issue a self-signed certificate for iRMC.\n  2. Apply this patch (the earliest version) to the ironic image.\n  3. Set \"verify_ca \u003d \u003ctest-path\u003e\" in ironic.conf.\n  4. Create \u003ctest-path\u003e in the ironic container and put the CA cert in it.\n  5. Set \"disableCertificateVerification: false\" in BMH yaml.\n  6. Create the BMH and wait until it is in a stable state.\n・Test cases:\n  1. When \"disableCertificateVerification: false\" and \"verify_ca\" is set, the expected result is \"BMH available.\" (with secure communication)\n  2. When \"disableCertificateVerification: false\" and \"verify_ca\" is not set, the expected result is \"BMH inspection error.\"\n  3. When \"disableCertificateVerification: true\" is set, no matter \"verify_ca\" is set or not, the expected result is \"BMH available.\" (without secure communication)\n\nI am not sure if this is sufficient, but I have removed the Workflow-1 flag. If you think there is no problem, please merge it. Thanks again for your kind help.","commit_id":"65909e25abe19a9d5b090ec54c1f53096694443e"}],"ironic/conf/drac.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5fed6b9e191fcaae0747589b86b2c2326cae8291","unresolved":true,"context_lines":[{"line_number":50,"context_line":"               min\u003d1,"},{"line_number":51,"context_line":"               help\u003d_(\u0027Maximum time (in seconds) to wait for RAID job to \u0027"},{"line_number":52,"context_line":"                      \u0027complete\u0027)),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027verify_ca\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":55,"context_line":"               help\u003d_(\u0027The default verify_ca path.\u0027)),"},{"line_number":56,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":6,"id":"4888761d_1a030b23","line":53,"updated":"2025-05-28 10:26:29.000000000","message":"I suggest not introducing a separate option for iDRAC and use the Redfish one instead. The options you see here are for iDRAC-specific code, while the Redfish code will be generic even on iDRAC.","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"88270f926cfd5ffaeb37141c10c9a73cc4de0dba","unresolved":true,"context_lines":[{"line_number":50,"context_line":"               min\u003d1,"},{"line_number":51,"context_line":"               help\u003d_(\u0027Maximum time (in seconds) to wait for RAID job to \u0027"},{"line_number":52,"context_line":"                      \u0027complete\u0027)),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027verify_ca\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":55,"context_line":"               help\u003d_(\u0027The default verify_ca path.\u0027)),"},{"line_number":56,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":6,"id":"66968937_666c8e9a","line":53,"in_reply_to":"4888761d_1a030b23","updated":"2025-05-29 03:21:58.000000000","message":"Thank you for your review, I will address these comments as soon as possible.","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"98c04483f72f33677aad98eb3ee05e6d750212be","unresolved":false,"context_lines":[{"line_number":50,"context_line":"               min\u003d1,"},{"line_number":51,"context_line":"               help\u003d_(\u0027Maximum time (in seconds) to wait for RAID job to \u0027"},{"line_number":52,"context_line":"                      \u0027complete\u0027)),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027verify_ca\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":55,"context_line":"               help\u003d_(\u0027The default verify_ca path.\u0027)),"},{"line_number":56,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":6,"id":"307a93cd_afde385f","line":53,"in_reply_to":"66968937_666c8e9a","updated":"2025-06-16 08:44:56.000000000","message":"Done","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5fed6b9e191fcaae0747589b86b2c2326cae8291","unresolved":true,"context_lines":[{"line_number":51,"context_line":"               help\u003d_(\u0027Maximum time (in seconds) to wait for RAID job to \u0027"},{"line_number":52,"context_line":"                      \u0027complete\u0027)),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027verify_ca\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":55,"context_line":"               help\u003d_(\u0027The default verify_ca path.\u0027)),"},{"line_number":56,"context_line":"]"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"b57d0c4c_328acefd","line":54,"updated":"2025-05-28 10:26:29.000000000","message":"nit: you don\u0027t need to provide an empty value, None is the default already","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"98c04483f72f33677aad98eb3ee05e6d750212be","unresolved":false,"context_lines":[{"line_number":51,"context_line":"               help\u003d_(\u0027Maximum time (in seconds) to wait for RAID job to \u0027"},{"line_number":52,"context_line":"                      \u0027complete\u0027)),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027verify_ca\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":55,"context_line":"               help\u003d_(\u0027The default verify_ca path.\u0027)),"},{"line_number":56,"context_line":"]"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7379d5f4_91e1e8d9","line":54,"in_reply_to":"b57d0c4c_328acefd","updated":"2025-06-16 08:44:56.000000000","message":"Done","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"}],"ironic/conf/redfish.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"29f84edc6d67c091748106005aebda8598611399","unresolved":true,"context_lines":[{"line_number":122,"context_line":"                      \u0027boot status change to take effect after a reboot. \u0027"},{"line_number":123,"context_line":"                      \u0027Set to 0 to disable waiting.\u0027)),"},{"line_number":124,"context_line":"    cfg.StrOpt(\u0027verify_ca\u0027,"},{"line_number":125,"context_line":"               help\u003d_(\u0027The default verify_ca path.\u0027)),"},{"line_number":126,"context_line":"]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"b2cf685c_827ec6fa","line":125,"updated":"2025-06-30 12:21:02.000000000","message":"Let\u0027s expand this comment with information when this option used: when redfish_verify_ca in driver_info is missing or set to True.","commit_id":"99e75a6b835e5617999d66892701a889fb3dd4d5"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"22e5cfcf48c526bfe26c54216dcfb38e60e0fa4f","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                      \u0027boot status change to take effect after a reboot. \u0027"},{"line_number":123,"context_line":"                      \u0027Set to 0 to disable waiting.\u0027)),"},{"line_number":124,"context_line":"    cfg.StrOpt(\u0027verify_ca\u0027,"},{"line_number":125,"context_line":"               help\u003d_(\u0027The default verify_ca path.\u0027)),"},{"line_number":126,"context_line":"]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fb076611_110dfb3c","line":125,"in_reply_to":"b2cf685c_827ec6fa","updated":"2025-07-01 07:29:02.000000000","message":"Done.","commit_id":"99e75a6b835e5617999d66892701a889fb3dd4d5"}],"ironic/drivers/modules/redfish/utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5fed6b9e191fcaae0747589b86b2c2326cae8291","unresolved":true,"context_lines":[{"line_number":30,"context_line":"from ironic.common.i18n import _"},{"line_number":31,"context_line":"from ironic.common import utils"},{"line_number":32,"context_line":"from ironic.conf import CONF"},{"line_number":33,"context_line":"from ironic.drivers.utils import parse_driver_verify_ca"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"23860d9b_0306ec5a","line":33,"updated":"2025-05-28 10:26:29.000000000","message":"nit: import modules, not specific items from them","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"98c04483f72f33677aad98eb3ee05e6d750212be","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from ironic.common.i18n import _"},{"line_number":31,"context_line":"from ironic.common import utils"},{"line_number":32,"context_line":"from ironic.conf import CONF"},{"line_number":33,"context_line":"from ironic.drivers.utils import parse_driver_verify_ca"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"d30bfc43_c6a36840","line":33,"in_reply_to":"23860d9b_0306ec5a","updated":"2025-06-16 08:44:56.000000000","message":"Done","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5fed6b9e191fcaae0747589b86b2c2326cae8291","unresolved":true,"context_lines":[{"line_number":90,"context_line":"\"\"\"Firmware Components available to update\"\"\""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"@parse_driver_verify_ca"},{"line_number":94,"context_line":"def parse_driver_info(node):"},{"line_number":95,"context_line":"    \"\"\"Parse the information required for Ironic to connect to Redfish."},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"f6c4149b_28543d91","line":93,"updated":"2025-05-28 10:26:29.000000000","message":"The purpose of the decorator may not be obvious for a reader, and it\u0027s not consistent with other parameters...","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"98c04483f72f33677aad98eb3ee05e6d750212be","unresolved":false,"context_lines":[{"line_number":90,"context_line":"\"\"\"Firmware Components available to update\"\"\""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"@parse_driver_verify_ca"},{"line_number":94,"context_line":"def parse_driver_info(node):"},{"line_number":95,"context_line":"    \"\"\"Parse the information required for Ironic to connect to Redfish."},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1b0de403_ee2afad6","line":93,"in_reply_to":"f6c4149b_28543d91","updated":"2025-06-16 08:44:56.000000000","message":"Done","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5fed6b9e191fcaae0747589b86b2c2326cae8291","unresolved":true,"context_lines":[{"line_number":107,"context_line":"            \u0027Missing the following Redfish properties in node \u0027"},{"line_number":108,"context_line":"            \u0027%(node)s driver_info: %(info)s\u0027) % {\u0027node\u0027: node.uuid,"},{"line_number":109,"context_line":"                                                 \u0027info\u0027: missing_info})"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    # Validate the Redfish address"},{"line_number":112,"context_line":"    address \u003d utils.wrap_ipv6(driver_info[\u0027redfish_address\u0027])"},{"line_number":113,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f879667_0fe19bd2","line":110,"updated":"2025-05-28 10:26:29.000000000","message":"... instead, you could do something like\n\n```\nutils.add_verify_ca(node, driver_info)\n```","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"98c04483f72f33677aad98eb3ee05e6d750212be","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            \u0027Missing the following Redfish properties in node \u0027"},{"line_number":108,"context_line":"            \u0027%(node)s driver_info: %(info)s\u0027) % {\u0027node\u0027: node.uuid,"},{"line_number":109,"context_line":"                                                 \u0027info\u0027: missing_info})"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    # Validate the Redfish address"},{"line_number":112,"context_line":"    address \u003d utils.wrap_ipv6(driver_info[\u0027redfish_address\u0027])"},{"line_number":113,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"b646963c_8c3b3f0d","line":110,"in_reply_to":"3f879667_0fe19bd2","updated":"2025-06-16 08:44:56.000000000","message":"Done","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"}],"ironic/drivers/utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5fed6b9e191fcaae0747589b86b2c2326cae8291","unresolved":true,"context_lines":[{"line_number":556,"context_line":"                and node.driver_info.get(driver_info_key) is not True:"},{"line_number":557,"context_line":"            return func(node)"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"        if len(CONF.get(config_group, {}).get(\u0027verify_ca\u0027, \u0027\u0027)) \u003d\u003d 0:"},{"line_number":560,"context_line":"            return func(node)"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"        node.driver_info[driver_info_key] \u003d CONF.get("}],"source_content_type":"text/x-python","patch_set":6,"id":"49a4e320_94037c98","line":559,"updated":"2025-05-28 10:26:29.000000000","message":"More pythonic:\n\n```\nif CONF.get(config_group, {}).get(\u0027verify_ca\u0027):\n```","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"98c04483f72f33677aad98eb3ee05e6d750212be","unresolved":false,"context_lines":[{"line_number":556,"context_line":"                and node.driver_info.get(driver_info_key) is not True:"},{"line_number":557,"context_line":"            return func(node)"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"        if len(CONF.get(config_group, {}).get(\u0027verify_ca\u0027, \u0027\u0027)) \u003d\u003d 0:"},{"line_number":560,"context_line":"            return func(node)"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"        node.driver_info[driver_info_key] \u003d CONF.get("}],"source_content_type":"text/x-python","patch_set":6,"id":"0270585e_6e33d255","line":559,"in_reply_to":"49a4e320_94037c98","updated":"2025-06-16 08:44:56.000000000","message":"Done","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5fed6b9e191fcaae0747589b86b2c2326cae8291","unresolved":true,"context_lines":[{"line_number":559,"context_line":"        if len(CONF.get(config_group, {}).get(\u0027verify_ca\u0027, \u0027\u0027)) \u003d\u003d 0:"},{"line_number":560,"context_line":"            return func(node)"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"        node.driver_info[driver_info_key] \u003d CONF.get("},{"line_number":563,"context_line":"            config_group).get(\u0027verify_ca\u0027)"},{"line_number":564,"context_line":"        return func(node)"},{"line_number":565,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":6,"id":"7eeb34d4_3b30e75f","line":562,"updated":"2025-05-28 10:26:29.000000000","message":"Please don\u0027t update the node object. The calling function is operating on a temporary driver_info variable, it should be updated instead (see my comment in the Redfish code).","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"98c04483f72f33677aad98eb3ee05e6d750212be","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        if len(CONF.get(config_group, {}).get(\u0027verify_ca\u0027, \u0027\u0027)) \u003d\u003d 0:"},{"line_number":560,"context_line":"            return func(node)"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"        node.driver_info[driver_info_key] \u003d CONF.get("},{"line_number":563,"context_line":"            config_group).get(\u0027verify_ca\u0027)"},{"line_number":564,"context_line":"        return func(node)"},{"line_number":565,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":6,"id":"d2caa669_601e138e","line":562,"in_reply_to":"7eeb34d4_3b30e75f","updated":"2025-06-16 08:44:56.000000000","message":"Done","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"29f84edc6d67c091748106005aebda8598611399","unresolved":true,"context_lines":[{"line_number":571,"context_line":"        return verify_ca"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    if CONF.get(config_group, {}).get(\u0027verify_ca\u0027):"},{"line_number":574,"context_line":"        verify_ca \u003d CONF.get(config_group).get(\u0027verify_ca\u0027)"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    return verify_ca"}],"source_content_type":"text/x-python","patch_set":8,"id":"23d4be81_0ddacdab","line":574,"updated":"2025-06-30 12:21:02.000000000","message":"nit: you don\u0027t need to use get() the second time because now you know that the value exists.","commit_id":"99e75a6b835e5617999d66892701a889fb3dd4d5"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"22e5cfcf48c526bfe26c54216dcfb38e60e0fa4f","unresolved":false,"context_lines":[{"line_number":571,"context_line":"        return verify_ca"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"    if CONF.get(config_group, {}).get(\u0027verify_ca\u0027):"},{"line_number":574,"context_line":"        verify_ca \u003d CONF.get(config_group).get(\u0027verify_ca\u0027)"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    return verify_ca"}],"source_content_type":"text/x-python","patch_set":8,"id":"cde0ba53_beaa96d1","line":574,"in_reply_to":"23d4be81_0ddacdab","updated":"2025-07-01 07:29:02.000000000","message":"Done.","commit_id":"99e75a6b835e5617999d66892701a889fb3dd4d5"}],"ironic/tests/unit/drivers/test_utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5fed6b9e191fcaae0747589b86b2c2326cae8291","unresolved":true,"context_lines":[{"line_number":421,"context_line":"        super(ParseDriverVerifyCATestCase, self).setUp()"},{"line_number":422,"context_line":"        self.node \u003d obj_utils.get_test_node(self.context)"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def test_parse_driver_verify_ca(self):"},{"line_number":425,"context_line":"        for case in ["},{"line_number":426,"context_line":"            {"},{"line_number":427,"context_line":"                \u0027driver\u0027: \u0027idrac\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"0b8159ff_06dee37d","line":424,"updated":"2025-05-28 10:26:29.000000000","message":"Could you split this large test into many separate tests?","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"},{"author":{"_account_id":37907,"name":"Yu Zou","display_name":"zouy414","email":"zouy.fnst@fujitsu.com","username":"zouy414"},"change_message_id":"98c04483f72f33677aad98eb3ee05e6d750212be","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        super(ParseDriverVerifyCATestCase, self).setUp()"},{"line_number":422,"context_line":"        self.node \u003d obj_utils.get_test_node(self.context)"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def test_parse_driver_verify_ca(self):"},{"line_number":425,"context_line":"        for case in ["},{"line_number":426,"context_line":"            {"},{"line_number":427,"context_line":"                \u0027driver\u0027: \u0027idrac\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bc0cd46b_f33320c5","line":424,"in_reply_to":"0b8159ff_06dee37d","updated":"2025-06-16 08:44:56.000000000","message":"Done","commit_id":"2d58fcb6fd9cc2cb1a02454a8f29acb6337d431d"}]}
