)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"0f6074cafa4bb368c1e1ce74439c70a26dcf4e5b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"68145fe6_86dbb16b","updated":"2023-08-17 12:41:08.000000000","message":"Thank you for your review Dmitry. Uploaded revised patch addressing your feedback (hopefully I didn\u0027t miss anything!)","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"36e7fe626c4da0cb225db36b2de121b64a2d1901","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"47cd5972_782b7958","updated":"2023-08-18 00:21:04.000000000","message":"LGTM","commit_id":"e33289816409f712c66d9b98755b3f3658121569"}],"ironic/drivers/modules/redfish/boot.py":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"231f5f27db8869fe4660103e43b2fecf04fb6e84","unresolved":true,"context_lines":[{"line_number":192,"context_line":"                              \" but it is not available. Falling back to \""},{"line_number":193,"context_line":"                              \"%(available_device)s.\","},{"line_number":194,"context_line":"                              {\u0027requested_device\u0027: sushy.VIRTUAL_MEDIA_CD,"},{"line_number":195,"context_line":"                               \u0027available_device\u0027: sushy.VIRTUAL_MEDIA_DVD})"},{"line_number":196,"context_line":"                else:"},{"line_number":197,"context_line":"                    continue"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"378f2920_6b82f062","line":195,"updated":"2023-08-15 14:00:00.000000000","message":"This kinda of makes sense, but I don\u0027t see you falling back to the other device.\n\nI\u0027m wondering if their BMC doesn\u0027t really report CD..\nDid you have a chance to ask what is the output for this redfish queries:\n\n$ https://\u003cBMC\u003e/redfish/v1/Managers/\u003cManagerID\u003e/VirtualMedia # to check their members, in a Dell Machine we normally have:\n  \"Members\": [\n    {\n      \"@odata.id\": \"/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/RemovableDisk\"\n    },\n    {\n      \"@odata.id\": \"/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD\"\n    }\n  ],\n\nCheck the media type of each virtual media member..\n$ https://\u003cBMC\u003e/redfish/v1/Managers/\u003cManagerID\u003e/VirtualMedia/RemovableDisk\n\n  \"MediaTypes\": [\n    \"USBStick\"\n  ],\n\n$ https://\u003cBMC\u003e/redfish/v1/Managers/\u003cManagerID\u003e/VirtualMedia/CD\n\n  \"MediaTypes\": [\n    \"CD\",\n    \"DVD\"\n  ],","commit_id":"b225c3b222d5fe04164add0405a1acff5898086b"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"5cd2d82ce3ad0e1a8e2d4f1b1da2088cbbe18604","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                              \" but it is not available. Falling back to \""},{"line_number":193,"context_line":"                              \"%(available_device)s.\","},{"line_number":194,"context_line":"                              {\u0027requested_device\u0027: sushy.VIRTUAL_MEDIA_CD,"},{"line_number":195,"context_line":"                               \u0027available_device\u0027: sushy.VIRTUAL_MEDIA_DVD})"},{"line_number":196,"context_line":"                else:"},{"line_number":197,"context_line":"                    continue"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"33cf53b2_f1938ff5","line":195,"in_reply_to":"378f2920_6b82f062","updated":"2023-08-17 05:52:20.000000000","message":"Thank you for your review and comments, Iury. I added some inline comments to help follow the flow. We also discussed this on chat and reached understanding so marking as resolved.","commit_id":"b225c3b222d5fe04164add0405a1acff5898086b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e52bd98abf33348c1f1cf631619159f3e7b9aa9","unresolved":true,"context_lines":[{"line_number":194,"context_line":"                # next v_media device, if any"},{"line_number":195,"context_line":"                # This is needed to add support to Cisco UCSB and UCSX blades"},{"line_number":196,"context_line":"                # reference: https://bugs.launchpad.net/ironic/+bug/2031595"},{"line_number":197,"context_line":"                if (boot_device \u003d\u003d sushy.VIRTUAL_MEDIA_CD"},{"line_number":198,"context_line":"                    and sushy.VIRTUAL_MEDIA_DVD in v_media.media_types):"},{"line_number":199,"context_line":"                    LOG.debug(\"Requested boot from device %(requested_device)s\""},{"line_number":200,"context_line":"                              \" but it is not available. Falling back to \""}],"source_content_type":"text/x-python","patch_set":4,"id":"fb324136_84594846","line":197,"updated":"2023-08-17 08:08:27.000000000","message":"All the new logic requires unit testing.","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"0f6074cafa4bb368c1e1ce74439c70a26dcf4e5b","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                # next v_media device, if any"},{"line_number":195,"context_line":"                # This is needed to add support to Cisco UCSB and UCSX blades"},{"line_number":196,"context_line":"                # reference: https://bugs.launchpad.net/ironic/+bug/2031595"},{"line_number":197,"context_line":"                if (boot_device \u003d\u003d sushy.VIRTUAL_MEDIA_CD"},{"line_number":198,"context_line":"                    and sushy.VIRTUAL_MEDIA_DVD in v_media.media_types):"},{"line_number":199,"context_line":"                    LOG.debug(\"Requested boot from device %(requested_device)s\""},{"line_number":200,"context_line":"                              \" but it is not available. Falling back to \""}],"source_content_type":"text/x-python","patch_set":4,"id":"a86e05d9_ec633068","line":197,"in_reply_to":"fb324136_84594846","updated":"2023-08-17 12:41:08.000000000","message":"Agreed! Wanted to make sure the approach taken is acceptable prior to working on tests. Will add tests in the next revision.","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e52bd98abf33348c1f1cf631619159f3e7b9aa9","unresolved":true,"context_lines":[{"line_number":197,"context_line":"                if (boot_device \u003d\u003d sushy.VIRTUAL_MEDIA_CD"},{"line_number":198,"context_line":"                    and sushy.VIRTUAL_MEDIA_DVD in v_media.media_types):"},{"line_number":199,"context_line":"                    LOG.debug(\"Requested boot from device %(requested_device)s\""},{"line_number":200,"context_line":"                              \" but it is not available. Falling back to \""},{"line_number":201,"context_line":"                              \"%(available_device)s.\","},{"line_number":202,"context_line":"                              {\u0027requested_device\u0027: sushy.VIRTUAL_MEDIA_CD,"},{"line_number":203,"context_line":"                               \u0027available_device\u0027: sushy.VIRTUAL_MEDIA_DVD})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f74422a_67a2b53e","line":200,"updated":"2023-08-17 08:08:27.000000000","message":"\"it is not available\" may not be true generally. More of \"Found a DVD virtual media device while looking for CD, will try it\" (you can invent a more fluent wording here).","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"0f6074cafa4bb368c1e1ce74439c70a26dcf4e5b","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                if (boot_device \u003d\u003d sushy.VIRTUAL_MEDIA_CD"},{"line_number":198,"context_line":"                    and sushy.VIRTUAL_MEDIA_DVD in v_media.media_types):"},{"line_number":199,"context_line":"                    LOG.debug(\"Requested boot from device %(requested_device)s\""},{"line_number":200,"context_line":"                              \" but it is not available. Falling back to \""},{"line_number":201,"context_line":"                              \"%(available_device)s.\","},{"line_number":202,"context_line":"                              {\u0027requested_device\u0027: sushy.VIRTUAL_MEDIA_CD,"},{"line_number":203,"context_line":"                               \u0027available_device\u0027: sushy.VIRTUAL_MEDIA_DVD})"}],"source_content_type":"text/x-python","patch_set":4,"id":"2c1df807_6931f418","line":200,"in_reply_to":"9f74422a_67a2b53e","updated":"2023-08-17 12:41:08.000000000","message":"Done","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e52bd98abf33348c1f1cf631619159f3e7b9aa9","unresolved":true,"context_lines":[{"line_number":224,"context_line":"            # in BadRequestError. We catch the exception here so that we don\u0027t"},{"line_number":225,"context_line":"            # fail out and try the next available device instead, if available."},{"line_number":226,"context_line":"            except sushy.exceptions.BadRequestError as e:"},{"line_number":227,"context_line":"                e.node_uuid \u003d task.node.uuid"},{"line_number":228,"context_line":"                LOG.warning(\"Inserting virtual media into %(boot_device)s \""},{"line_number":229,"context_line":"                            \"failed for node %(node)s, moving to next vMedia \""},{"line_number":230,"context_line":"                            \"device, if available\","}],"source_content_type":"text/x-python","patch_set":4,"id":"0e43ccce_cd1279ca","line":227,"updated":"2023-08-17 08:08:27.000000000","message":"nit: not useful here","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"0f6074cafa4bb368c1e1ce74439c70a26dcf4e5b","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            # in BadRequestError. We catch the exception here so that we don\u0027t"},{"line_number":225,"context_line":"            # fail out and try the next available device instead, if available."},{"line_number":226,"context_line":"            except sushy.exceptions.BadRequestError as e:"},{"line_number":227,"context_line":"                e.node_uuid \u003d task.node.uuid"},{"line_number":228,"context_line":"                LOG.warning(\"Inserting virtual media into %(boot_device)s \""},{"line_number":229,"context_line":"                            \"failed for node %(node)s, moving to next vMedia \""},{"line_number":230,"context_line":"                            \"device, if available\","}],"source_content_type":"text/x-python","patch_set":4,"id":"7cf99e5c_c28c942a","line":227,"in_reply_to":"0e43ccce_cd1279ca","updated":"2023-08-17 12:41:08.000000000","message":"Done","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e52bd98abf33348c1f1cf631619159f3e7b9aa9","unresolved":true,"context_lines":[{"line_number":226,"context_line":"            except sushy.exceptions.BadRequestError as e:"},{"line_number":227,"context_line":"                e.node_uuid \u003d task.node.uuid"},{"line_number":228,"context_line":"                LOG.warning(\"Inserting virtual media into %(boot_device)s \""},{"line_number":229,"context_line":"                            \"failed for node %(node)s, moving to next vMedia \""},{"line_number":230,"context_line":"                            \"device, if available\","},{"line_number":231,"context_line":"                            {\u0027node\u0027: task.node.uuid,"},{"line_number":232,"context_line":"                             \u0027boot_device\u0027: boot_device})"}],"source_content_type":"text/x-python","patch_set":4,"id":"61be3c46_5716fc41","line":229,"updated":"2023-08-17 08:08:27.000000000","message":"nit: s/vMedia/virtual media\u0027","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"0f6074cafa4bb368c1e1ce74439c70a26dcf4e5b","unresolved":false,"context_lines":[{"line_number":226,"context_line":"            except sushy.exceptions.BadRequestError as e:"},{"line_number":227,"context_line":"                e.node_uuid \u003d task.node.uuid"},{"line_number":228,"context_line":"                LOG.warning(\"Inserting virtual media into %(boot_device)s \""},{"line_number":229,"context_line":"                            \"failed for node %(node)s, moving to next vMedia \""},{"line_number":230,"context_line":"                            \"device, if available\","},{"line_number":231,"context_line":"                            {\u0027node\u0027: task.node.uuid,"},{"line_number":232,"context_line":"                             \u0027boot_device\u0027: boot_device})"}],"source_content_type":"text/x-python","patch_set":4,"id":"3813c9e6_ef4f3455","line":229,"in_reply_to":"61be3c46_5716fc41","updated":"2023-08-17 12:41:08.000000000","message":"Done","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e52bd98abf33348c1f1cf631619159f3e7b9aa9","unresolved":true,"context_lines":[{"line_number":229,"context_line":"                            \"failed for node %(node)s, moving to next vMedia \""},{"line_number":230,"context_line":"                            \"device, if available\","},{"line_number":231,"context_line":"                            {\u0027node\u0027: task.node.uuid,"},{"line_number":232,"context_line":"                             \u0027boot_device\u0027: boot_device})"},{"line_number":233,"context_line":"                continue"},{"line_number":234,"context_line":"            except sushy.exceptions.ServerSideError as e:"},{"line_number":235,"context_line":"                e.node_uuid \u003d task.node.uuid"}],"source_content_type":"text/x-python","patch_set":4,"id":"cfc03bc6_ce915c89","line":232,"updated":"2023-08-17 08:08:27.000000000","message":"Let\u0027s keep the error message cached to use at line 245","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"0f6074cafa4bb368c1e1ce74439c70a26dcf4e5b","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                            \"failed for node %(node)s, moving to next vMedia \""},{"line_number":230,"context_line":"                            \"device, if available\","},{"line_number":231,"context_line":"                            {\u0027node\u0027: task.node.uuid,"},{"line_number":232,"context_line":"                             \u0027boot_device\u0027: boot_device})"},{"line_number":233,"context_line":"                continue"},{"line_number":234,"context_line":"            except sushy.exceptions.ServerSideError as e:"},{"line_number":235,"context_line":"                e.node_uuid \u003d task.node.uuid"}],"source_content_type":"text/x-python","patch_set":4,"id":"20a0b19e_94ad3734","line":232,"in_reply_to":"cfc03bc6_ce915c89","updated":"2023-08-17 12:41:08.000000000","message":"Done","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6e52bd98abf33348c1f1cf631619159f3e7b9aa9","unresolved":true,"context_lines":[{"line_number":242,"context_line":"                                  \u0027boot_device\u0027: boot_device})"},{"line_number":243,"context_line":"            return"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    raise exception.InvalidParameterValue("},{"line_number":246,"context_line":"        _(\u0027No suitable virtual media device found\u0027))"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d360cd47_007f71ce","line":245,"updated":"2023-08-17 08:08:27.000000000","message":"I\u0027d prefer we distinguish between \"no virtual media at all\" and \"all virtual media raised BadRequest\"","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"0f6074cafa4bb368c1e1ce74439c70a26dcf4e5b","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                                  \u0027boot_device\u0027: boot_device})"},{"line_number":243,"context_line":"            return"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    raise exception.InvalidParameterValue("},{"line_number":246,"context_line":"        _(\u0027No suitable virtual media device found\u0027))"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"70dd71e8_da7df847","line":245,"in_reply_to":"d360cd47_007f71ce","updated":"2023-08-17 12:41:08.000000000","message":"Done","commit_id":"ee849923863920d86e3b09fadf6a3a6605b72640"}]}
