)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ff9cf7de3377630855eae2ec4bb9c92656d149bb","unresolved":false,"context_lines":[{"line_number":11,"context_line":"for virtual media boot. Instead, ironic will build necessary images"},{"line_number":12,"context_line":"out of common kernel/ramdisk pair (though user needs to provide"},{"line_number":13,"context_line":"ESP image)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ifb66524c762ebe30e5c61b0c77ced65a817bbf19"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7faddb67_357fba67","line":14,"updated":"2019-08-22 13:19:58.000000000","message":"Is there a story/task for this?\n\nSeems more like parity and refactoring some minor improvements, to be honest.","commit_id":"fe30b38f35aa8fb1e0dbcf84e7e99f05ca5d5fe2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c0b60f3a1972d10ebb0a049fa0362bcb8997dfab","unresolved":false,"context_lines":[{"line_number":10,"context_line":"does not require user-built deploy/rescue/boot ISO images"},{"line_number":11,"context_line":"for virtual media boot. Instead, ironic will build necessary images"},{"line_number":12,"context_line":"out of common kernel/ramdisk pair (though user needs to provide"},{"line_number":13,"context_line":"ESP image)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ifb66524c762ebe30e5c61b0c77ced65a817bbf19"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_b06e0a2a","line":13,"updated":"2019-08-28 15:29:51.000000000","message":"For a specific hardware type? all hardware types?","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"96a2bb1bb4b2ef791b2e94674e6412e0e4407b30","unresolved":false,"context_lines":[{"line_number":10,"context_line":"does not require user-built deploy/rescue/boot ISO images"},{"line_number":11,"context_line":"for virtual media boot. Instead, ironic will build necessary images"},{"line_number":12,"context_line":"out of common kernel/ramdisk pair (though user needs to provide"},{"line_number":13,"context_line":"ESP image)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ifb66524c762ebe30e5c61b0c77ced65a817bbf19"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_264e446e","line":13,"in_reply_to":"7faddb67_b06e0a2a","updated":"2019-08-29 07:56:24.000000000","message":"For hardware type ilo. I have now mentioned it in commit message.","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c0b60f3a1972d10ebb0a049fa0362bcb8997dfab","unresolved":false,"context_lines":[{"line_number":11,"context_line":"for virtual media boot. Instead, ironic will build necessary images"},{"line_number":12,"context_line":"out of common kernel/ramdisk pair (though user needs to provide"},{"line_number":13,"context_line":"ESP image)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ifb66524c762ebe30e5c61b0c77ced65a817bbf19"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_7062d23f","line":14,"updated":"2019-08-28 15:29:51.000000000","message":"Is there a story/task for this?","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"96a2bb1bb4b2ef791b2e94674e6412e0e4407b30","unresolved":false,"context_lines":[{"line_number":11,"context_line":"for virtual media boot. Instead, ironic will build necessary images"},{"line_number":12,"context_line":"out of common kernel/ramdisk pair (though user needs to provide"},{"line_number":13,"context_line":"ESP image)."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ifb66524c762ebe30e5c61b0c77ced65a817bbf19"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_802280b9","line":14,"in_reply_to":"7faddb67_7062d23f","updated":"2019-08-29 07:56:24.000000000","message":"I have created the story for this but forgot to add in Patch set 2. I have raised Patch set 3 with that.","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8c94c51b27d7d1ac9e3ab680f7743d427970c8c0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     ankit \u003cankit.dhn31@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-12-19 09:09:33 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add iso less virtual media deploy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch enables iso less virtual media boot"},{"line_number":10,"context_line":"for hardware type ilo. This patch does not require"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3fa7e38b_e1711ae1","line":7,"updated":"2019-12-19 15:50:05.000000000","message":"The title and commit message seem not to match the actual changes. The change seems to be to generalize the ISO building for virtual media driver re-use. Which I think is a great enhancement, but we\u0027re going to need to provide that clarity in commit messages and release notes.","commit_id":"60084ff2d682c3a10ed363fe1c8bdb3091b0bfc2"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"4a8fe2748c7ce1f7ae619cc646ca119c4cd4f748","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     ankit \u003cankit.dhn31@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-12-19 09:09:33 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add iso less virtual media deploy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch enables iso less virtual media boot"},{"line_number":10,"context_line":"for hardware type ilo. This patch does not require"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3fa7e38b_f372f3e3","line":7,"in_reply_to":"3fa7e38b_e1711ae1","updated":"2020-01-06 12:19:22.000000000","message":"Done","commit_id":"60084ff2d682c3a10ed363fe1c8bdb3091b0bfc2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8c94c51b27d7d1ac9e3ab680f7743d427970c8c0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch enables iso less virtual media boot"},{"line_number":10,"context_line":"for hardware type ilo. This patch does not require"},{"line_number":11,"context_line":"user-built deploy/rescue/boot ISO images for"},{"line_number":12,"context_line":"virtual media boot. Instead, ironic will build"},{"line_number":13,"context_line":"necessary images out of common kernel/ramdisk pair"},{"line_number":14,"context_line":"(though user needs to provide ESP image)."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ifb66524c762ebe30e5c61b0c77ced65a817bbf19"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3fa7e38b_016d5600","line":13,"range":{"start_line":12,"start_character":29,"end_line":13,"end_character":16},"updated":"2019-12-19 15:50:05.000000000","message":"This needs to be clarified as well. What will, what drivers will. etc.","commit_id":"60084ff2d682c3a10ed363fe1c8bdb3091b0bfc2"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"4a8fe2748c7ce1f7ae619cc646ca119c4cd4f748","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch enables iso less virtual media boot"},{"line_number":10,"context_line":"for hardware type ilo. This patch does not require"},{"line_number":11,"context_line":"user-built deploy/rescue/boot ISO images for"},{"line_number":12,"context_line":"virtual media boot. Instead, ironic will build"},{"line_number":13,"context_line":"necessary images out of common kernel/ramdisk pair"},{"line_number":14,"context_line":"(though user needs to provide ESP image)."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ifb66524c762ebe30e5c61b0c77ced65a817bbf19"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3fa7e38b_1370efd9","line":13,"range":{"start_line":12,"start_character":29,"end_line":13,"end_character":16},"in_reply_to":"3fa7e38b_016d5600","updated":"2020-01-06 12:19:22.000000000","message":"Done","commit_id":"60084ff2d682c3a10ed363fe1c8bdb3091b0bfc2"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ef35a885a6e57e7786323ccf56147a435c040970","unresolved":false,"context_lines":[{"line_number":850,"context_line":"        raise exception.ImageUploadFailed(image_name\u003ddestination,"},{"line_number":851,"context_line":"                                          web_server\u003dCONF.deploy.http_url,"},{"line_number":852,"context_line":"                                          reason\u003dexc)"},{"line_number":853,"context_line":"    os.chmod(image_path, 0o644)"},{"line_number":854,"context_line":"    return image_url"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_97262516","line":853,"range":{"start_line":853,"start_character":0,"end_line":853,"end_character":31},"updated":"2020-04-06 22:26:54.000000000","message":"I\u0027m semi -1 on this because:\n\n1) the ironic-conductor should already be operating at a umask that is acceptable for the files to be accessible as configured by the environment.\n2) There is no reason to actually provide everyone access to the files if the server is configured for a common group. It is not an \"uncommon\" configuration to do this, but regardless explicitly setting a mask to a hardcoded value seems wrong to me.\n\nNote: Since this method is being moved, I guess I can live with it.","commit_id":"e7ac1dceb69c29b9400e6e251d1f7671bdf78e76"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"59fa57df3c2d064c0055b548f18f6910773ce45f","unresolved":false,"context_lines":[{"line_number":850,"context_line":"        raise exception.ImageUploadFailed(image_name\u003ddestination,"},{"line_number":851,"context_line":"                                          web_server\u003dCONF.deploy.http_url,"},{"line_number":852,"context_line":"                                          reason\u003dexc)"},{"line_number":853,"context_line":"    os.chmod(image_path, 0o644)"},{"line_number":854,"context_line":"    return image_url"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_5e3648e9","line":853,"range":{"start_line":853,"start_character":0,"end_line":853,"end_character":31},"in_reply_to":"df33271e_7e39913d","updated":"2020-04-09 05:03:52.000000000","message":"Done","commit_id":"e7ac1dceb69c29b9400e6e251d1f7671bdf78e76"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"59fa57df3c2d064c0055b548f18f6910773ce45f","unresolved":false,"context_lines":[{"line_number":850,"context_line":"        raise exception.ImageUploadFailed(image_name\u003ddestination,"},{"line_number":851,"context_line":"                                          web_server\u003dCONF.deploy.http_url,"},{"line_number":852,"context_line":"                                          reason\u003dexc)"},{"line_number":853,"context_line":"    os.chmod(image_path, 0o644)"},{"line_number":854,"context_line":"    return image_url"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_5adbd4eb","line":853,"range":{"start_line":853,"start_character":0,"end_line":853,"end_character":31},"in_reply_to":"df33271e_97262516","updated":"2020-04-09 05:03:52.000000000","message":"Done","commit_id":"e7ac1dceb69c29b9400e6e251d1f7671bdf78e76"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"9cedacc23151b26d37891b1a2e5f6741f9f228f7","unresolved":false,"context_lines":[{"line_number":850,"context_line":"        raise exception.ImageUploadFailed(image_name\u003ddestination,"},{"line_number":851,"context_line":"                                          web_server\u003dCONF.deploy.http_url,"},{"line_number":852,"context_line":"                                          reason\u003dexc)"},{"line_number":853,"context_line":"    os.chmod(image_path, 0o644)"},{"line_number":854,"context_line":"    return image_url"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_7e39913d","line":853,"range":{"start_line":853,"start_character":0,"end_line":853,"end_character":31},"in_reply_to":"df33271e_97262516","updated":"2020-04-08 06:42:44.000000000","message":"I think we can do away with this.","commit_id":"e7ac1dceb69c29b9400e6e251d1f7671bdf78e76"}],"ironic/drivers/modules/ilo/boot.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ff9cf7de3377630855eae2ec4bb9c92656d149bb","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    \"\"\""},{"line_number":144,"context_line":"    return \"boot-%s\" % node.uuid"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"def _prepare_iso_image(task, kernel_href, ramdisk_href, deploy_iso_href\u003dNone,"},{"line_number":148,"context_line":"                       bootloader_href\u003dNone, root_uuid\u003dNone, params\u003dNone):"},{"line_number":149,"context_line":"    \"\"\"Prepare an ISO to boot the node."}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_95b46e38","line":146,"updated":"2019-08-22 13:19:58.000000000","message":"Is there any reason that we can\u0027t make this common code across the redfish and ilo drivers?","commit_id":"fe30b38f35aa8fb1e0dbcf84e7e99f05ca5d5fe2"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"69e4e99dde1997f8ec488a9856452641ea7b82c2","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    \"\"\""},{"line_number":144,"context_line":"    return \"boot-%s\" % node.uuid"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"def _prepare_iso_image(task, kernel_href, ramdisk_href, deploy_iso_href\u003dNone,"},{"line_number":148,"context_line":"                       bootloader_href\u003dNone, root_uuid\u003dNone, params\u003dNone):"},{"line_number":149,"context_line":"    \"\"\"Prepare an ISO to boot the node."}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_abbb0673","line":146,"in_reply_to":"7faddb67_7b1e59bc","updated":"2019-08-27 12:16:55.000000000","message":"Done","commit_id":"fe30b38f35aa8fb1e0dbcf84e7e99f05ca5d5fe2"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5ebe83e0c2531088f03257405c01ad2548bb94e","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    \"\"\""},{"line_number":144,"context_line":"    return \"boot-%s\" % node.uuid"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"def _prepare_iso_image(task, kernel_href, ramdisk_href, deploy_iso_href\u003dNone,"},{"line_number":148,"context_line":"                       bootloader_href\u003dNone, root_uuid\u003dNone, params\u003dNone):"},{"line_number":149,"context_line":"    \"\"\"Prepare an ISO to boot the node."}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_7b1e59bc","line":146,"in_reply_to":"7faddb67_95b46e38","updated":"2019-08-26 06:40:16.000000000","message":"+1","commit_id":"fe30b38f35aa8fb1e0dbcf84e7e99f05ca5d5fe2"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"69e4e99dde1997f8ec488a9856452641ea7b82c2","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    \"\"\""},{"line_number":144,"context_line":"    return \"boot-%s\" % node.uuid"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"def _prepare_iso_image(task, kernel_href, ramdisk_href, deploy_iso_href\u003dNone,"},{"line_number":148,"context_line":"                       bootloader_href\u003dNone, root_uuid\u003dNone, params\u003dNone):"},{"line_number":149,"context_line":"    \"\"\"Prepare an ISO to boot the node."}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_0b8b3ac0","line":146,"in_reply_to":"7faddb67_95b46e38","updated":"2019-08-27 12:16:55.000000000","message":"Done","commit_id":"fe30b38f35aa8fb1e0dbcf84e7e99f05ca5d5fe2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c0b60f3a1972d10ebb0a049fa0362bcb8997dfab","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                        \"Required.\")"},{"line_number":52,"context_line":"}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"DEPLOY_PARTITION_PROPERTIES \u003d {"},{"line_number":55,"context_line":"    \u0027deploy_kernel\u0027: _(\"URL or Glance UUID of the deployment kernel. \""},{"line_number":56,"context_line":"                       \"Required.\"),"},{"line_number":57,"context_line":"    \u0027deploy_ramdisk\u0027: _(\"URL or Glance UUID of the ramdisk that is \""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_30145a4d","line":54,"range":{"start_line":54,"start_character":7,"end_line":54,"end_character":16},"updated":"2019-08-28 15:29:51.000000000","message":"Why rename? These are functionally public constants on the driver interface module, so renaming is less than ideal, and really we should map names around to maintain continuity.","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"96a2bb1bb4b2ef791b2e94674e6412e0e4407b30","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                        \"Required.\")"},{"line_number":52,"context_line":"}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"DEPLOY_PARTITION_PROPERTIES \u003d {"},{"line_number":55,"context_line":"    \u0027deploy_kernel\u0027: _(\"URL or Glance UUID of the deployment kernel. \""},{"line_number":56,"context_line":"                       \"Required.\"),"},{"line_number":57,"context_line":"    \u0027deploy_ramdisk\u0027: _(\"URL or Glance UUID of the ramdisk that is \""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_e346de7b","line":54,"range":{"start_line":54,"start_character":7,"end_line":54,"end_character":16},"in_reply_to":"7faddb67_30145a4d","updated":"2019-08-29 07:56:24.000000000","message":"I didn\u0027t use REQUIRED_PROPERTIES because now user can either pass ilo_deploy_iso or (deploy_kernel and deploy_ramdisk). So there is no mandatory parameter.","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c0b60f3a1972d10ebb0a049fa0362bcb8997dfab","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                    \"boot from partition images.\")"},{"line_number":67,"context_line":"}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"RESCUE_ISO_PROPERTIES \u003d {"},{"line_number":70,"context_line":"    \u0027ilo_rescue_iso\u0027: _(\"UUID (from Glance) of the rescue ISO. Only \""},{"line_number":71,"context_line":"                        \"required if rescue mode is being used and ironic is \""},{"line_number":72,"context_line":"                        \"managing booting the rescue ramdisk.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_cb3d17bd","line":69,"updated":"2019-08-28 15:29:51.000000000","message":"makes sense to split apart I guess.","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c0b60f3a1972d10ebb0a049fa0362bcb8997dfab","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                        \"managing booting the rescue ramdisk.\")"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"RESCUE_PARTITION_PROPERTIES \u003d {"},{"line_number":76,"context_line":"    \u0027rescue_kernel\u0027: _(\"URL or Glance UUID of the rescue kernel. \""},{"line_number":77,"context_line":"                       \"Required.\"),"},{"line_number":78,"context_line":"    \u0027rescue_ramdisk\u0027: _(\"URL or Glance UUID of the ramdisk that is \""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_0b548ffd","line":75,"range":{"start_line":75,"start_character":7,"end_line":75,"end_character":16},"updated":"2019-08-28 15:29:51.000000000","message":"Also, these aren\u0027t really partitions, these are ramdisk parameters.","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"96a2bb1bb4b2ef791b2e94674e6412e0e4407b30","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                        \"managing booting the rescue ramdisk.\")"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"RESCUE_PARTITION_PROPERTIES \u003d {"},{"line_number":76,"context_line":"    \u0027rescue_kernel\u0027: _(\"URL or Glance UUID of the rescue kernel. \""},{"line_number":77,"context_line":"                       \"Required.\"),"},{"line_number":78,"context_line":"    \u0027rescue_ramdisk\u0027: _(\"URL or Glance UUID of the ramdisk that is \""}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_83860aba","line":75,"range":{"start_line":75,"start_character":7,"end_line":75,"end_character":16},"in_reply_to":"7faddb67_0b548ffd","updated":"2019-08-29 07:56:24.000000000","message":"Done","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5903f7ae0409f4da13d0652e4435993f03a631e2","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            d_info \u003d {k: getattr(CONF.conductor, k)"},{"line_number":119,"context_line":"                      for k in params_to_check}"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    elif mode \u003d\u003d \u0027rescue\u0027:"},{"line_number":122,"context_line":"        d_info[\u0027ilo_rescue_iso\u0027] \u003d info.get(\u0027ilo_rescue_iso\u0027)"},{"line_number":123,"context_line":"    else:"},{"line_number":124,"context_line":"        d_info[\u0027ilo_deploy_iso\u0027] \u003d info.get(\u0027ilo_deploy_iso\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    error_msg \u003d (_(\"Error validating iLO virtual media for %(mode)s. \""},{"line_number":127,"context_line":"                   \"Either \u0027ilo_%(mode)s_iso\u0027 is missing or some \""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_aeefd8af","line":124,"range":{"start_line":121,"start_character":4,"end_line":124,"end_character":61},"updated":"2019-11-06 03:04:58.000000000","message":"These checks can move to top at L108. If no iso is provided we can use kernel/ramdisk to create iso.","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"b46ff22a31ebac084ae505e3af1b672500579d59","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            d_info \u003d {k: getattr(CONF.conductor, k)"},{"line_number":119,"context_line":"                      for k in params_to_check}"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    elif mode \u003d\u003d \u0027rescue\u0027:"},{"line_number":122,"context_line":"        d_info[\u0027ilo_rescue_iso\u0027] \u003d info.get(\u0027ilo_rescue_iso\u0027)"},{"line_number":123,"context_line":"    else:"},{"line_number":124,"context_line":"        d_info[\u0027ilo_deploy_iso\u0027] \u003d info.get(\u0027ilo_deploy_iso\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    error_msg \u003d (_(\"Error validating iLO virtual media for %(mode)s. \""},{"line_number":127,"context_line":"                   \"Either \u0027ilo_%(mode)s_iso\u0027 is missing or some \""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_d2ecfcf5","line":124,"range":{"start_line":121,"start_character":4,"end_line":124,"end_character":61},"in_reply_to":"3fa7e38b_aeefd8af","updated":"2019-12-03 08:09:37.000000000","message":"Done","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5903f7ae0409f4da13d0652e4435993f03a631e2","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        d_info[\u0027ilo_deploy_iso\u0027] \u003d info.get(\u0027ilo_deploy_iso\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    error_msg \u003d (_(\"Error validating iLO virtual media for %(mode)s. \""},{"line_number":127,"context_line":"                   \"Either \u0027ilo_%(mode)s_iso\u0027 is missing or some \""},{"line_number":128,"context_line":"                   \"parameters were missing in node\u0027s \""},{"line_number":129,"context_line":"                   \"driver_info.\") % {\u0027mode\u0027: mode})"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_2e31a85a","line":127,"range":{"start_line":127,"start_character":57,"end_line":127,"end_character":59},"updated":"2019-11-06 03:04:58.000000000","message":"Also it can indicate that DEPLOY_RAMDISK_PROPERTIES or RESCUE_RAMDISK_PROPERTIES are missing.","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"b46ff22a31ebac084ae505e3af1b672500579d59","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        d_info[\u0027ilo_deploy_iso\u0027] \u003d info.get(\u0027ilo_deploy_iso\u0027)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    error_msg \u003d (_(\"Error validating iLO virtual media for %(mode)s. \""},{"line_number":127,"context_line":"                   \"Either \u0027ilo_%(mode)s_iso\u0027 is missing or some \""},{"line_number":128,"context_line":"                   \"parameters were missing in node\u0027s \""},{"line_number":129,"context_line":"                   \"driver_info.\") % {\u0027mode\u0027: mode})"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_d2c5dc5d","line":127,"range":{"start_line":127,"start_character":57,"end_line":127,"end_character":59},"in_reply_to":"3fa7e38b_2e31a85a","updated":"2019-12-03 08:09:37.000000000","message":"Done","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"}],"ironic/drivers/modules/ilo/common.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ef35a885a6e57e7786323ccf56147a435c040970","unresolved":false,"context_lines":[{"line_number":115,"context_line":"POST_FINISHEDPOST_STATE \u003d \"FinishedPost\""},{"line_number":116,"context_line":"\"\"\" Node is in FinishedPost post state.\"\"\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"def remove_image_from_web_server(object_name):"},{"line_number":120,"context_line":"    \"\"\"Removes the given image from the configured web server."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_57d01dca","line":118,"updated":"2020-04-06 22:26:54.000000000","message":"Please map the copy_image_file_to_webserver to the new location and add a note for removal later.","commit_id":"e7ac1dceb69c29b9400e6e251d1f7671bdf78e76"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"9cedacc23151b26d37891b1a2e5f6741f9f228f7","unresolved":false,"context_lines":[{"line_number":115,"context_line":"POST_FINISHEDPOST_STATE \u003d \"FinishedPost\""},{"line_number":116,"context_line":"\"\"\" Node is in FinishedPost post state.\"\"\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"def remove_image_from_web_server(object_name):"},{"line_number":120,"context_line":"    \"\"\"Removes the given image from the configured web server."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_5e35ad45","line":118,"in_reply_to":"df33271e_57d01dca","updated":"2020-04-08 06:42:44.000000000","message":"+1","commit_id":"e7ac1dceb69c29b9400e6e251d1f7671bdf78e76"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"59fa57df3c2d064c0055b548f18f6910773ce45f","unresolved":false,"context_lines":[{"line_number":115,"context_line":"POST_FINISHEDPOST_STATE \u003d \"FinishedPost\""},{"line_number":116,"context_line":"\"\"\" Node is in FinishedPost post state.\"\"\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"def remove_image_from_web_server(object_name):"},{"line_number":120,"context_line":"    \"\"\"Removes the given image from the configured web server."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_5ad114fb","line":118,"in_reply_to":"df33271e_57d01dca","updated":"2020-04-09 05:03:52.000000000","message":"Done","commit_id":"e7ac1dceb69c29b9400e6e251d1f7671bdf78e76"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"59fa57df3c2d064c0055b548f18f6910773ce45f","unresolved":false,"context_lines":[{"line_number":115,"context_line":"POST_FINISHEDPOST_STATE \u003d \"FinishedPost\""},{"line_number":116,"context_line":"\"\"\" Node is in FinishedPost post state.\"\"\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"def remove_image_from_web_server(object_name):"},{"line_number":120,"context_line":"    \"\"\"Removes the given image from the configured web server."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_3aced059","line":118,"in_reply_to":"df33271e_5e35ad45","updated":"2020-04-09 05:03:52.000000000","message":"Done","commit_id":"e7ac1dceb69c29b9400e6e251d1f7671bdf78e76"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"a185fd33d63e7f425da1faded4d1d5388fef6fb2","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    :returns: image url after the source image is uploaded."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    \"\"\""},{"line_number":136,"context_line":"    LOG.warning("},{"line_number":137,"context_line":"        \u0027This method is obsolete and will be removed in next release. \u0027"},{"line_number":138,"context_line":"        \u0027Please use deploy_utils.copy_image_to_web_server() instead.\u0027)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    return deploy_utils.copy_image_to_web_server(source_file_path,"},{"line_number":141,"context_line":"                                                 destination)"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f4c43b2_177d23b1","line":138,"range":{"start_line":136,"start_character":8,"end_line":138,"end_character":70},"updated":"2020-04-13 08:58:47.000000000","message":"Should we capture this in release notes as well?","commit_id":"c4d9984c51b15680ab4bfe38764942278ece5e1f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"68a0b03c6e27172ee8d471770dcad9172d2dff26","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    :returns: image url after the source image is uploaded."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    \"\"\""},{"line_number":136,"context_line":"    LOG.warning("},{"line_number":137,"context_line":"        \u0027This method is obsolete and will be removed in next release. \u0027"},{"line_number":138,"context_line":"        \u0027Please use deploy_utils.copy_image_to_web_server() instead.\u0027)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    return deploy_utils.copy_image_to_web_server(source_file_path,"},{"line_number":141,"context_line":"                                                 destination)"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f4c43b2_4818acd2","line":138,"range":{"start_line":136,"start_character":8,"end_line":138,"end_character":70},"in_reply_to":"3f4c43b2_177d23b1","updated":"2020-04-16 23:57:41.000000000","message":"Perhaps, but I suspect we can live without a reno since the renos are really intended for the operator.","commit_id":"c4d9984c51b15680ab4bfe38764942278ece5e1f"}],"ironic/drivers/modules/redfish/boot.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"53f94e634d4de65e7509b2e31052393c2ee4d689","unresolved":false,"context_lines":[{"line_number":600,"context_line":"        mode \u003d deploy_utils.rescue_or_deploy_mode(node)"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"        iso_ref \u003d virtual_media_base.prepare_deploy_iso(task, ramdisk_params,"},{"line_number":603,"context_line":"                                                        mode, d_info)"},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"        self._eject_vmedia(task, sushy.VIRTUAL_MEDIA_CD)"},{"line_number":606,"context_line":"        self._insert_vmedia(task, iso_ref, sushy.VIRTUAL_MEDIA_CD)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_96a72652","line":603,"updated":"2020-01-20 14:24:19.000000000","message":"So something seems to start going sideways here. The CI job that covers this code path fails.\n\n    [None req-6ebed2b8-58b7-4b51-870b-aed09e6c1b3c None None] Asynchronous exception: Node failed to deploy. Exception: Failed to prepare instance for booting for node 1e7e74ec-82c6-4f84-885c-ff481d114998: ironic.common.exception.InstanceDeployFailure: Failed to prepare instance for booting\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor Traceback (most recent call last):\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/drivers/modules/agent_base_vendor.py\", line 780, in prepare_instance_to_boot\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     task.driver.boot.prepare_instance(task)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/drivers/modules/redfish/boot.py\", line 694, in prepare_instance\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     iso_ref \u003d self._prepare_boot_iso(task, **params)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/drivers/modules/redfish/boot.py\", line 456, in _prepare_boot_iso\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     root_uuid\u003droot_uuid)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/drivers/modules/virtual_media_base.py\", line 91, in prepare_iso_image\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     boot_mode\u003dboot_mode)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/common/images.py\", line 497, in create_boot_iso\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     kernel_params\u003dparams)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/common/images.py\", line 266, in create_isolinux_image_for_uefi\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     _mount_deploy_iso(deploy_iso, mountdir))\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/common/images.py\", line 579, in _mount_deploy_iso\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     raise exception.ImageCreationFailed(image_type\u003d\u0027iso\u0027, error\u003derror)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor ironic.common.exception.ImageCreationFailed: Creating iso image failed: Deploy iso didn\u0027t contain efiboot.img or grub.cfg\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor \nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor During handling of the above exception, another exception occurred:\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor \nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor Traceback (most recent call last):\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/drivers/modules/agent_base_vendor.py\", line 389, in heartbeat\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     self.continue_deploy(task)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/usr/local/lib/python3.6/dist-packages/ironic_lib/metrics.py\", line 59, in wrapped\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     result \u003d f(*args, **kwargs)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/conductor/task_manager.py\", line 148, in wrapper\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     return f(*args, **kwargs)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/drivers/modules/iscsi_deploy.py\", line 361, in continue_deploy\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     prep_boot_part_uuid\u003dprep_boot_part_uuid)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/usr/local/lib/python3.6/dist-packages/ironic_lib/metrics.py\", line 59, in wrapped\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     result \u003d f(*args, **kwargs)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/drivers/modules/agent_base_vendor.py\", line 787, in prepare_instance_to_boot\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     log_and_raise_deployment_error(task, msg, exc\u003de)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/usr/local/lib/python3.6/dist-packages/ironic_lib/metrics.py\", line 59, in wrapped\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     result \u003d f(*args, **kwargs)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor   File \"/opt/stack/ironic/ironic/drivers/modules/agent_base_vendor.py\", line 227, in log_and_raise_deployment_error\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor     raise exception.InstanceDeployFailure(msg)\nJan 18 18:41:38.745612 ubuntu-bionic-vexxhost-sjc1-0013961800 ironic-conductor[11172]: ERROR ironic.drivers.modules.agent_base_vendor ironic.common.exception.InstanceDeployFailure: Failed to prepare instance for booting","commit_id":"701e778d3c7a5a3a9fe78262fa8bca027eaf32db"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"53f94e634d4de65e7509b2e31052393c2ee4d689","unresolved":false,"context_lines":[{"line_number":600,"context_line":"        mode \u003d deploy_utils.rescue_or_deploy_mode(node)"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"        iso_ref \u003d virtual_media_base.prepare_deploy_iso(task, ramdisk_params,"},{"line_number":603,"context_line":"                                                        mode, d_info)"},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"        self._eject_vmedia(task, sushy.VIRTUAL_MEDIA_CD)"},{"line_number":606,"context_line":"        self._insert_vmedia(task, iso_ref, sushy.VIRTUAL_MEDIA_CD)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_f62bfa97","line":603,"range":{"start_line":603,"start_character":62,"end_line":603,"end_character":69},"updated":"2020-01-20 14:24:19.000000000","message":"Why pass d_info? It seems to be read by the method just to determine if config_via_floppy (which I\u0027d kind of like to see removed anyway) is set. The prepare_iso_deploy method could just as easily call since the task is passed to it.","commit_id":"701e778d3c7a5a3a9fe78262fa8bca027eaf32db"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ef35a885a6e57e7786323ccf56147a435c040970","unresolved":false,"context_lines":[{"line_number":479,"context_line":""},{"line_number":480,"context_line":"            iso_object_name \u003d cls._get_iso_image_name(task.node)"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"            image_url \u003d cls._publish_image(boot_iso_tmp_file, iso_object_name)"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        LOG.debug(\"Created ISO %(name)s in Swift for node %(node)s, exposed \""},{"line_number":485,"context_line":"                  \"as temporary URL %(url)s\", {\u0027node\u0027: task.node.uuid,"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_f7c171e6","side":"PARENT","line":482,"updated":"2020-04-06 22:26:54.000000000","message":"Do we even still need _publish_image?","commit_id":"9cfdd6a0d9a711e376a506902a80e1326a325c9e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ef35a885a6e57e7786323ccf56147a435c040970","unresolved":false,"context_lines":[{"line_number":246,"context_line":"        return urlparse.urlunparse(parsed_url)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    @classmethod"},{"line_number":249,"context_line":"    def _publish_image(cls, image_file, object_name):"},{"line_number":250,"context_line":"        \"\"\"Make image file downloadable."},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        Depending on ironic settings, pushes given file into Swift or copies"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_37bc7968","line":249,"updated":"2020-04-06 22:26:54.000000000","message":"I see we still use this for the \"floppy\" functionality :(","commit_id":"e7ac1dceb69c29b9400e6e251d1f7671bdf78e76"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8052b7fcbc2dc0221cc648a1929029d111673714","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from ironic_lib import utils as ironic_utils"},{"line_number":22,"context_line":"from oslo_log import log"},{"line_number":23,"context_line":"from oslo_serialization import base64"},{"line_number":24,"context_line":"from oslo_utils import importutils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from ironic.common import boot_devices"}],"source_content_type":"text/x-python","patch_set":15,"id":"df33271e_7c583930","line":23,"updated":"2020-04-10 10:35:04.000000000","message":"pep8: F401 \u0027oslo_serialization.base64\u0027 imported but unused","commit_id":"50b0d626037588b9dbf00ac1f31e4c7b28d09b7c"}],"ironic/drivers/modules/virtual_media_base.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c0b60f3a1972d10ebb0a049fa0362bcb8997dfab","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 Hewlett Packard Enterprise Development LP."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_4c04cf7e","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2019-08-28 15:29:51.000000000","message":"2019 or just strip the line completely. The corporate agreements with the foundation includes a rights assignment, so the copyright line is... semi-pointless I think.","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"96a2bb1bb4b2ef791b2e94674e6412e0e4407b30","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 Hewlett Packard Enterprise Development LP."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_239636f1","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"7faddb67_4c04cf7e","updated":"2019-08-29 07:56:24.000000000","message":"Done","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5903f7ae0409f4da13d0652e4435993f03a631e2","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        i_info \u003d task.node.instance_info"},{"line_number":68,"context_line":"        kernel_params \u003d \"root\u003d/dev/ram0 text \""},{"line_number":69,"context_line":"        kernel_params +\u003d i_info.get(\"ramdisk_kernel_arguments\", \"\")"},{"line_number":70,"context_line":"    elif task.node.driver \u003d\u003d \u0027redfish\u0027:"},{"line_number":71,"context_line":"        kernel_params \u003d CONF.redfish.kernel_append_params"},{"line_number":72,"context_line":"    else:"},{"line_number":73,"context_line":"        kernel_params \u003d CONF.pxe.pxe_append_params"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    if params:"},{"line_number":76,"context_line":"        kernel_params \u003d \u0027 \u0027.join("}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_4e0f4488","line":73,"range":{"start_line":70,"start_character":4,"end_line":73,"end_character":50},"updated":"2019-11-06 03:04:58.000000000","message":"May this should be handled as additional argument to this method instead of adding driver checks.","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"865af03aef51b421f27f3a80aa82659d07697f2a","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        i_info \u003d task.node.instance_info"},{"line_number":68,"context_line":"        kernel_params \u003d \"root\u003d/dev/ram0 text \""},{"line_number":69,"context_line":"        kernel_params +\u003d i_info.get(\"ramdisk_kernel_arguments\", \"\")"},{"line_number":70,"context_line":"    elif task.node.driver \u003d\u003d \u0027redfish\u0027:"},{"line_number":71,"context_line":"        kernel_params \u003d CONF.redfish.kernel_append_params"},{"line_number":72,"context_line":"    else:"},{"line_number":73,"context_line":"        kernel_params \u003d CONF.pxe.pxe_append_params"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    if params:"},{"line_number":76,"context_line":"        kernel_params \u003d \u0027 \u0027.join("}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_ce817e4f","line":73,"range":{"start_line":70,"start_character":4,"end_line":73,"end_character":50},"in_reply_to":"3fa7e38b_4e0f4488","updated":"2019-11-15 13:16:54.000000000","message":"+1\nAlternatively, may be the caller can pass proper CONF params via existing  `params` argument?","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"b46ff22a31ebac084ae505e3af1b672500579d59","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        i_info \u003d task.node.instance_info"},{"line_number":68,"context_line":"        kernel_params \u003d \"root\u003d/dev/ram0 text \""},{"line_number":69,"context_line":"        kernel_params +\u003d i_info.get(\"ramdisk_kernel_arguments\", \"\")"},{"line_number":70,"context_line":"    elif task.node.driver \u003d\u003d \u0027redfish\u0027:"},{"line_number":71,"context_line":"        kernel_params \u003d CONF.redfish.kernel_append_params"},{"line_number":72,"context_line":"    else:"},{"line_number":73,"context_line":"        kernel_params \u003d CONF.pxe.pxe_append_params"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    if params:"},{"line_number":76,"context_line":"        kernel_params \u003d \u0027 \u0027.join("}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_80594efe","line":73,"range":{"start_line":70,"start_character":4,"end_line":73,"end_character":50},"in_reply_to":"3fa7e38b_4e0f4488","updated":"2019-12-03 08:09:37.000000000","message":"Done","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"b46ff22a31ebac084ae505e3af1b672500579d59","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        i_info \u003d task.node.instance_info"},{"line_number":68,"context_line":"        kernel_params \u003d \"root\u003d/dev/ram0 text \""},{"line_number":69,"context_line":"        kernel_params +\u003d i_info.get(\"ramdisk_kernel_arguments\", \"\")"},{"line_number":70,"context_line":"    elif task.node.driver \u003d\u003d \u0027redfish\u0027:"},{"line_number":71,"context_line":"        kernel_params \u003d CONF.redfish.kernel_append_params"},{"line_number":72,"context_line":"    else:"},{"line_number":73,"context_line":"        kernel_params \u003d CONF.pxe.pxe_append_params"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    if params:"},{"line_number":76,"context_line":"        kernel_params \u003d \u0027 \u0027.join("}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_20709a73","line":73,"range":{"start_line":70,"start_character":4,"end_line":73,"end_character":50},"in_reply_to":"3fa7e38b_ce817e4f","updated":"2019-12-03 08:09:37.000000000","message":"Done","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5903f7ae0409f4da13d0652e4435993f03a631e2","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        iso_object_name \u003d get_iso_image_name(task.node)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if CONF.ilo.use_web_server_for_images:"},{"line_number":106,"context_line":"            boot_iso_url \u003d ("},{"line_number":107,"context_line":"                ilo_common.copy_image_to_web_server(boot_iso_tmp_file,"},{"line_number":108,"context_line":"                                                    iso_object_name))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_0e4f0cbf","line":105,"range":{"start_line":105,"start_character":8,"end_line":105,"end_character":46},"updated":"2019-11-06 03:04:58.000000000","message":"Driver specific checks should not be added here. Better to handle this as part of method arguments method.","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"865af03aef51b421f27f3a80aa82659d07697f2a","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        iso_object_name \u003d get_iso_image_name(task.node)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if CONF.ilo.use_web_server_for_images:"},{"line_number":106,"context_line":"            boot_iso_url \u003d ("},{"line_number":107,"context_line":"                ilo_common.copy_image_to_web_server(boot_iso_tmp_file,"},{"line_number":108,"context_line":"                                                    iso_object_name))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_aecc42bb","line":105,"range":{"start_line":105,"start_character":8,"end_line":105,"end_character":46},"in_reply_to":"3fa7e38b_0e4f0cbf","updated":"2019-11-15 13:16:54.000000000","message":"++++\nOtherwise we grow a spaghetti monster out of this code!","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"b46ff22a31ebac084ae505e3af1b672500579d59","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        iso_object_name \u003d get_iso_image_name(task.node)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if CONF.ilo.use_web_server_for_images:"},{"line_number":106,"context_line":"            boot_iso_url \u003d ("},{"line_number":107,"context_line":"                ilo_common.copy_image_to_web_server(boot_iso_tmp_file,"},{"line_number":108,"context_line":"                                                    iso_object_name))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_75b172e0","line":105,"range":{"start_line":105,"start_character":8,"end_line":105,"end_character":46},"in_reply_to":"3fa7e38b_0e4f0cbf","updated":"2019-12-03 08:09:37.000000000","message":"Done","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"b46ff22a31ebac084ae505e3af1b672500579d59","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        iso_object_name \u003d get_iso_image_name(task.node)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if CONF.ilo.use_web_server_for_images:"},{"line_number":106,"context_line":"            boot_iso_url \u003d ("},{"line_number":107,"context_line":"                ilo_common.copy_image_to_web_server(boot_iso_tmp_file,"},{"line_number":108,"context_line":"                                                    iso_object_name))"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_15c83e54","line":105,"range":{"start_line":105,"start_character":8,"end_line":105,"end_character":46},"in_reply_to":"3fa7e38b_aecc42bb","updated":"2019-12-03 08:09:37.000000000","message":"Done","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5903f7ae0409f4da13d0652e4435993f03a631e2","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                      {\u0027boot_iso\u0027: boot_iso_url, \u0027node\u0027: task.node.uuid})"},{"line_number":115,"context_line":"            return boot_iso_url"},{"line_number":116,"context_line":"        else:"},{"line_number":117,"context_line":"            container \u003d CONF.ilo.swift_ilo_container"},{"line_number":118,"context_line":"            swift_api \u003d swift.SwiftAPI()"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"            object_headers \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_6ec32008","line":117,"range":{"start_line":117,"start_character":12,"end_line":117,"end_character":52},"updated":"2019-11-06 03:04:58.000000000","message":"ditto","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"b46ff22a31ebac084ae505e3af1b672500579d59","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                      {\u0027boot_iso\u0027: boot_iso_url, \u0027node\u0027: task.node.uuid})"},{"line_number":115,"context_line":"            return boot_iso_url"},{"line_number":116,"context_line":"        else:"},{"line_number":117,"context_line":"            container \u003d CONF.ilo.swift_ilo_container"},{"line_number":118,"context_line":"            swift_api \u003d swift.SwiftAPI()"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"            object_headers \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_95750e03","line":117,"range":{"start_line":117,"start_character":12,"end_line":117,"end_character":52},"in_reply_to":"3fa7e38b_6ec32008","updated":"2019-12-03 08:09:37.000000000","message":"Done","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5903f7ae0409f4da13d0652e4435993f03a631e2","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            swift_api \u003d swift.SwiftAPI()"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"            object_headers \u003d None"},{"line_number":121,"context_line":"            if task.node.driver \u003d\u003d \u0027redfish\u0027:"},{"line_number":122,"context_line":"                timeout \u003d CONF.redfish.swift_object_expiry_timeout"},{"line_number":123,"context_line":"                object_headers \u003d {\u0027X-Delete-After\u0027: str(timeout)}"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"            swift_api.create_object(container, iso_object_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_8ec8dc21","line":122,"range":{"start_line":121,"start_character":12,"end_line":122,"end_character":66},"updated":"2019-11-06 03:04:58.000000000","message":"ditto","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"b46ff22a31ebac084ae505e3af1b672500579d59","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            swift_api \u003d swift.SwiftAPI()"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"            object_headers \u003d None"},{"line_number":121,"context_line":"            if task.node.driver \u003d\u003d \u0027redfish\u0027:"},{"line_number":122,"context_line":"                timeout \u003d CONF.redfish.swift_object_expiry_timeout"},{"line_number":123,"context_line":"                object_headers \u003d {\u0027X-Delete-After\u0027: str(timeout)}"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"            swift_api.create_object(container, iso_object_name,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_32c8f04b","line":122,"range":{"start_line":121,"start_character":12,"end_line":122,"end_character":66},"in_reply_to":"3fa7e38b_8ec8dc21","updated":"2019-12-03 08:09:37.000000000","message":"Done","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5903f7ae0409f4da13d0652e4435993f03a631e2","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            LOG.debug(\"Created ISO %(name)s in Swift for node %(node)s\","},{"line_number":130,"context_line":"                      {\u0027node\u0027: task.node.uuid, \u0027name\u0027: iso_object_name})"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"            if task.node.driver \u003d\u003d \u0027redfish\u0027:"},{"line_number":133,"context_line":"                boot_iso_url \u003d swift_api.get_temp_url("},{"line_number":134,"context_line":"                    container, iso_object_name, timeout)"},{"line_number":135,"context_line":"                return boot_iso_url"},{"line_number":136,"context_line":"            else:"},{"line_number":137,"context_line":"                return \u0027swift:%s\u0027 % iso_object_name"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def prepare_deploy_iso(task, params, mode, driver_info):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_aef9184f","line":137,"range":{"start_line":132,"start_character":12,"end_line":137,"end_character":51},"updated":"2019-11-06 03:04:58.000000000","message":"Can this return the tempurl. I think iLO drivers also need HTTP URL to attach to vmedia.","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"b46ff22a31ebac084ae505e3af1b672500579d59","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            LOG.debug(\"Created ISO %(name)s in Swift for node %(node)s\","},{"line_number":130,"context_line":"                      {\u0027node\u0027: task.node.uuid, \u0027name\u0027: iso_object_name})"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"            if task.node.driver \u003d\u003d \u0027redfish\u0027:"},{"line_number":133,"context_line":"                boot_iso_url \u003d swift_api.get_temp_url("},{"line_number":134,"context_line":"                    container, iso_object_name, timeout)"},{"line_number":135,"context_line":"                return boot_iso_url"},{"line_number":136,"context_line":"            else:"},{"line_number":137,"context_line":"                return \u0027swift:%s\u0027 % iso_object_name"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"def prepare_deploy_iso(task, params, mode, driver_info):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_12913454","line":137,"range":{"start_line":132,"start_character":12,"end_line":137,"end_character":51},"in_reply_to":"3fa7e38b_aef9184f","updated":"2019-12-03 08:09:37.000000000","message":"It is being handled by prepare_ramdisk.\nhttps://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/modules/ilo/boot.py#L503","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"53f94e634d4de65e7509b2e31052393c2ee4d689","unresolved":false,"context_lines":[{"line_number":37,"context_line":"def prepare_iso_image(task, kernel_href, ramdisk_href, deploy_iso_href\u003dNone,"},{"line_number":38,"context_line":"                      bootloader_href\u003dNone, root_uuid\u003dNone,"},{"line_number":39,"context_line":"                      kernel_params\u003dNone, timeout\u003dNone,"},{"line_number":40,"context_line":"                      use_web_server\u003dCONF.ilo.use_web_server_for_images,"},{"line_number":41,"context_line":"                      container\u003dCONF.ilo.swift_ilo_container):"},{"line_number":42,"context_line":"    \"\"\"Prepare an ISO to boot the node."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        Build bootable ISO out of `kernel_href` and `ramdisk_href` (and"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_56fd2e07","line":41,"range":{"start_line":40,"start_character":37,"end_line":41,"end_character":62},"updated":"2020-01-20 14:24:19.000000000","message":"Please either use generic driver-independent configuration parameters, OR create a method that checks the various places this is set to return the default.","commit_id":"701e778d3c7a5a3a9fe78262fa8bca027eaf32db"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"9d6216bf96fffd039d33d5c0065426965a85ad8a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"def prepare_iso_image(task, kernel_href, ramdisk_href, deploy_iso_href\u003dNone,"},{"line_number":38,"context_line":"                      bootloader_href\u003dNone, root_uuid\u003dNone,"},{"line_number":39,"context_line":"                      kernel_params\u003dNone, timeout\u003dNone,"},{"line_number":40,"context_line":"                      use_web_server\u003dCONF.ilo.use_web_server_for_images,"},{"line_number":41,"context_line":"                      container\u003dCONF.ilo.swift_ilo_container):"},{"line_number":42,"context_line":"    \"\"\"Prepare an ISO to boot the node."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        Build bootable ISO out of `kernel_href` and `ramdisk_href` (and"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_3af7f0d5","line":41,"range":{"start_line":40,"start_character":37,"end_line":41,"end_character":62},"in_reply_to":"3fa7e38b_56fd2e07","updated":"2020-03-31 06:35:48.000000000","message":"Done","commit_id":"701e778d3c7a5a3a9fe78262fa8bca027eaf32db"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"53f94e634d4de65e7509b2e31052393c2ee4d689","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if use_web_server:"},{"line_number":96,"context_line":"            boot_iso_url \u003d ("},{"line_number":97,"context_line":"                ilo_common.copy_image_to_web_server(boot_iso_tmp_file,"},{"line_number":98,"context_line":"                                                    iso_object_name))"},{"line_number":99,"context_line":"            driver_internal_info \u003d task.node.driver_internal_info"},{"line_number":100,"context_line":"            driver_internal_info[\u0027boot_iso_created_in_web_server\u0027] \u003d True"},{"line_number":101,"context_line":"            task.node.driver_internal_info \u003d driver_internal_info"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_91089025","line":98,"range":{"start_line":97,"start_character":16,"end_line":98,"end_character":67},"updated":"2020-01-20 14:24:19.000000000","message":"I\u0027m 95% sure we have common code in ironic that can cover this task. I\u0027d prefer to avoid having to invoke ilo_common in a driver independent piece of code.","commit_id":"701e778d3c7a5a3a9fe78262fa8bca027eaf32db"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"9d6216bf96fffd039d33d5c0065426965a85ad8a","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        if use_web_server:"},{"line_number":96,"context_line":"            boot_iso_url \u003d ("},{"line_number":97,"context_line":"                ilo_common.copy_image_to_web_server(boot_iso_tmp_file,"},{"line_number":98,"context_line":"                                                    iso_object_name))"},{"line_number":99,"context_line":"            driver_internal_info \u003d task.node.driver_internal_info"},{"line_number":100,"context_line":"            driver_internal_info[\u0027boot_iso_created_in_web_server\u0027] \u003d True"},{"line_number":101,"context_line":"            task.node.driver_internal_info \u003d driver_internal_info"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_704fd933","line":98,"range":{"start_line":97,"start_character":16,"end_line":98,"end_character":67},"in_reply_to":"3fa7e38b_91089025","updated":"2020-03-31 06:35:48.000000000","message":"Done","commit_id":"701e778d3c7a5a3a9fe78262fa8bca027eaf32db"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"53f94e634d4de65e7509b2e31052393c2ee4d689","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        :param task: a TaskManager instance containing the node to act on."},{"line_number":138,"context_line":"        :param params: a dictionary containing \u0027parameter name\u0027-\u003e\u0027value\u0027"},{"line_number":139,"context_line":"            mapping to be passed to kernel command line."},{"line_number":140,"context_line":"        :param mode: either \u0027deploy\u0027 or \u0027rescue\u0027."},{"line_number":141,"context_line":"        :returns: bootable ISO HTTP URL."},{"line_number":142,"context_line":"        :raises: MissingParameterValue, if any of the required parameters are"},{"line_number":143,"context_line":"            missing."}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_d6111e5e","line":140,"updated":"2020-01-20 14:24:19.000000000","message":"We\u0027re missing driver_info being documented here. Makes sense to see it here, but it should be documented as a parameter.","commit_id":"701e778d3c7a5a3a9fe78262fa8bca027eaf32db"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"9d6216bf96fffd039d33d5c0065426965a85ad8a","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        :param task: a TaskManager instance containing the node to act on."},{"line_number":138,"context_line":"        :param params: a dictionary containing \u0027parameter name\u0027-\u003e\u0027value\u0027"},{"line_number":139,"context_line":"            mapping to be passed to kernel command line."},{"line_number":140,"context_line":"        :param mode: either \u0027deploy\u0027 or \u0027rescue\u0027."},{"line_number":141,"context_line":"        :returns: bootable ISO HTTP URL."},{"line_number":142,"context_line":"        :raises: MissingParameterValue, if any of the required parameters are"},{"line_number":143,"context_line":"            missing."}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_d69846c1","line":140,"in_reply_to":"3fa7e38b_d6111e5e","updated":"2020-03-31 06:35:48.000000000","message":"Done","commit_id":"701e778d3c7a5a3a9fe78262fa8bca027eaf32db"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"17b297997ed212c2140ec2315976cd3d1b4dcf19","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        :raises: ImageCreationFailed, if creating ISO image failed."},{"line_number":61,"context_line":"    \"\"\""},{"line_number":62,"context_line":"    if not kernel_href or not ramdisk_href:"},{"line_number":63,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":64,"context_line":"                \"Unable to find kernel or ramdisk for \""},{"line_number":65,"context_line":"                \"building ISO for %(node)s\") %"},{"line_number":66,"context_line":"                {\u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_7a7786a1","line":63,"updated":"2020-03-31 22:06:05.000000000","message":"E117 over-indented","commit_id":"f65ffe1ccd1cb62fda9b5414c5f12eb68badf4c3"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"32ff6cfc1b98d2eda17523322421ffaf02010336","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        :raises: ImageCreationFailed, if creating ISO image failed."},{"line_number":61,"context_line":"    \"\"\""},{"line_number":62,"context_line":"    if not kernel_href or not ramdisk_href:"},{"line_number":63,"context_line":"            raise exception.InvalidParameterValue(_("},{"line_number":64,"context_line":"                \"Unable to find kernel or ramdisk for \""},{"line_number":65,"context_line":"                \"building ISO for %(node)s\") %"},{"line_number":66,"context_line":"                {\u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_49d8fa79","line":63,"in_reply_to":"df33271e_7a7786a1","updated":"2020-04-01 09:54:27.000000000","message":"Done","commit_id":"f65ffe1ccd1cb62fda9b5414c5f12eb68badf4c3"}],"releasenotes/notes/add-iso-less-vmedia-ilo-e93002e335cb21e1.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c0b60f3a1972d10ebb0a049fa0362bcb8997dfab","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Add functionality to perform virtual media boot without"},{"line_number":4,"context_line":"    user-built deploy/rescue/boot ISO images. Instead, ironic "},{"line_number":5,"context_line":"    will build necessary images out of common kernel/ramdisk"},{"line_number":6,"context_line":"    pair (though user needs to provide ESP image)."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7faddb67_305c5a7c","line":4,"updated":"2019-08-28 15:29:51.000000000","message":"nit: whitespace at end of line.","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"96a2bb1bb4b2ef791b2e94674e6412e0e4407b30","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Add functionality to perform virtual media boot without"},{"line_number":4,"context_line":"    user-built deploy/rescue/boot ISO images. Instead, ironic "},{"line_number":5,"context_line":"    will build necessary images out of common kernel/ramdisk"},{"line_number":6,"context_line":"    pair (though user needs to provide ESP image)."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7faddb67_c03878ef","line":4,"in_reply_to":"7faddb67_305c5a7c","updated":"2019-08-29 07:56:24.000000000","message":"Done","commit_id":"f202c3e2a5037b64dcb2d3daa757aedb3e3f7c1b"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"865af03aef51b421f27f3a80aa82659d07697f2a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Add functionality to perform virtual media boot without"},{"line_number":4,"context_line":"    user-built deploy/rescue/boot ISO images. Instead, ironic"},{"line_number":5,"context_line":"    will build necessary images out of common kernel/ramdisk"},{"line_number":6,"context_line":"    pair (though user needs to provide ESP image)."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_0e6b1685","line":3,"range":{"start_line":3,"start_character":52,"end_line":3,"end_character":59},"updated":"2019-11-15 13:16:54.000000000","message":"Should we mention that the old way of image passing is still available?","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"b46ff22a31ebac084ae505e3af1b672500579d59","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Add functionality to perform virtual media boot without"},{"line_number":4,"context_line":"    user-built deploy/rescue/boot ISO images. Instead, ironic"},{"line_number":5,"context_line":"    will build necessary images out of common kernel/ramdisk"},{"line_number":6,"context_line":"    pair (though user needs to provide ESP image)."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_8d1df7bf","line":3,"range":{"start_line":3,"start_character":52,"end_line":3,"end_character":59},"in_reply_to":"3fa7e38b_0e6b1685","updated":"2019-12-03 08:09:37.000000000","message":"Done","commit_id":"7359a150cc9bc50d0acec031618318f3399d0091"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8c94c51b27d7d1ac9e3ab680f7743d427970c8c0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Add functionality to perform virtual media boot without"},{"line_number":4,"context_line":"    user-built deploy/rescue/boot ISO images. Instead, ironic"},{"line_number":5,"context_line":"    will build necessary images out of common kernel/ramdisk"},{"line_number":6,"context_line":"    pair (though user needs to provide ESP image)."},{"line_number":7,"context_line":"    User provided deploy/rescue/boot ISO images are"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3fa7e38b_21417264","line":4,"range":{"start_line":3,"start_character":4,"end_line":4,"end_character":45},"updated":"2019-12-19 15:50:05.000000000","message":"The reality of this is that this is a feature for the ilo driver it seems. That should be stated as the redfish driver already has this capability.","commit_id":"60084ff2d682c3a10ed363fe1c8bdb3091b0bfc2"},{"author":{"_account_id":19604,"name":"ankit","email":"ankit.dhn31@gmail.com","username":"ankit"},"change_message_id":"4a8fe2748c7ce1f7ae619cc646ca119c4cd4f748","unresolved":false,"context_lines":[{"line_number":1,"context_line":"features:"},{"line_number":2,"context_line":"  - |"},{"line_number":3,"context_line":"    Add functionality to perform virtual media boot without"},{"line_number":4,"context_line":"    user-built deploy/rescue/boot ISO images. Instead, ironic"},{"line_number":5,"context_line":"    will build necessary images out of common kernel/ramdisk"},{"line_number":6,"context_line":"    pair (though user needs to provide ESP image)."},{"line_number":7,"context_line":"    User provided deploy/rescue/boot ISO images are"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3fa7e38b_8e06f8cc","line":4,"range":{"start_line":3,"start_character":4,"end_line":4,"end_character":45},"in_reply_to":"3fa7e38b_21417264","updated":"2020-01-06 12:19:22.000000000","message":"Done","commit_id":"60084ff2d682c3a10ed363fe1c8bdb3091b0bfc2"}]}
