)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b9c1ed27bf154cc123eef4cab05fc373b84455ac","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Prevent broken partition image UEFI deploys"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Partition images can sometimes contain a /boot folder structure"},{"line_number":10,"context_line":"event he assets for EFI booting on that filesystem. Which is a"},{"line_number":11,"context_line":"good thing. The conundrum is that Ironic does not handle this"},{"line_number":12,"context_line":"properly and potentially replaces the bootloader in this sequence"},{"line_number":13,"context_line":"such that grub2-install is used instead of signed bootloader assets."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"3e5bc3ef_0abf209e","line":10,"updated":"2020-12-17 14:37:29.000000000","message":"nit, grammatical issues.","commit_id":"f9870d58120a493c40493df6ef22662364138c31"}],"ironic_python_agent/extensions/image.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"159d7026ce20c5ae42646b546b27f3706e6f91fb","unresolved":false,"context_lines":[{"line_number":558,"context_line":"            disks \u003d [device]"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        utils.execute(\u0027mount\u0027, root_partition, path)"},{"line_number":561,"context_line":"        if efi_partition_mount_point:"},{"line_number":562,"context_line":"            efi_assets_folder \u003d efi_partition_mount_point + \u0027/EFI\u0027"},{"line_number":563,"context_line":"            if os.path.exists(efi_assets_folder):"},{"line_number":564,"context_line":"                # We appear to have EFI Assets, that need to be preserved"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_292bc681","line":561,"updated":"2020-09-12 11:04:21.000000000","message":"nit: I\u0027d split this new code in a function just to keep stuff more or less readable","commit_id":"603fe6ff8b1d652037ac0f06cd6af40bbfe8a23f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"159d7026ce20c5ae42646b546b27f3706e6f91fb","unresolved":false,"context_lines":[{"line_number":580,"context_line":"                            # life didn\u0027t proceed as we hoped and loading"},{"line_number":581,"context_line":"                            # the efi boot loader using efibootmgr failed."},{"line_number":582,"context_line":"                            # as such re-mount the root partition to path."},{"line_number":583,"context_line":"                            utils.execute(\u0027mount\u0027, root_partition, path)"},{"line_number":584,"context_line":"                    except Exception as e:"},{"line_number":585,"context_line":"                        # Remount the partition and proceed as we were."},{"line_number":586,"context_line":"                        LOG.debug(\u0027Exception encountered while attempting to \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_891e525c","line":583,"updated":"2020-09-12 11:04:21.000000000","message":"If this fails..","commit_id":"603fe6ff8b1d652037ac0f06cd6af40bbfe8a23f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"159d7026ce20c5ae42646b546b27f3706e6f91fb","unresolved":false,"context_lines":[{"line_number":590,"context_line":"                        # to where we were before hand and take the path of"},{"line_number":591,"context_line":"                        # installing the efi boot loader from the distribution"},{"line_number":592,"context_line":"                        # packages in the image."},{"line_number":593,"context_line":"                        utils.execute(\u0027mount\u0027, root_partition, path)"},{"line_number":594,"context_line":"        for fs in BIND_MOUNTS:"},{"line_number":595,"context_line":"            utils.execute(\u0027mount\u0027, \u0027-o\u0027, \u0027bind\u0027, fs, path + fs)"},{"line_number":596,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_69213e9e","line":593,"updated":"2020-09-12 11:04:21.000000000","message":".. it gets called again. Maybe move it outside of the try block and give it its own exception handling?","commit_id":"603fe6ff8b1d652037ac0f06cd6af40bbfe8a23f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"159d7026ce20c5ae42646b546b27f3706e6f91fb","unresolved":false,"context_lines":[{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        # If umounting the binds succeed then we can try to delete it"},{"line_number":729,"context_line":"        if (not efi_preserved"},{"line_number":730,"context_line":"            and _umount_all_partitions(path, path_variable, umount_warn_msg)):"},{"line_number":731,"context_line":"            try:"},{"line_number":732,"context_line":"                utils.execute(\u0027umount\u0027, path, attempts\u003d3, delay_on_retry\u003dTrue)"},{"line_number":733,"context_line":"            except processutils.ProcessExecutionError as e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_c93b2ace","line":730,"updated":"2020-09-12 11:04:21.000000000","message":"nit: insufficient indentation","commit_id":"603fe6ff8b1d652037ac0f06cd6af40bbfe8a23f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"159d7026ce20c5ae42646b546b27f3706e6f91fb","unresolved":false,"context_lines":[{"line_number":755,"context_line":"        except FileNotFoundError:"},{"line_number":756,"context_line":"            LOG.warning(\"efibootmgr is not available in the ramdisk\")"},{"line_number":757,"context_line":"            has_efibootmgr \u003d False"},{"line_number":758,"context_line":"        if has_efibootmgr:"},{"line_number":759,"context_line":"            if _manage_uefi(device,"},{"line_number":760,"context_line":"                            efi_system_part_uuid\u003defi_system_part_uuid):"},{"line_number":761,"context_line":"                return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_a936b6e5","line":758,"updated":"2020-09-12 11:04:21.000000000","message":"nit:\n\n else:\n\n(no need for a variable)","commit_id":"603fe6ff8b1d652037ac0f06cd6af40bbfe8a23f"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"115b69e27c7450090cc3999c8a4d8cba718fbb36","unresolved":false,"context_lines":[{"line_number":736,"context_line":"                                      the assets for the process of"},{"line_number":737,"context_line":"                                      preservation."},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"    :retruns: True if assets have been preserved, Otherwise False."},{"line_number":740,"context_line":"    \"\"\""},{"line_number":741,"context_line":"    efi_assets_folder \u003d efi_partition_mount_point + \u0027/EFI\u0027"},{"line_number":742,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_adc64b67","line":739,"range":{"start_line":739,"start_character":50,"end_line":739,"end_character":59},"updated":"2020-10-06 10:13:49.000000000","message":"nit: otherwise","commit_id":"e88d59ff271adacfb930fe233b28f776a7cf1eac"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"115b69e27c7450090cc3999c8a4d8cba718fbb36","unresolved":false,"context_lines":[{"line_number":748,"context_line":"                                efi_partition_mount_point):"},{"line_number":749,"context_line":"            try:"},{"line_number":750,"context_line":"                utils.execute(\u0027umount\u0027, path)"},{"line_number":751,"context_line":"                # Sinec we have preserved the assets, we should be able"},{"line_number":752,"context_line":"                # to call the _efi_boot_setup method to scan the device"},{"line_number":753,"context_line":"                # and ad loader entries"},{"line_number":754,"context_line":"                efi_preserved \u003d _efi_boot_setup(device, efi_system_part_uuid)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_2da87b8a","line":751,"range":{"start_line":751,"start_character":18,"end_line":751,"end_character":23},"updated":"2020-10-06 10:13:49.000000000","message":"nit: Since","commit_id":"e88d59ff271adacfb930fe233b28f776a7cf1eac"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"115b69e27c7450090cc3999c8a4d8cba718fbb36","unresolved":false,"context_lines":[{"line_number":750,"context_line":"                utils.execute(\u0027umount\u0027, path)"},{"line_number":751,"context_line":"                # Sinec we have preserved the assets, we should be able"},{"line_number":752,"context_line":"                # to call the _efi_boot_setup method to scan the device"},{"line_number":753,"context_line":"                # and ad loader entries"},{"line_number":754,"context_line":"                efi_preserved \u003d _efi_boot_setup(device, efi_system_part_uuid)"},{"line_number":755,"context_line":"                if efi_preserved:"},{"line_number":756,"context_line":"                    # Hey, we seemed to succeed! \\o/"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_0dabf787","line":753,"range":{"start_line":753,"start_character":22,"end_line":753,"end_character":24},"updated":"2020-10-06 10:13:49.000000000","message":"nit: add","commit_id":"e88d59ff271adacfb930fe233b28f776a7cf1eac"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"115b69e27c7450090cc3999c8a4d8cba718fbb36","unresolved":false,"context_lines":[{"line_number":752,"context_line":"                # to call the _efi_boot_setup method to scan the device"},{"line_number":753,"context_line":"                # and ad loader entries"},{"line_number":754,"context_line":"                efi_preserved \u003d _efi_boot_setup(device, efi_system_part_uuid)"},{"line_number":755,"context_line":"                if efi_preserved:"},{"line_number":756,"context_line":"                    # Hey, we seemed to succeed! \\o/"},{"line_number":757,"context_line":"                    # We can exit now."},{"line_number":758,"context_line":"                    return True"},{"line_number":759,"context_line":"                else:"},{"line_number":760,"context_line":"                    return False"},{"line_number":761,"context_line":"            except Exception as e:"},{"line_number":762,"context_line":"                # Remount the partition and proceed as we were."},{"line_number":763,"context_line":"                LOG.debug(\u0027Exception encountered while attempting to \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_6d91d353","line":760,"range":{"start_line":755,"start_character":0,"end_line":760,"end_character":32},"updated":"2020-10-06 10:13:49.000000000","message":"nit: or just \u0027return efi_preserved\u0027","commit_id":"e88d59ff271adacfb930fe233b28f776a7cf1eac"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"198dac8dd32805539810054a424cc9850c7cc881","unresolved":false,"context_lines":[{"line_number":558,"context_line":"            disks \u003d [device]"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        utils.execute(\u0027mount\u0027, root_partition, path)"},{"line_number":561,"context_line":"        if efi_partition_mount_point:"},{"line_number":562,"context_line":"            efi_preserved \u003d _try_preserve_efi_assets("},{"line_number":563,"context_line":"                device, path, efi_system_part_uuid,"},{"line_number":564,"context_line":"                efi_partitions, efi_partition_mount_point)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_ecc2ce53","line":561,"range":{"start_line":561,"start_character":0,"end_line":561,"end_character":37},"updated":"2020-10-09 07:07:37.000000000","message":"IIUC, this will be true for md devices as well (since there are efi_partitions), but it will not do anything in the end (since there there will be no path found). How about\nmaking the detection of partition images more clear here/above and avoid to do a detour for md devices here?\n\nEqually, we do preserve the EFI contents in the md case as well, just at a later stage :-S All this screams \"re-factor me\" :-D","commit_id":"5fc0a1e32761f02dd140476c05637a8c3d901f6e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7e874db7136e239fa1f536ee3005ee8021428854","unresolved":false,"context_lines":[{"line_number":558,"context_line":"            disks \u003d [device]"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"        utils.execute(\u0027mount\u0027, root_partition, path)"},{"line_number":561,"context_line":"        if efi_partition_mount_point:"},{"line_number":562,"context_line":"            efi_preserved \u003d _try_preserve_efi_assets("},{"line_number":563,"context_line":"                device, path, efi_system_part_uuid,"},{"line_number":564,"context_line":"                efi_partitions, efi_partition_mount_point)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_58fc4bb5","line":561,"range":{"start_line":561,"start_character":0,"end_line":561,"end_character":37},"in_reply_to":"9f560f44_ecc2ce53","updated":"2020-10-09 16:25:54.000000000","message":"I think we likely just need to skip this for md devices. At least for now since I\u0027m trying to fix a specific bug scenario that is also unrelated to software raid.","commit_id":"5fc0a1e32761f02dd140476c05637a8c3d901f6e"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"198dac8dd32805539810054a424cc9850c7cc881","unresolved":false,"context_lines":[{"line_number":736,"context_line":"                                      the assets for the process of"},{"line_number":737,"context_line":"                                      preservation."},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"    :retruns: True if assets have been preserved, otherwise False."},{"line_number":740,"context_line":"              None is the result of this method if a failure has"},{"line_number":741,"context_line":"              occured."},{"line_number":742,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_acd9f684","line":739,"range":{"start_line":739,"start_character":5,"end_line":739,"end_character":12},"updated":"2020-10-09 07:07:37.000000000","message":"Typo: returns","commit_id":"5fc0a1e32761f02dd140476c05637a8c3d901f6e"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"198dac8dd32805539810054a424cc9850c7cc881","unresolved":false,"context_lines":[{"line_number":765,"context_line":""},{"line_number":766,"context_line":""},{"line_number":767,"context_line":"def _efi_boot_setup(device, efi_system_part_uuid\u003dNone, target_boot_mode\u003dNone):"},{"line_number":768,"context_line":"    \"\"\"Identify and setup an EFI bootloader from supplied partition/disk."},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"    :param device: The device upon which to attempt the EFI bootloader setup."},{"line_number":771,"context_line":"    :param efi_system_part_uuid: The partition UUID to utilize in searching"},{"line_number":772,"context_line":"                                 for an EFI bootloader."},{"line_number":773,"context_line":"    \"\"\""},{"line_number":774,"context_line":"    boot \u003d hardware.dispatch_to_managers(\u0027get_boot_info\u0027)"},{"line_number":775,"context_line":"    # Explicitly only run if a target_boot_mode is set which prevents"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_6c3a3e97","line":772,"range":{"start_line":768,"start_character":0,"end_line":772,"end_character":55},"updated":"2020-10-09 07:07:37.000000000","message":"Could you please add a :returns: statement? This will make it easier to understand the logic which is getting really ... interesting.","commit_id":"5fc0a1e32761f02dd140476c05637a8c3d901f6e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cb63f8952c97331b661f04dc33c74a1492ebc7c9","unresolved":false,"context_lines":[{"line_number":765,"context_line":""},{"line_number":766,"context_line":""},{"line_number":767,"context_line":"def _efi_boot_setup(device, efi_system_part_uuid\u003dNone, target_boot_mode\u003dNone):"},{"line_number":768,"context_line":"    \"\"\"Identify and setup an EFI bootloader from supplied partition/disk."},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"    :param device: The device upon which to attempt the EFI bootloader setup."},{"line_number":771,"context_line":"    :param efi_system_part_uuid: The partition UUID to utilize in searching"},{"line_number":772,"context_line":"                                 for an EFI bootloader."},{"line_number":773,"context_line":"    \"\"\""},{"line_number":774,"context_line":"    boot \u003d hardware.dispatch_to_managers(\u0027get_boot_info\u0027)"},{"line_number":775,"context_line":"    # Explicitly only run if a target_boot_mode is set which prevents"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_b8e8077b","line":772,"range":{"start_line":768,"start_character":0,"end_line":772,"end_character":55},"in_reply_to":"9f560f44_6c3a3e97","updated":"2020-10-09 17:12:52.000000000","message":"convoluted I think is the word your thinking of :) But hey, we\u0027re still under the complexity limits!","commit_id":"5fc0a1e32761f02dd140476c05637a8c3d901f6e"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"198dac8dd32805539810054a424cc9850c7cc881","unresolved":false,"context_lines":[{"line_number":797,"context_line":""},{"line_number":798,"context_line":"def _preserve_efi_assets(path, efi_assets_folder, efi_partitions,"},{"line_number":799,"context_line":"                         efi_partition_mount_point):"},{"line_number":800,"context_line":"    \"\"\"Preserve the EFI assets in a partition image."},{"line_number":801,"context_line":""},{"line_number":802,"context_line":"    :param path: The path used for the mounted image filesystem."},{"line_number":803,"context_line":"    :param efi_assets_folder: The folder where we can find the"},{"line_number":804,"context_line":"                              UEFI assets required for booting."},{"line_number":805,"context_line":"    :param efi_partitions: The list of partitions upon which to"},{"line_number":806,"context_line":"                           write the perserved assets to."},{"line_number":807,"context_line":"    :param efi_partition_mount_point: The folder at which to mount"},{"line_number":808,"context_line":"                                      the assets for the process of"},{"line_number":809,"context_line":"                                      preservation."},{"line_number":810,"context_line":"    \"\"\""},{"line_number":811,"context_line":"    try:"},{"line_number":812,"context_line":"        save_efi \u003d tempfile.mkdtemp()"},{"line_number":813,"context_line":"        shutil.copytree(efi_assets_folder, save_efi)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_2c5de6eb","line":810,"range":{"start_line":800,"start_character":0,"end_line":810,"end_character":7},"updated":"2020-10-09 07:07:37.000000000","message":"Same as above: please add a :returns: comment.","commit_id":"5fc0a1e32761f02dd140476c05637a8c3d901f6e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"aa010fec528554b6d285bd2818502024abb30ab0","unresolved":false,"context_lines":[{"line_number":566,"context_line":"            # asset preservation logic at some point since the paths"},{"line_number":567,"context_line":"            # can be a little different, but largely this is JUST for"},{"line_number":568,"context_line":"            # partition images as there _should not_ be a mount"},{"line_number":569,"context_line":"            # point if we have no efi partitions at all. "},{"line_number":570,"context_line":"            efi_preserved \u003d _try_preserve_efi_assets("},{"line_number":571,"context_line":"                device, path, efi_system_part_uuid,"},{"line_number":572,"context_line":"                efi_partitions, efi_partition_mount_point)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_836b0bee","line":569,"updated":"2020-10-11 23:46:34.000000000","message":"pep8: W291 trailing whitespace","commit_id":"544f0da2a3d57a204ba87ab3e4e72ef2a23c1736"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b9d9ab1d43e9457f7cf403e0d6fa11485148ffea","unresolved":false,"context_lines":[{"line_number":566,"context_line":"            # asset preservation logic at some point since the paths"},{"line_number":567,"context_line":"            # can be a little different, but largely this is JUST for"},{"line_number":568,"context_line":"            # partition images as there _should not_ be a mount"},{"line_number":569,"context_line":"            # point if we have no efi partitions at all. "},{"line_number":570,"context_line":"            efi_preserved \u003d _try_preserve_efi_assets("},{"line_number":571,"context_line":"                device, path, efi_system_part_uuid,"},{"line_number":572,"context_line":"                efi_partitions, efi_partition_mount_point)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_ded68326","line":569,"updated":"2020-10-09 19:19:47.000000000","message":"pep8: W291 trailing whitespace","commit_id":"544f0da2a3d57a204ba87ab3e4e72ef2a23c1736"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"eea416fd234d359be5813877465421057a14581d","unresolved":false,"context_lines":[{"line_number":850,"context_line":"            utils.execute(\u0027umount\u0027, efi_partition_mount_point)"},{"line_number":851,"context_line":"        return True"},{"line_number":852,"context_line":"    except Exception as e:"},{"line_number":853,"context_line":"        LOG.debug(\u0027Failed to preserve EFI assets. Error %s\u0027, e)"},{"line_number":854,"context_line":"        return False"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"1f621f24_c6fc0bb7","line":853,"updated":"2020-11-13 14:33:37.000000000","message":"2020-11-10 18:01:40.940 808 DEBUG ironic_python_agent.extensions.image [-] Failed to preserve EFI assets. Error [Errno 17] File exists: \u0027/tmp/tmp80t36mz3/\u0027 _preserve_efi_assets /usr/local/lib/python3.6/site-packages/ironic_python_agent/extensions/image.py:853","commit_id":"0128a418cdd6e0b7537c45945a0ffef5940f9a8c"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"fc9d241c341d41b7332129ecde1a8194435bf8f7","unresolved":false,"context_lines":[{"line_number":667,"context_line":"                LOG.debug(\"GRUB2 successfully installed on device %s\","},{"line_number":668,"context_line":"                          grub_disk)"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"        # Setup grub configureation"},{"line_number":671,"context_line":"        _configure_grub(device, path)"},{"line_number":672,"context_line":""},{"line_number":673,"context_line":"        LOG.info(\"GRUB2 successfully installed on %s\", device)"}],"source_content_type":"text/x-python","patch_set":27,"id":"fffc6b78_285454ca","line":670,"range":{"start_line":670,"start_character":21,"end_line":670,"end_character":35},"updated":"2020-11-19 14:59:22.000000000","message":"Nit: configuration","commit_id":"0007bc1c229c1067968e4ac2d8597f35dbde1ee6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0b6da92db49548521552110e83cd8ec2d4d0774b","unresolved":false,"context_lines":[{"line_number":667,"context_line":"                LOG.debug(\"GRUB2 successfully installed on device %s\","},{"line_number":668,"context_line":"                          grub_disk)"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"        # Setup grub configureation"},{"line_number":671,"context_line":"        _configure_grub(device, path)"},{"line_number":672,"context_line":""},{"line_number":673,"context_line":"        LOG.info(\"GRUB2 successfully installed on %s\", device)"}],"source_content_type":"text/x-python","patch_set":27,"id":"fffc6b78_e346ea21","line":670,"range":{"start_line":670,"start_character":21,"end_line":670,"end_character":35},"in_reply_to":"fffc6b78_285454ca","updated":"2020-11-19 19:15:38.000000000","message":"Done","commit_id":"0007bc1c229c1067968e4ac2d8597f35dbde1ee6"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"fc9d241c341d41b7332129ecde1a8194435bf8f7","unresolved":false,"context_lines":[{"line_number":723,"context_line":""},{"line_number":724,"context_line":"    :param device: The device for the filesystem."},{"line_number":725,"context_line":"    :param path: The path in which the filesystem is mounted."},{"line_number":726,"context_line":"    :param destination_path: An override path of where to write this"},{"line_number":727,"context_line":"                             grub configuration."},{"line_number":728,"context_line":"    \"\"\""},{"line_number":729,"context_line":"    LOG.debug(\u0027Attempting to generate grub Configuration\u0027)"},{"line_number":730,"context_line":"    path_variable \u003d _get_path_variable()"}],"source_content_type":"text/x-python","patch_set":27,"id":"fffc6b78_68049cc7","line":727,"range":{"start_line":726,"start_character":0,"end_line":727,"end_character":48},"updated":"2020-11-19 14:59:22.000000000","message":"There is no such parameter.","commit_id":"0007bc1c229c1067968e4ac2d8597f35dbde1ee6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0b6da92db49548521552110e83cd8ec2d4d0774b","unresolved":false,"context_lines":[{"line_number":723,"context_line":""},{"line_number":724,"context_line":"    :param device: The device for the filesystem."},{"line_number":725,"context_line":"    :param path: The path in which the filesystem is mounted."},{"line_number":726,"context_line":"    :param destination_path: An override path of where to write this"},{"line_number":727,"context_line":"                             grub configuration."},{"line_number":728,"context_line":"    \"\"\""},{"line_number":729,"context_line":"    LOG.debug(\u0027Attempting to generate grub Configuration\u0027)"},{"line_number":730,"context_line":"    path_variable \u003d _get_path_variable()"}],"source_content_type":"text/x-python","patch_set":27,"id":"fffc6b78_63edda24","line":727,"range":{"start_line":726,"start_character":0,"end_line":727,"end_character":48},"in_reply_to":"fffc6b78_68049cc7","updated":"2020-11-19 19:15:38.000000000","message":"Done. I guess this was an early thought that I backed away from.","commit_id":"0007bc1c229c1067968e4ac2d8597f35dbde1ee6"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"fc9d241c341d41b7332129ecde1a8194435bf8f7","unresolved":false,"context_lines":[{"line_number":773,"context_line":"    \"\"\"Attempt to preserve UEFI boot assets."},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"    :param device: The device upon which wich to try to preserve"},{"line_number":776,"context_line":"                   assets."},{"line_number":777,"context_line":"    :param efi_system_part_uuid: The partition ID representing the"},{"line_number":778,"context_line":"                                 created EFI system partition."},{"line_number":779,"context_line":"    :param efi_partitions: The list of partitions upon wich to"}],"source_content_type":"text/x-python","patch_set":27,"id":"fffc6b78_281bb41b","line":776,"range":{"start_line":776,"start_character":0,"end_line":776,"end_character":26},"updated":"2020-11-19 14:59:22.000000000","message":"the \"path\" param is missing here","commit_id":"0007bc1c229c1067968e4ac2d8597f35dbde1ee6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0b6da92db49548521552110e83cd8ec2d4d0774b","unresolved":false,"context_lines":[{"line_number":773,"context_line":"    \"\"\"Attempt to preserve UEFI boot assets."},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"    :param device: The device upon which wich to try to preserve"},{"line_number":776,"context_line":"                   assets."},{"line_number":777,"context_line":"    :param efi_system_part_uuid: The partition ID representing the"},{"line_number":778,"context_line":"                                 created EFI system partition."},{"line_number":779,"context_line":"    :param efi_partitions: The list of partitions upon wich to"}],"source_content_type":"text/x-python","patch_set":27,"id":"fffc6b78_03732e82","line":776,"range":{"start_line":776,"start_character":0,"end_line":776,"end_character":26},"in_reply_to":"fffc6b78_281bb41b","updated":"2020-11-19 19:15:38.000000000","message":"Done","commit_id":"0007bc1c229c1067968e4ac2d8597f35dbde1ee6"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"fc9d241c341d41b7332129ecde1a8194435bf8f7","unresolved":false,"context_lines":[{"line_number":788,"context_line":"    \"\"\""},{"line_number":789,"context_line":"    efi_assets_folder \u003d efi_partition_mount_point + \u0027/EFI\u0027"},{"line_number":790,"context_line":"    if os.path.exists(efi_assets_folder):"},{"line_number":791,"context_line":"        # We appear to have EFI Assets, that need to be preserved"},{"line_number":792,"context_line":"        # as such if we succeed we will be told true and we can take"},{"line_number":793,"context_line":"        # TODO(TheJulia): Does this even make sense with grub-install?"},{"line_number":794,"context_line":"        # I mean, my debian system doesn\u0027t have grub2-install :\\"},{"line_number":795,"context_line":"        if (os.path.exists(os.path.join(path, \u0027usr/sbin/grub2-install\u0027))"}],"source_content_type":"text/x-python","patch_set":27,"id":"fffc6b78_88baa0db","line":792,"range":{"start_line":791,"start_character":1,"end_line":792,"end_character":68},"updated":"2020-11-19 14:59:22.000000000","message":"Seems there is sth missing in this comment?","commit_id":"0007bc1c229c1067968e4ac2d8597f35dbde1ee6"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0b6da92db49548521552110e83cd8ec2d4d0774b","unresolved":false,"context_lines":[{"line_number":788,"context_line":"    \"\"\""},{"line_number":789,"context_line":"    efi_assets_folder \u003d efi_partition_mount_point + \u0027/EFI\u0027"},{"line_number":790,"context_line":"    if os.path.exists(efi_assets_folder):"},{"line_number":791,"context_line":"        # We appear to have EFI Assets, that need to be preserved"},{"line_number":792,"context_line":"        # as such if we succeed we will be told true and we can take"},{"line_number":793,"context_line":"        # TODO(TheJulia): Does this even make sense with grub-install?"},{"line_number":794,"context_line":"        # I mean, my debian system doesn\u0027t have grub2-install :\\"},{"line_number":795,"context_line":"        if (os.path.exists(os.path.join(path, \u0027usr/sbin/grub2-install\u0027))"}],"source_content_type":"text/x-python","patch_set":27,"id":"fffc6b78_e36f0a90","line":792,"range":{"start_line":791,"start_character":1,"end_line":792,"end_character":68},"in_reply_to":"fffc6b78_88baa0db","updated":"2020-11-19 19:15:38.000000000","message":"wow...","commit_id":"0007bc1c229c1067968e4ac2d8597f35dbde1ee6"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"fc9d241c341d41b7332129ecde1a8194435bf8f7","unresolved":false,"context_lines":[{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    :param device: The device upon which to attempt the EFI bootloader setup."},{"line_number":822,"context_line":"    :param efi_system_part_uuid: The partition UUID to utilize in searching"},{"line_number":823,"context_line":"                                 for an EFI bootloader."},{"line_number":824,"context_line":"    :returns: True if we succeeded in setting up an EFI bootloader in the"},{"line_number":825,"context_line":"              EFI nvram table."},{"line_number":826,"context_line":"              False if we were unable to set the machine to EFI boot,"}],"source_content_type":"text/x-python","patch_set":27,"id":"fffc6b78_289e1463","line":823,"range":{"start_line":823,"start_character":1,"end_line":823,"end_character":55},"updated":"2020-11-19 14:59:22.000000000","message":"target_boot_mode is missing from the comment","commit_id":"0007bc1c229c1067968e4ac2d8597f35dbde1ee6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"5ac880c6a2a03fcb0f18bfa16c05a57616d1b683","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Red Hat, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":28,"id":"fffc6b78_e9ad2b32","line":1,"updated":"2020-11-19 21:58:18.000000000","message":"pep8: E902 TokenError: EOF in multi-line statement","commit_id":"c7fb48c7529e55199a3e76dc5c14f2284dbcd07f"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"2c8e9f4fd1f0375613a03ba02ba04de72eb116bd","unresolved":false,"context_lines":[{"line_number":826,"context_line":"    :param device: The device upon which to attempt the EFI bootloader setup."},{"line_number":827,"context_line":"    :param efi_system_part_uuid: The partition UUID to utilize in searching"},{"line_number":828,"context_line":"                                 for an EFI bootloader."},{"line_number":829,"context_line":"    :param target_boot_mode: The requested boot moade target for for the"},{"line_number":830,"context_line":"                             machine. This is optional and is mainly used"},{"line_number":831,"context_line":"                             for the purposes of identifying a mismatch and"},{"line_number":832,"context_line":"                             reporting an warning accordingly."}],"source_content_type":"text/x-python","patch_set":29,"id":"fffc6b78_a727c7b6","line":829,"range":{"start_line":829,"start_character":61,"end_line":829,"end_character":68},"updated":"2020-11-20 07:07:52.000000000","message":"Nit: for for","commit_id":"353017a1048ae4fe52114043f88cd845d01edcf0"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"2c8e9f4fd1f0375613a03ba02ba04de72eb116bd","unresolved":false,"context_lines":[{"line_number":826,"context_line":"    :param device: The device upon which to attempt the EFI bootloader setup."},{"line_number":827,"context_line":"    :param efi_system_part_uuid: The partition UUID to utilize in searching"},{"line_number":828,"context_line":"                                 for an EFI bootloader."},{"line_number":829,"context_line":"    :param target_boot_mode: The requested boot moade target for for the"},{"line_number":830,"context_line":"                             machine. This is optional and is mainly used"},{"line_number":831,"context_line":"                             for the purposes of identifying a mismatch and"},{"line_number":832,"context_line":"                             reporting an warning accordingly."}],"source_content_type":"text/x-python","patch_set":29,"id":"fffc6b78_4719bb77","line":829,"range":{"start_line":829,"start_character":48,"end_line":829,"end_character":53},"updated":"2020-11-20 07:07:52.000000000","message":"Nit: mode","commit_id":"353017a1048ae4fe52114043f88cd845d01edcf0"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"2c8e9f4fd1f0375613a03ba02ba04de72eb116bd","unresolved":false,"context_lines":[{"line_number":829,"context_line":"    :param target_boot_mode: The requested boot moade target for for the"},{"line_number":830,"context_line":"                             machine. This is optional and is mainly used"},{"line_number":831,"context_line":"                             for the purposes of identifying a mismatch and"},{"line_number":832,"context_line":"                             reporting an warning accordingly."},{"line_number":833,"context_line":"    :returns: True if we succeeded in setting up an EFI bootloader in the"},{"line_number":834,"context_line":"              EFI nvram table."},{"line_number":835,"context_line":"              False if we were unable to set the machine to EFI boot,"}],"source_content_type":"text/x-python","patch_set":29,"id":"fffc6b78_872c439a","line":832,"range":{"start_line":832,"start_character":39,"end_line":832,"end_character":41},"updated":"2020-11-20 07:07:52.000000000","message":"Nit: a","commit_id":"353017a1048ae4fe52114043f88cd845d01edcf0"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"19867dda83194da88e2c98668375c9621d5098e3","unresolved":true,"context_lines":[{"line_number":767,"context_line":"    utils.execute(\u0027mount\u0027, \u0027-t\u0027, \u0027sysfs\u0027, \u0027none\u0027, path + \u0027/sys\u0027)"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"def _try_preserve_efi_assets(device, path,"},{"line_number":771,"context_line":"                             efi_system_part_uuid,"},{"line_number":772,"context_line":"                             efi_partitions,"},{"line_number":773,"context_line":"                             efi_partition_mount_point):"}],"source_content_type":"text/x-python","patch_set":30,"id":"37b925b2_d0f935ac","line":770,"updated":"2020-12-01 16:02:39.000000000","message":"Ideally we should call this before trying to use efibootmgr the first time. I understand that it causes some complications down the road, but the current flow is very hard to follow. I\u0027m afraid we\u0027ll get lost here next year.","commit_id":"2122e8221ff91ac83f7eef6086aedc140d85b143"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ad01add94e21caa8a56ee014c8367f246c43fd73","unresolved":true,"context_lines":[{"line_number":767,"context_line":"    utils.execute(\u0027mount\u0027, \u0027-t\u0027, \u0027sysfs\u0027, \u0027none\u0027, path + \u0027/sys\u0027)"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"def _try_preserve_efi_assets(device, path,"},{"line_number":771,"context_line":"                             efi_system_part_uuid,"},{"line_number":772,"context_line":"                             efi_partitions,"},{"line_number":773,"context_line":"                             efi_partition_mount_point):"}],"source_content_type":"text/x-python","patch_set":30,"id":"0dea1d75_c26c27e9","line":770,"in_reply_to":"37b925b2_d0f935ac","updated":"2020-12-03 00:03:56.000000000","message":"I think ideally yes but we don\u0027t even need to call this for whole disk, and we don\u0027t always know. I really want to break this up and move the higher level \"attempt to make uefi\" work to the conductor.... Alas, API changes.","commit_id":"2122e8221ff91ac83f7eef6086aedc140d85b143"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"19867dda83194da88e2c98668375c9621d5098e3","unresolved":true,"context_lines":[{"line_number":975,"context_line":"        if self.agent.iscsi_started:"},{"line_number":976,"context_line":"            iscsi.clean_up(device)"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"        if _efi_boot_setup(device, efi_system_part_uuid, target_boot_mode):"},{"line_number":979,"context_line":"            return"},{"line_number":980,"context_line":""},{"line_number":981,"context_line":"        # We don\u0027t have a working root UUID detection for whole disk images."}],"source_content_type":"text/x-python","patch_set":30,"id":"bf46a86a_aef250e2","line":978,"updated":"2020-12-01 16:02:39.000000000","message":"Can we call it like _optimistic_efi_boot_setup? or anyhow indicate that it\u0027s normal for this call to return False on EFI?","commit_id":"2122e8221ff91ac83f7eef6086aedc140d85b143"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ad01add94e21caa8a56ee014c8367f246c43fd73","unresolved":true,"context_lines":[{"line_number":975,"context_line":"        if self.agent.iscsi_started:"},{"line_number":976,"context_line":"            iscsi.clean_up(device)"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"        if _efi_boot_setup(device, efi_system_part_uuid, target_boot_mode):"},{"line_number":979,"context_line":"            return"},{"line_number":980,"context_line":""},{"line_number":981,"context_line":"        # We don\u0027t have a working root UUID detection for whole disk images."}],"source_content_type":"text/x-python","patch_set":30,"id":"9f0b9723_bd3357c3","line":978,"in_reply_to":"bf46a86a_aef250e2","updated":"2020-12-03 00:03:56.000000000","message":"We can name it such, but I\u0027m not sure it would be entirely normal for it to return false moving forward. Everything below this is the worst case \"we can\u0027t make it work, lets install grub2\" steps.","commit_id":"2122e8221ff91ac83f7eef6086aedc140d85b143"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b9c1ed27bf154cc123eef4cab05fc373b84455ac","unresolved":true,"context_lines":[{"line_number":581,"context_line":"                # remounted."},{"line_number":582,"context_line":"                LOG.debug(\u0027No EFI assets were preserved for setup or the \u0027"},{"line_number":583,"context_line":"                          \u0027ramdisk was unable to complete the setup. \u0027"},{"line_number":584,"context_line":"                          \u0027falling back to bootloader installation from\u0027"},{"line_number":585,"context_line":"                          \u0027deployed image.\u0027)"},{"line_number":586,"context_line":"                if not os.path.ismount(root_partition):"},{"line_number":587,"context_line":"                    LOG.debug(\u0027Re-mounting the root partition.\u0027)"}],"source_content_type":"text/x-python","patch_set":32,"id":"0ed42f44_87121710","line":584,"updated":"2020-12-17 14:37:29.000000000","message":"nit s/from/from /","commit_id":"f9870d58120a493c40493df6ef22662364138c31"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b9c1ed27bf154cc123eef4cab05fc373b84455ac","unresolved":true,"context_lines":[{"line_number":781,"context_line":"                 which we should examine to preserve assets from."},{"line_number":782,"context_line":"    :param efi_system_part_uuid: The partition ID representing the"},{"line_number":783,"context_line":"                                 created EFI system partition."},{"line_number":784,"context_line":"    :param efi_partitions: The list of partitions upon wich to"},{"line_number":785,"context_line":"                           write the preserved assets to."},{"line_number":786,"context_line":"    :param efi_partition_mount_point: The folder at which to mount"},{"line_number":787,"context_line":"                                      the assets for the process of"}],"source_content_type":"text/x-python","patch_set":32,"id":"514d491c_b295a67e","line":784,"updated":"2020-12-17 14:37:29.000000000","message":"nit s/wich/which/","commit_id":"f9870d58120a493c40493df6ef22662364138c31"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b9c1ed27bf154cc123eef4cab05fc373b84455ac","unresolved":true,"context_lines":[{"line_number":789,"context_line":""},{"line_number":790,"context_line":"    :returns: True if assets have been preserved, otherwise False."},{"line_number":791,"context_line":"              None is the result of this method if a failure has"},{"line_number":792,"context_line":"              occured."},{"line_number":793,"context_line":"    \"\"\""},{"line_number":794,"context_line":"    efi_assets_folder \u003d efi_partition_mount_point + \u0027/EFI\u0027"},{"line_number":795,"context_line":"    if os.path.exists(efi_assets_folder):"}],"source_content_type":"text/x-python","patch_set":32,"id":"7c36f990_29c93c31","line":792,"updated":"2020-12-17 14:37:29.000000000","message":"nit s/occured/occurred/","commit_id":"f9870d58120a493c40493df6ef22662364138c31"}],"releasenotes/notes/preserve-efi-folder-contents-ea1e278b3093ec55.yaml":[{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"198dac8dd32805539810054a424cc9850c7cc881","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes the agent\u0027s EFI boot handling such that EFI assets from a partition"},{"line_number":5,"context_line":"    image are preserved and used instead of overriden. This should permit"},{"line_number":6,"context_line":"    operators to use Secure Boot with partition images IF the assets are"},{"line_number":7,"context_line":"    already present in the partition image."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9f560f44_4ca93a8d","line":5,"range":{"start_line":5,"start_character":44,"end_line":5,"end_character":53},"updated":"2020-10-09 07:07:37.000000000","message":"Typo: overridden","commit_id":"5fc0a1e32761f02dd140476c05637a8c3d901f6e"}]}
