)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"1e0ebbd676fc73f1769e53b6bf199e1eda345840","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cbc8d5b0_f10ea8e9","updated":"2021-10-15 12:02:17.000000000","message":"Thank you Arun. Looks good, but having releasenotes would be useful.","commit_id":"562fe16e89d530ff5c64f330130568cd2fddb1d6"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"78301feccbb504f4e8f4555cc070bf84bc57fa02","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"38cf0d66_b2349752","updated":"2021-10-21 16:08:46.000000000","message":"Thanks. Looks good but I\u0027d like a release note! (So that anyone trying to use anaconda b4 this fix, will know about it being fixed).","commit_id":"562fe16e89d530ff5c64f330130568cd2fddb1d6"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"97fed86f2a7f16123c38c8792f96379a27011efd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1c356cf7_0063694f","updated":"2021-10-15 08:05:23.000000000","message":"recheck","commit_id":"562fe16e89d530ff5c64f330130568cd2fddb1d6"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f2105cf4a49a6801a91545c16566d537fb63b828","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a87d0eda_344fb686","updated":"2021-10-21 20:53:07.000000000","message":"Thanks for the release note. I\u0027ve got a comment there but I have another thought. In testing, it looks like there are other bugs related to the anaconda deploy interface. Would it make more sense to put as many fixed in one PR/release note? As far as I can tell, w/o at least one other fix, anaconda deploy interface doesn\u0027t work.","commit_id":"626e622a5910f49539ca0c888b00320402232b7f"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cb8f94f5_2ecb986f","updated":"2021-10-26 14:50:25.000000000","message":"Thanks for the fixes!","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"27d02d5749967b8adb8d210655700a702231ebfb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7bb2729e_238b00d7","updated":"2021-10-27 14:50:38.000000000","message":"Thanks! I\u0027ve got a bunch of nits, not sure if we care to address or not. (Since we\u0027re going to backport this, thought I\u0027d see what others thought.)","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"a7bf52aa885fe02b9b605acc006560f90f907a30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"57c13bc0_f598f412","updated":"2021-10-27 07:41:00.000000000","message":"recheck","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"a26e5f03a7d12837273a28458fdd23ed7a7cb994","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e2df3612_25393636","updated":"2021-10-27 02:53:54.000000000","message":"recheck","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"442be05269b9a07afc5676a46362ce0737f4c84e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"673bb645_4b054be6","updated":"2021-10-27 20:59:48.000000000","message":"recheck","commit_id":"df99dea001772c1c6691150060d3ebbf496e5d25"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"780697d43867ab164bfbe7bf7a4a4c0ef534b2c8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b3ca2e35_b31f068a","updated":"2021-10-27 22:40:53.000000000","message":"recheck","commit_id":"df99dea001772c1c6691150060d3ebbf496e5d25"}],"doc/source/admin/anaconda-deploy-interface.rst":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":129,"context_line":"            --property disk_file_extension\u003d.tgz"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Valid ``disk_file_extension`` values are ``.img``, ``.tar``, ``.tbz``,"},{"line_number":132,"context_line":"``.tgz``, ``.txz``, ``.tar.gz``, ``.tar.bz2``, and ``.tar.xz``."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Creating a bare metal server"},{"line_number":135,"context_line":"----------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9630d039_d3a080c5","line":132,"updated":"2021-10-26 14:50:25.000000000","message":"Maybe move this to L111, under \u0027disk_file_extension\u0027. Also mention, since it is optional, what happens if this isn\u0027t specified.","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":129,"context_line":"            --property disk_file_extension\u003d.tgz"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Valid ``disk_file_extension`` values are ``.img``, ``.tar``, ``.tbz``,"},{"line_number":132,"context_line":"``.tgz``, ``.txz``, ``.tar.gz``, ``.tar.bz2``, and ``.tar.xz``."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Creating a bare metal server"},{"line_number":135,"context_line":"----------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c4240bc9_ae1a3e8e","line":132,"in_reply_to":"9630d039_d3a080c5","updated":"2021-10-26 23:51:40.000000000","message":"Done","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"27d02d5749967b8adb8d210655700a702231ebfb","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Valid ``disk_file_extension`` values are ``.img``, ``.tar``, ``.tbz``,"},{"line_number":114,"context_line":"``.tgz``, ``.txz``, ``.tar.gz``, ``.tar.bz2``, and ``.tar.xz``. When"},{"line_number":115,"context_line":"``disk_file_extension`` property is not set to one of the above valid values"},{"line_number":116,"context_line":"the anaconda installer will assume that the image provided is an mountable"},{"line_number":117,"context_line":"OS disk."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"This is an example of adding the anaconda-related images and the OS tarball to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0ccd7a90_bb0cc5fe","line":116,"updated":"2021-10-27 14:50:38.000000000","message":"nit s/an mountable/a mountable/","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"27d02d5749967b8adb8d210655700a702231ebfb","unresolved":true,"context_lines":[{"line_number":132,"context_line":"            --property kernel_id\u003d\u003cglance_uuid_vmlinuz\u003e \\"},{"line_number":133,"context_line":"            --property ramdisk_id\u003d\u003cglance_uuid_ramdisk\u003e \\"},{"line_number":134,"context_line":"            --property stage2_id\u003d\u003cglance_uuid_stage2\u003e \u003cdisto-name-version\u003e \\"},{"line_number":135,"context_line":"            --property disk_file_extension\u003d.tgz"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Creating a bare metal server"},{"line_number":138,"context_line":"----------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dbefa3e9_317bcb21","line":135,"updated":"2021-10-27 14:50:38.000000000","message":"this might be correct but it is somewhat inconsistent. I\u0027d put the \u003cdisto-name-version\u003e at the end. (also, would it be better as distro-name-version?)","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"34c5020927421558f72323063e5aa5ec4e53fed9","unresolved":true,"context_lines":[{"line_number":132,"context_line":"            --property kernel_id\u003d\u003cglance_uuid_vmlinuz\u003e \\"},{"line_number":133,"context_line":"            --property ramdisk_id\u003d\u003cglance_uuid_ramdisk\u003e \\"},{"line_number":134,"context_line":"            --property stage2_id\u003d\u003cglance_uuid_stage2\u003e \u003cdisto-name-version\u003e \\"},{"line_number":135,"context_line":"            --property disk_file_extension\u003d.tgz"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Creating a bare metal server"},{"line_number":138,"context_line":"----------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b9d6eb6b_bcea2331","line":135,"in_reply_to":"dbefa3e9_317bcb21","updated":"2021-10-27 20:59:20.000000000","message":"Sorry, I don\u0027t think I was clear. I meant:\n    -- property stage2_id\u003d\u003cglance_uuid_stage2\u003e \\\n    --property disk_file_extension\u003d.tgz \u003cdistro-name-version\u003e","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":1124,"context_line":"    fileutils.ensure_tree(symlink_dir)"},{"line_number":1125,"context_line":"    symlink_path \u003d _get_http_image_symlink_file_path(task.node.uuid)"},{"line_number":1126,"context_line":"    file_extension \u003d None"},{"line_number":1127,"context_line":"    if get_boot_option(task.node) \u003d\u003d \u0027kickstart\u0027:"},{"line_number":1128,"context_line":"        # \u0027liveimg --url\u0027 kickstart command uses the file extension to"},{"line_number":1129,"context_line":"        # identify the OS image type. Without a valid file extension it will"},{"line_number":1130,"context_line":"        # assume the disk image is a partition image and try to \u0027mount\u0027 it on"}],"source_content_type":"text/x-python","patch_set":3,"id":"4c1ed6e8_fdd7d41b","line":1127,"updated":"2021-10-26 14:50:25.000000000","message":"wondering if there is code to make sure that if this is kickstart, image_info is not None. cuz the code below assumes image_info[\u0027properties\u0027]...","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":1124,"context_line":"    fileutils.ensure_tree(symlink_dir)"},{"line_number":1125,"context_line":"    symlink_path \u003d _get_http_image_symlink_file_path(task.node.uuid)"},{"line_number":1126,"context_line":"    file_extension \u003d None"},{"line_number":1127,"context_line":"    if get_boot_option(task.node) \u003d\u003d \u0027kickstart\u0027:"},{"line_number":1128,"context_line":"        # \u0027liveimg --url\u0027 kickstart command uses the file extension to"},{"line_number":1129,"context_line":"        # identify the OS image type. Without a valid file extension it will"},{"line_number":1130,"context_line":"        # assume the disk image is a partition image and try to \u0027mount\u0027 it on"}],"source_content_type":"text/x-python","patch_set":3,"id":"901515d9_132c77e6","line":1127,"in_reply_to":"4c1ed6e8_fdd7d41b","updated":"2021-10-26 23:51:40.000000000","message":"Done","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":1128,"context_line":"        # \u0027liveimg --url\u0027 kickstart command uses the file extension to"},{"line_number":1129,"context_line":"        # identify the OS image type. Without a valid file extension it will"},{"line_number":1130,"context_line":"        # assume the disk image is a partition image and try to \u0027mount\u0027 it on"},{"line_number":1131,"context_line":"        # the ramdisk. # See \u0027liveimg\u0027 command for more details"},{"line_number":1132,"context_line":"        # https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html"},{"line_number":1133,"context_line":"        valid_file_extensions \u003d [\u0027.img\u0027, \u0027.tar\u0027, \u0027.tbz\u0027, \u0027.tgz\u0027, \u0027.txz\u0027,"},{"line_number":1134,"context_line":"                                 \u0027.tar.gz\u0027, \u0027.tar.bz2\u0027, \u0027.tar.xz\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"70a8a677_54933567","line":1131,"updated":"2021-10-26 14:50:25.000000000","message":"nit s/# See/See/","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":1128,"context_line":"        # \u0027liveimg --url\u0027 kickstart command uses the file extension to"},{"line_number":1129,"context_line":"        # identify the OS image type. Without a valid file extension it will"},{"line_number":1130,"context_line":"        # assume the disk image is a partition image and try to \u0027mount\u0027 it on"},{"line_number":1131,"context_line":"        # the ramdisk. # See \u0027liveimg\u0027 command for more details"},{"line_number":1132,"context_line":"        # https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html"},{"line_number":1133,"context_line":"        valid_file_extensions \u003d [\u0027.img\u0027, \u0027.tar\u0027, \u0027.tbz\u0027, \u0027.tgz\u0027, \u0027.txz\u0027,"},{"line_number":1134,"context_line":"                                 \u0027.tar.gz\u0027, \u0027.tar.bz2\u0027, \u0027.tar.xz\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"499392e5_c4d12839","line":1131,"in_reply_to":"70a8a677_54933567","updated":"2021-10-26 23:51:40.000000000","message":"Done","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":1138,"context_line":""},{"line_number":1139,"context_line":"        if not file_extension:"},{"line_number":1140,"context_line":"            LOG.warning(\"The \u0027disk_file_extension\u0027 property was not set on \""},{"line_number":1141,"context_line":"                        \"the glance image or not a valid extension. The \""},{"line_number":1142,"context_line":"                        \"driver will now try to guess the file extension \""},{"line_number":1143,"context_line":"                        \"of the disk using mimetype of the glance image \""},{"line_number":1144,"context_line":"                        \"downloaded on the conductor.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"0627ed9e_a24ba7be","line":1141,"updated":"2021-10-26 14:50:25.000000000","message":"wondering if we should log the valid extensions and the invalid one specified. I\u0027m concerned that the log string will be long and this warning may be logged a lot though.","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":1146,"context_line":"                mime_type, stderr \u003d utils.execute("},{"line_number":1147,"context_line":"                    \u0027file\u0027, \u0027--mime-type\u0027, \u0027--brief\u0027, image_path"},{"line_number":1148,"context_line":"                )"},{"line_number":1149,"context_line":"            except processutils.ProcessExceutionError as e:"},{"line_number":1150,"context_line":"                msg \u003d (\u0027Unable parse mimetype of the disk image: %s. \u0027"},{"line_number":1151,"context_line":"                       \u0027Error %s\". Anaconda may not be able to deploy the \u0027"},{"line_number":1152,"context_line":"                       \u0027OS image without a file extension.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9e8642a5_43d08fe6","line":1149,"updated":"2021-10-26 14:50:25.000000000","message":"s/ProcessExceutionError/ProcessExecutionError/","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"                mime_type, stderr \u003d utils.execute("},{"line_number":1147,"context_line":"                    \u0027file\u0027, \u0027--mime-type\u0027, \u0027--brief\u0027, image_path"},{"line_number":1148,"context_line":"                )"},{"line_number":1149,"context_line":"            except processutils.ProcessExceutionError as e:"},{"line_number":1150,"context_line":"                msg \u003d (\u0027Unable parse mimetype of the disk image: %s. \u0027"},{"line_number":1151,"context_line":"                       \u0027Error %s\". Anaconda may not be able to deploy the \u0027"},{"line_number":1152,"context_line":"                       \u0027OS image without a file extension.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"0023dbbf_0a9f79b2","line":1149,"in_reply_to":"9e8642a5_43d08fe6","updated":"2021-10-26 23:51:40.000000000","message":"Done","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":1147,"context_line":"                    \u0027file\u0027, \u0027--mime-type\u0027, \u0027--brief\u0027, image_path"},{"line_number":1148,"context_line":"                )"},{"line_number":1149,"context_line":"            except processutils.ProcessExceutionError as e:"},{"line_number":1150,"context_line":"                msg \u003d (\u0027Unable parse mimetype of the disk image: %s. \u0027"},{"line_number":1151,"context_line":"                       \u0027Error %s\". Anaconda may not be able to deploy the \u0027"},{"line_number":1152,"context_line":"                       \u0027OS image without a file extension.\u0027)"},{"line_number":1153,"context_line":"                LOG.exception(msg, image_path, e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"c5a4b198_cd0af3e6","line":1150,"updated":"2021-10-26 14:50:25.000000000","message":"s/Unable parse mimetype/Unable to determine the MIME type/","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":1147,"context_line":"                    \u0027file\u0027, \u0027--mime-type\u0027, \u0027--brief\u0027, image_path"},{"line_number":1148,"context_line":"                )"},{"line_number":1149,"context_line":"            except processutils.ProcessExceutionError as e:"},{"line_number":1150,"context_line":"                msg \u003d (\u0027Unable parse mimetype of the disk image: %s. \u0027"},{"line_number":1151,"context_line":"                       \u0027Error %s\". Anaconda may not be able to deploy the \u0027"},{"line_number":1152,"context_line":"                       \u0027OS image without a file extension.\u0027)"},{"line_number":1153,"context_line":"                LOG.exception(msg, image_path, e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"a01f16bf_432467c8","line":1150,"in_reply_to":"c5a4b198_cd0af3e6","updated":"2021-10-26 23:51:40.000000000","message":"Done","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":1150,"context_line":"                msg \u003d (\u0027Unable parse mimetype of the disk image: %s. \u0027"},{"line_number":1151,"context_line":"                       \u0027Error %s\". Anaconda may not be able to deploy the \u0027"},{"line_number":1152,"context_line":"                       \u0027OS image without a file extension.\u0027)"},{"line_number":1153,"context_line":"                LOG.exception(msg, image_path, e)"},{"line_number":1154,"context_line":"            else:"},{"line_number":1155,"context_line":"                # This is a commonly found mimetype that is not defined at"},{"line_number":1156,"context_line":"                # https://www.iana.org/assignments/media-types/ or the"}],"source_content_type":"text/x-python","patch_set":3,"id":"d22c8c2c_2531eae4","line":1153,"updated":"2021-10-26 14:50:25.000000000","message":"Wondering if LOG.error() is sufficient. Do we want a stack trace here?","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":1150,"context_line":"                msg \u003d (\u0027Unable parse mimetype of the disk image: %s. \u0027"},{"line_number":1151,"context_line":"                       \u0027Error %s\". Anaconda may not be able to deploy the \u0027"},{"line_number":1152,"context_line":"                       \u0027OS image without a file extension.\u0027)"},{"line_number":1153,"context_line":"                LOG.exception(msg, image_path, e)"},{"line_number":1154,"context_line":"            else:"},{"line_number":1155,"context_line":"                # This is a commonly found mimetype that is not defined at"},{"line_number":1156,"context_line":"                # https://www.iana.org/assignments/media-types/ or the"}],"source_content_type":"text/x-python","patch_set":3,"id":"12e8b1fe_0c21ada3","line":1153,"in_reply_to":"d22c8c2c_2531eae4","updated":"2021-10-26 23:51:40.000000000","message":"Done","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":1156,"context_line":"                # https://www.iana.org/assignments/media-types/ or the"},{"line_number":1157,"context_line":"                # mimetypes library."},{"line_number":1158,"context_line":"                mimetypes.add_type(\u0027application/x-gzip\u0027, \u0027.tgz\u0027, strict\u003dTrue)"},{"line_number":1159,"context_line":"                file_extension \u003d mimetypes.guess_extension(mime_type)"},{"line_number":1160,"context_line":""},{"line_number":1161,"context_line":"        if file_extension:"},{"line_number":1162,"context_line":"            symlink_path \u003d symlink_path + file_extension"}],"source_content_type":"text/x-python","patch_set":3,"id":"0aba10b6_d7d06ada","line":1159,"updated":"2021-10-26 14:50:25.000000000","message":"do we need to check if this file_extension is one of the valid_file_extensions?","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"                # https://www.iana.org/assignments/media-types/ or the"},{"line_number":1157,"context_line":"                # mimetypes library."},{"line_number":1158,"context_line":"                mimetypes.add_type(\u0027application/x-gzip\u0027, \u0027.tgz\u0027, strict\u003dTrue)"},{"line_number":1159,"context_line":"                file_extension \u003d mimetypes.guess_extension(mime_type)"},{"line_number":1160,"context_line":""},{"line_number":1161,"context_line":"        if file_extension:"},{"line_number":1162,"context_line":"            symlink_path \u003d symlink_path + file_extension"}],"source_content_type":"text/x-python","patch_set":3,"id":"5d238c34_338bf4cc","line":1159,"in_reply_to":"0aba10b6_d7d06ada","updated":"2021-10-26 23:51:40.000000000","message":"Done","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a5a75fa55351702550eeb9a22fc2862f6fe650ac","unresolved":true,"context_lines":[{"line_number":1157,"context_line":"                # mimetypes library."},{"line_number":1158,"context_line":"                mimetypes.add_type(\u0027application/x-gzip\u0027, \u0027.tgz\u0027, strict\u003dTrue)"},{"line_number":1159,"context_line":"                file_extension \u003d mimetypes.guess_extension(mime_type)"},{"line_number":1160,"context_line":""},{"line_number":1161,"context_line":"        if file_extension:"},{"line_number":1162,"context_line":"            symlink_path \u003d symlink_path + file_extension"},{"line_number":1163,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"c0957567_f3db6c42","line":1160,"updated":"2021-10-26 14:55:50.000000000","message":"Since we\u0027re trying to guess, we should probably LOG.info() what the guessed extension is. Wondering -- should we guess, or should we make disk_file_extension mandatory?","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":true,"context_lines":[{"line_number":1157,"context_line":"                # mimetypes library."},{"line_number":1158,"context_line":"                mimetypes.add_type(\u0027application/x-gzip\u0027, \u0027.tgz\u0027, strict\u003dTrue)"},{"line_number":1159,"context_line":"                file_extension \u003d mimetypes.guess_extension(mime_type)"},{"line_number":1160,"context_line":""},{"line_number":1161,"context_line":"        if file_extension:"},{"line_number":1162,"context_line":"            symlink_path \u003d symlink_path + file_extension"},{"line_number":1163,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"72c8cb89_206fc9ad","line":1160,"in_reply_to":"c0957567_f3db6c42","updated":"2021-10-26 23:51:40.000000000","message":"The partition images or filesystem disk images can be without any file extension. So disk_file_extension shouldn\u0027t be really mandatory.","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":1159,"context_line":"                file_extension \u003d mimetypes.guess_extension(mime_type)"},{"line_number":1160,"context_line":""},{"line_number":1161,"context_line":"        if file_extension:"},{"line_number":1162,"context_line":"            symlink_path \u003d symlink_path + file_extension"},{"line_number":1163,"context_line":""},{"line_number":1164,"context_line":"    utils.create_link_without_raise(image_path, symlink_path)"},{"line_number":1165,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1924d149_07f04aaa","line":1162,"updated":"2021-10-26 14:50:25.000000000","message":"wondering if we should move this out of the if, so it is at the same level as L1172. In case in the future, file_extension is used outside of kickstart. Well, if it is, presumably, someone will test and find out it doesn\u0027t work if this code is at this level. So you can ignore this unless you think there is merit. (I\u0027m not sure, ha ha.)","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"27d02d5749967b8adb8d210655700a702231ebfb","unresolved":true,"context_lines":[{"line_number":1139,"context_line":"            LOG.warning(\"The \u0027disk_file_extension\u0027 property was not set on \""},{"line_number":1140,"context_line":"                        \"the glance image or not a valid extension. The \""},{"line_number":1141,"context_line":"                        \"anaconda installer will try to \u0027mount\u0027 the OS image \""},{"line_number":1142,"context_line":"                        \"when no file extension is found.\")"},{"line_number":1143,"context_line":"    utils.create_link_without_raise(image_path, symlink_path)"},{"line_number":1144,"context_line":""},{"line_number":1145,"context_line":"    base_url \u003d CONF.deploy.http_url"}],"source_content_type":"text/x-python","patch_set":4,"id":"a92e9f5c_b419fbed","line":1142,"updated":"2021-10-27 14:50:38.000000000","message":"either no file extension or not a valid one. I\u0027d probably delete this last part \u0027when no file...\u0027 \n\ncould join the two sentences via something like \u0027... not a valid extension so the anaconda installer will try to \u0027mount\u0027 the OS image.\u0027","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"}],"ironic/tests/unit/drivers/modules/test_pxe.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"27d02d5749967b8adb8d210655700a702231ebfb","unresolved":true,"context_lines":[{"line_number":236,"context_line":"                              task.driver.boot.validate_inspection, task)"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    @mock.patch.object(image_service.GlanceImageService, \u0027show\u0027, autospec\u003dTrue)"},{"line_number":239,"context_line":"    def test_validate_kickstart_has_stage2_id(self, mock_glance):"},{"line_number":240,"context_line":"        mock_glance.return_value \u003d {\u0027properties\u0027: {\u0027kernel_id\u0027: \u0027fake-kernel\u0027,"},{"line_number":241,"context_line":"                                                   \u0027ramdisk_id\u0027: \u0027fake-initr\u0027}}"},{"line_number":242,"context_line":"        self.node.deploy_interface \u003d \u0027anaconda\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"b505b2b6_9a7e95cf","line":239,"updated":"2021-10-27 14:50:38.000000000","message":"more like s/has/missing/ :D","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"}],"releasenotes/notes/fix-anaconda-deploy-interface-bfa2cfca22b04680.yaml":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds a feature to anaconda deploy interface where user specified file"},{"line_number":5,"context_line":"    extensions are appended to the disk image symlink. Users can now set the"},{"line_number":6,"context_line":"    file extensions by setting the \u0027disk_file_extension\u0027 propery on the OS"},{"line_number":7,"context_line":"    image. This enables users to deploy tarballs with anaconda deploy"},{"line_number":8,"context_line":"    interface."},{"line_number":9,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1172d43d_6891d5de","line":6,"updated":"2021-10-26 14:50:25.000000000","message":"nit s/propery/property/","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds a feature to anaconda deploy interface where user specified file"},{"line_number":5,"context_line":"    extensions are appended to the disk image symlink. Users can now set the"},{"line_number":6,"context_line":"    file extensions by setting the \u0027disk_file_extension\u0027 propery on the OS"},{"line_number":7,"context_line":"    image. This enables users to deploy tarballs with anaconda deploy"},{"line_number":8,"context_line":"    interface."},{"line_number":9,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"54ba90f5_daa7d44d","line":6,"in_reply_to":"1172d43d_6891d5de","updated":"2021-10-26 23:51:40.000000000","message":"Done","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    extensions are appended to the disk image symlink. Users can now set the"},{"line_number":6,"context_line":"    file extensions by setting the \u0027disk_file_extension\u0027 propery on the OS"},{"line_number":7,"context_line":"    image. This enables users to deploy tarballs with anaconda deploy"},{"line_number":8,"context_line":"    interface."},{"line_number":9,"context_line":"fixes:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    Fixes a bug in the anaconda deploy interface where the \u0027ks_options\u0027"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"e0e39ae9_0ccff81a","line":8,"updated":"2021-10-26 14:50:25.000000000","message":"i wonder if this is a feature or a fix?","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    extensions are appended to the disk image symlink. Users can now set the"},{"line_number":6,"context_line":"    file extensions by setting the \u0027disk_file_extension\u0027 propery on the OS"},{"line_number":7,"context_line":"    image. This enables users to deploy tarballs with anaconda deploy"},{"line_number":8,"context_line":"    interface."},{"line_number":9,"context_line":"fixes:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    Fixes a bug in the anaconda deploy interface where the \u0027ks_options\u0027"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"2223465f_65e64d73","line":8,"in_reply_to":"e0e39ae9_0ccff81a","updated":"2021-10-26 23:51:40.000000000","message":"Done","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":15,"context_line":"    states.DEPLOYWAIT so the instance went straight to \u0027active\u0027 instead of"},{"line_number":16,"context_line":"    \u0027wait call-back\u0027."},{"line_number":17,"context_line":"  - |"},{"line_number":18,"context_line":"    Fixes an issue were the anaconda deploy interface expected mistakenly"},{"line_number":19,"context_line":"    expected a \u0027squashfs_id\u0027 instead of \u0027stage2_id\u0027  property on the image."},{"line_number":20,"context_line":"  - |"},{"line_number":21,"context_line":"    Fixes the heartbeat mechanism in the default kickstart template"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"14db3003_e679fe7b","line":18,"updated":"2021-10-26 14:50:25.000000000","message":"s/expected //","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    states.DEPLOYWAIT so the instance went straight to \u0027active\u0027 instead of"},{"line_number":16,"context_line":"    \u0027wait call-back\u0027."},{"line_number":17,"context_line":"  - |"},{"line_number":18,"context_line":"    Fixes an issue were the anaconda deploy interface expected mistakenly"},{"line_number":19,"context_line":"    expected a \u0027squashfs_id\u0027 instead of \u0027stage2_id\u0027  property on the image."},{"line_number":20,"context_line":"  - |"},{"line_number":21,"context_line":"    Fixes the heartbeat mechanism in the default kickstart template"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5e55771f_368743a1","line":18,"in_reply_to":"14db3003_e679fe7b","updated":"2021-10-26 23:51:40.000000000","message":"Done","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1d2c94089be6374e20fdfaa843e9effe0ae1b7a0","unresolved":true,"context_lines":[{"line_number":20,"context_line":"  - |"},{"line_number":21,"context_line":"    Fixes the heartbeat mechanism in the default kickstart template"},{"line_number":22,"context_line":"    ks.cfg.template as the heartbeat API only accepts \u0027POST\u0027 and expects a"},{"line_number":23,"context_line":"    mandatory \u0027callback_url\u0027 parameter."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"e3896bc2_fa44048c","line":23,"updated":"2021-10-26 14:50:25.000000000","message":"wonder if we should make it optional, but maybe too late now.","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"1d1632ba2a7dec1ed90b59189eb77b64686f6fdb","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  - |"},{"line_number":21,"context_line":"    Fixes the heartbeat mechanism in the default kickstart template"},{"line_number":22,"context_line":"    ks.cfg.template as the heartbeat API only accepts \u0027POST\u0027 and expects a"},{"line_number":23,"context_line":"    mandatory \u0027callback_url\u0027 parameter."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"223951c6_c1fdf96b","line":23,"in_reply_to":"e3896bc2_fa44048c","updated":"2021-10-26 23:51:40.000000000","message":"Ack","commit_id":"8fbeb3f87aa561dac40c4a25f8721d89fb487664"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"27d02d5749967b8adb8d210655700a702231ebfb","unresolved":true,"context_lines":[{"line_number":6,"context_line":"  - |"},{"line_number":7,"context_line":"    PXEAnacondaDeploy interface\u0027s deploy() method did not return"},{"line_number":8,"context_line":"    states.DEPLOYWAIT so the instance went straight to \u0027active\u0027 instead of"},{"line_number":9,"context_line":"    \u0027wait call-back\u0027."},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    Fixes an issue were the anaconda deploy interface mistakenly expected"},{"line_number":12,"context_line":"    \u0027squashfs_id\u0027 instead of \u0027stage2_id\u0027  property on the image."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9d901136_f5d4510b","line":9,"updated":"2021-10-27 14:50:38.000000000","message":"maybe add \u0027This is fixed.\u0027","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"27d02d5749967b8adb8d210655700a702231ebfb","unresolved":true,"context_lines":[{"line_number":8,"context_line":"    states.DEPLOYWAIT so the instance went straight to \u0027active\u0027 instead of"},{"line_number":9,"context_line":"    \u0027wait call-back\u0027."},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    Fixes an issue were the anaconda deploy interface mistakenly expected"},{"line_number":12,"context_line":"    \u0027squashfs_id\u0027 instead of \u0027stage2_id\u0027  property on the image."},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    Fixes the heartbeat mechanism in the default kickstart template"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"986a9031_6e022582","line":11,"updated":"2021-10-27 14:50:38.000000000","message":"s/were/where/","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"27d02d5749967b8adb8d210655700a702231ebfb","unresolved":true,"context_lines":[{"line_number":15,"context_line":"    ks.cfg.template as the heartbeat API only accepts \u0027POST\u0027 and expects a"},{"line_number":16,"context_line":"    mandatory \u0027callback_url\u0027 parameter."},{"line_number":17,"context_line":"  - |"},{"line_number":18,"context_line":"    Fix handling of tarball images in anaconda deploy interface. Allows user"},{"line_number":19,"context_line":"    specified file extensions to be ppended to the disk image symlink. Users"},{"line_number":20,"context_line":"    can now set the file extensions by setting the \u0027disk_file_extension\u0027"},{"line_number":21,"context_line":"    property on the OS image. This enables users to deploy tarballs with"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"d59a26fa_7464a7ff","line":18,"updated":"2021-10-27 14:50:38.000000000","message":"nit s/Fix/Fixes/","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"27d02d5749967b8adb8d210655700a702231ebfb","unresolved":true,"context_lines":[{"line_number":16,"context_line":"    mandatory \u0027callback_url\u0027 parameter."},{"line_number":17,"context_line":"  - |"},{"line_number":18,"context_line":"    Fix handling of tarball images in anaconda deploy interface. Allows user"},{"line_number":19,"context_line":"    specified file extensions to be ppended to the disk image symlink. Users"},{"line_number":20,"context_line":"    can now set the file extensions by setting the \u0027disk_file_extension\u0027"},{"line_number":21,"context_line":"    property on the OS image. This enables users to deploy tarballs with"},{"line_number":22,"context_line":"    anaconda deploy interface."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"bc680ec3_3d617880","line":19,"updated":"2021-10-27 14:50:38.000000000","message":"nit s/ppended/appended/","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"27d02d5749967b8adb8d210655700a702231ebfb","unresolved":true,"context_lines":[{"line_number":21,"context_line":"    property on the OS image. This enables users to deploy tarballs with"},{"line_number":22,"context_line":"    anaconda deploy interface."},{"line_number":23,"context_line":"  - |"},{"line_number":24,"context_line":"    Fix issue where automated cleaning was not supported when anaconda deploy"},{"line_number":25,"context_line":"    interface is used."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"405664e7_63c84cf5","line":24,"updated":"2021-10-27 14:50:38.000000000","message":"nit s/Fix/Fixes/","commit_id":"0c5fd154320c33a698113821eb7ad3a85af9968e"}],"releasenotes/notes/fix-kickstart-options-bf4a28eaa3535f14.yaml":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f2105cf4a49a6801a91545c16566d537fb63b828","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix a bug where \u0027ks_options\u0027 key was not found when rendering the default"},{"line_number":5,"context_line":"    kickstart template. The default kickstart template expects a dictionary"},{"line_number":6,"context_line":"    with \u0027ks_options\u0027 as key and another dictionary containing \u0027liveimg_url\u0027,"},{"line_number":7,"context_line":"    \u0027agent_token\u0027 and \u0027heartbeat_url\u0027 as value."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"4a33756a_4612405f","line":4,"updated":"2021-10-21 20:53:07.000000000","message":"I think we should include something like s/Fix a bug/Fixes a bug with the anaconda deploy interface, where/","commit_id":"626e622a5910f49539ca0c888b00320402232b7f"}]}
