)]}'
{"ironic/common/pxe_utils.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f31923fdd0ee979b74ae4282941f530790208c42","unresolved":true,"context_lines":[{"line_number":927,"context_line":"    node \u003d task.node"},{"line_number":928,"context_line":"    manager_utils.add_secret_token(node, pregenerated\u003dTrue)"},{"line_number":929,"context_line":"    node.save()"},{"line_number":930,"context_line":"    ks_options[\u0027liveimg_url\u0027] \u003d node.instance_info[\u0027image_url\u0027]"},{"line_number":931,"context_line":"    ks_options[\u0027agent_token\u0027] \u003d node.driver_internal_info[\u0027agent_secret_token\u0027]"},{"line_number":932,"context_line":"    ks_options[\u0027heartbeat_url\u0027] \u003d _build_heartbeat_url(node.uuid)"},{"line_number":933,"context_line":"    return ks_options"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4c97e0_de509818","line":930,"updated":"2021-02-23 00:05:09.000000000","message":"Does this bake in an assumption as to the format of the URL? Or is it already normalized somewhere else?","commit_id":"384bb3c5c4e132618e0895be7d2e08210064deb5"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"5133e2569a6988bd56361f16a63de6a0d710a67a","unresolved":true,"context_lines":[{"line_number":927,"context_line":"    node \u003d task.node"},{"line_number":928,"context_line":"    manager_utils.add_secret_token(node, pregenerated\u003dTrue)"},{"line_number":929,"context_line":"    node.save()"},{"line_number":930,"context_line":"    ks_options[\u0027liveimg_url\u0027] \u003d node.instance_info[\u0027image_url\u0027]"},{"line_number":931,"context_line":"    ks_options[\u0027agent_token\u0027] \u003d node.driver_internal_info[\u0027agent_secret_token\u0027]"},{"line_number":932,"context_line":"    ks_options[\u0027heartbeat_url\u0027] \u003d _build_heartbeat_url(node.uuid)"},{"line_number":933,"context_line":"    return ks_options"}],"source_content_type":"text/x-python","patch_set":4,"id":"a8cb9853_a2929382","line":930,"in_reply_to":"1a4c97e0_de509818","updated":"2021-02-23 02:52:51.000000000","message":"The instance_info is updated with \u0027image_url\u0027 very early in the boot process, please see https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/modules/deploy_utils.py#L1075. It will be a HTTP/HTTP(s) URL","commit_id":"384bb3c5c4e132618e0895be7d2e08210064deb5"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"c49e52bc9be76323268870832c9ea1a44782e24d","unresolved":false,"context_lines":[{"line_number":927,"context_line":"    node \u003d task.node"},{"line_number":928,"context_line":"    manager_utils.add_secret_token(node, pregenerated\u003dTrue)"},{"line_number":929,"context_line":"    node.save()"},{"line_number":930,"context_line":"    ks_options[\u0027liveimg_url\u0027] \u003d node.instance_info[\u0027image_url\u0027]"},{"line_number":931,"context_line":"    ks_options[\u0027agent_token\u0027] \u003d node.driver_internal_info[\u0027agent_secret_token\u0027]"},{"line_number":932,"context_line":"    ks_options[\u0027heartbeat_url\u0027] \u003d _build_heartbeat_url(node.uuid)"},{"line_number":933,"context_line":"    return ks_options"}],"source_content_type":"text/x-python","patch_set":4,"id":"c4d6e084_e18cbf80","line":930,"in_reply_to":"a8cb9853_a2929382","updated":"2021-03-19 22:30:35.000000000","message":"Ack, thanks","commit_id":"384bb3c5c4e132618e0895be7d2e08210064deb5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b513e7320f66645f68b8a7ea4ad3a1889788f5bf","unresolved":true,"context_lines":[{"line_number":863,"context_line":"def build_service_pxe_config(task, instance_image_info,"},{"line_number":864,"context_line":"                             root_uuid_or_disk_id,"},{"line_number":865,"context_line":"                             ramdisk_boot\u003dFalse,"},{"line_number":866,"context_line":"                             anaconda_boot\u003dFalse,"},{"line_number":867,"context_line":"                             ipxe_enabled\u003dFalse,"},{"line_number":868,"context_line":"                             is_whole_disk_image\u003dNone):"},{"line_number":869,"context_line":"    node \u003d task.node"}],"source_content_type":"text/x-python","patch_set":8,"id":"56c3b2b3_b1835eed","line":866,"range":{"start_line":866,"start_character":25,"end_line":866,"end_character":49},"updated":"2021-03-22 14:32:34.000000000","message":"nit:  inserts in the middle and not at the end, in case people have just positional calls.","commit_id":"3e70b5e7f2fed2eee992839cec780dc31c82221e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b513e7320f66645f68b8a7ea4ad3a1889788f5bf","unresolved":true,"context_lines":[{"line_number":1035,"context_line":"def prepare_instance_pxe_config(task, image_info,"},{"line_number":1036,"context_line":"                                iscsi_boot\u003dFalse,"},{"line_number":1037,"context_line":"                                ramdisk_boot\u003dFalse,"},{"line_number":1038,"context_line":"                                anaconda_boot\u003dFalse,"},{"line_number":1039,"context_line":"                                ipxe_enabled\u003dFalse):"},{"line_number":1040,"context_line":"    \"\"\"Prepares the config file for PXE boot"},{"line_number":1041,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9c9d51bf_9f3fbb24","line":1038,"updated":"2021-03-22 14:32:34.000000000","message":"Inserts at mid-definition.","commit_id":"3e70b5e7f2fed2eee992839cec780dc31c82221e"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"d4ed7fbc42d8f74ed3796bfb288aa6ed12fa9007","unresolved":true,"context_lines":[{"line_number":258,"context_line":"        return os.path.join(root_dir, node_uuid, label)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"def get_pxe_options_from_label(http_url, node_uuid, label):"},{"line_number":262,"context_line":"    if label \u003d\u003d \u0027ks_template\u0027:"},{"line_number":263,"context_line":"        return \u0027/\u0027.join([http_url, node_uuid, \u0027ks.cfg.template\u0027])"},{"line_number":264,"context_line":"    elif label \u003d\u003d \u0027ks_cfg\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"449a1fd4_20fd905b","line":261,"range":{"start_line":261,"start_character":4,"end_line":261,"end_character":30},"updated":"2021-03-23 05:24:49.000000000","message":"This method  returns the file path and not PXE options as such. Only difference between this method and get_file_path_from_label() above is the directory from where filepath is returned. Better they be made into a single method or move the common code into a helper method.","commit_id":"e66ad896121bc25ca72689fcd24f3666c5b73f62"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"4b8656f6e9ff233330edfec41dd7b27c81a44c29","unresolved":true,"context_lines":[{"line_number":258,"context_line":"        return os.path.join(root_dir, node_uuid, label)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"def get_pxe_options_from_label(http_url, node_uuid, label):"},{"line_number":262,"context_line":"    if label \u003d\u003d \u0027ks_template\u0027:"},{"line_number":263,"context_line":"        return \u0027/\u0027.join([http_url, node_uuid, \u0027ks.cfg.template\u0027])"},{"line_number":264,"context_line":"    elif label \u003d\u003d \u0027ks_cfg\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"69673c7d_24f2d681","line":261,"range":{"start_line":261,"start_character":4,"end_line":261,"end_character":30},"in_reply_to":"449a1fd4_20fd905b","updated":"2021-03-24 04:51:51.000000000","message":"Thanks for the review. The get_file_path_from_label is a helper method for get_instance_image_info and it is used to compute the filesystem path of various images. The get_pxe_options_from_label method is used to compute the http_url path of the images, this computed http_url path will be eventually used in pxe_options. I can change this method name to \"get_http_url_from_label\" will that work?\n\nSince one method deals with file paths and another with http urls, i\u0027d prefer to keep them separate.","commit_id":"e66ad896121bc25ca72689fcd24f3666c5b73f62"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b9a8692006dc9c5e6ed8925c2b331ade7e7126ce","unresolved":true,"context_lines":[{"line_number":258,"context_line":"        return os.path.join(root_dir, node_uuid, label)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"def get_pxe_options_from_label(http_url, node_uuid, label):"},{"line_number":262,"context_line":"    if label \u003d\u003d \u0027ks_template\u0027:"},{"line_number":263,"context_line":"        return \u0027/\u0027.join([http_url, node_uuid, \u0027ks.cfg.template\u0027])"},{"line_number":264,"context_line":"    elif label \u003d\u003d \u0027ks_cfg\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"b7169a71_432561a4","line":261,"range":{"start_line":261,"start_character":4,"end_line":261,"end_character":30},"in_reply_to":"69673c7d_24f2d681","updated":"2021-03-24 16:32:30.000000000","message":"Arun\u0027s path on this was the consensus during the review jam, since they are just different enough with different intended outcomes, even though some of the conditionals are similar.","commit_id":"e66ad896121bc25ca72689fcd24f3666c5b73f62"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"d4ed7fbc42d8f74ed3796bfb288aa6ed12fa9007","unresolved":true,"context_lines":[{"line_number":689,"context_line":"                elif label \u003d\u003d \u0027ks_cfg\u0027:"},{"line_number":690,"context_line":"                    i_info[label] \u003d \u0027\u0027"},{"line_number":691,"context_line":"                else:"},{"line_number":692,"context_line":"                    i_info[label] \u003d str(iproperties[label + \u0027_id\u0027])"},{"line_number":693,"context_line":"            node.instance_info \u003d i_info"},{"line_number":694,"context_line":"            node.save()"},{"line_number":695,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"dc0826c7_c5eea106","line":692,"range":{"start_line":692,"start_character":40,"end_line":692,"end_character":66},"updated":"2021-03-23 05:24:49.000000000","message":"Is it required to check for the prepsence of key \"\u0027label + \u0027_id\u0027\" in iproperties? It may result in KeyError","commit_id":"e66ad896121bc25ca72689fcd24f3666c5b73f62"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"4b8656f6e9ff233330edfec41dd7b27c81a44c29","unresolved":false,"context_lines":[{"line_number":689,"context_line":"                elif label \u003d\u003d \u0027ks_cfg\u0027:"},{"line_number":690,"context_line":"                    i_info[label] \u003d \u0027\u0027"},{"line_number":691,"context_line":"                else:"},{"line_number":692,"context_line":"                    i_info[label] \u003d str(iproperties[label + \u0027_id\u0027])"},{"line_number":693,"context_line":"            node.instance_info \u003d i_info"},{"line_number":694,"context_line":"            node.save()"},{"line_number":695,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"c213c9b8_5340ab91","line":692,"range":{"start_line":692,"start_character":40,"end_line":692,"end_character":66},"in_reply_to":"dc0826c7_c5eea106","updated":"2021-03-24 04:51:51.000000000","message":"Ack","commit_id":"e66ad896121bc25ca72689fcd24f3666c5b73f62"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b9a8692006dc9c5e6ed8925c2b331ade7e7126ce","unresolved":true,"context_lines":[{"line_number":795,"context_line":"                # as this breaks instance reboot later when temp urls"},{"line_number":796,"context_line":"                # have timed out."},{"line_number":797,"context_line":"                pxe_opts[option] \u003d get_http_url_path_from_label("},{"line_number":798,"context_line":"                    CONF.deploy.http_url, node.uuid, label)"},{"line_number":799,"context_line":"            else:"},{"line_number":800,"context_line":"                # It is possible that we don\u0027t have kernel/ramdisk or even"},{"line_number":801,"context_line":"                # image_source to determine if it\u0027s a whole disk image or not."}],"source_content_type":"text/x-python","patch_set":11,"id":"a9ac62ec_c6d8751d","line":798,"range":{"start_line":798,"start_character":16,"end_line":798,"end_character":41},"updated":"2021-03-24 16:32:30.000000000","message":"So, fwiw, dtantsur *is* proposing a change regarding this parameter pathing, so it *might* conflict in terms of merger. If so, should be quick to resolve since he is only proposing override options.","commit_id":"880bd639f38ba8128e4fb703be0b4a773af83607"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a26f899baed1a1c86cec440faba537414afeff3c","unresolved":true,"context_lines":[{"line_number":795,"context_line":"                # as this breaks instance reboot later when temp urls"},{"line_number":796,"context_line":"                # have timed out."},{"line_number":797,"context_line":"                pxe_opts[option] \u003d get_http_url_path_from_label("},{"line_number":798,"context_line":"                    CONF.deploy.http_url, node.uuid, label)"},{"line_number":799,"context_line":"            else:"},{"line_number":800,"context_line":"                # It is possible that we don\u0027t have kernel/ramdisk or even"},{"line_number":801,"context_line":"                # image_source to determine if it\u0027s a whole disk image or not."}],"source_content_type":"text/x-python","patch_set":11,"id":"5962f9c1_31338f24","line":798,"range":{"start_line":798,"start_character":16,"end_line":798,"end_character":41},"in_reply_to":"a9ac62ec_c6d8751d","updated":"2021-03-24 16:34:14.000000000","message":"actually, looking at Dmitry\u0027s change int he other window, it won\u0027t conflict.","commit_id":"880bd639f38ba8128e4fb703be0b4a773af83607"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b513e7320f66645f68b8a7ea4ad3a1889788f5bf","unresolved":true,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"def _replace_boot_line(path, boot_mode, is_whole_disk_image,"},{"line_number":133,"context_line":"                       trusted_boot\u003dFalse, iscsi_boot\u003dFalse,"},{"line_number":134,"context_line":"                       ramdisk_boot\u003dFalse, anaconda_boot\u003dFalse,"},{"line_number":135,"context_line":"                       ipxe_enabled\u003dFalse):"},{"line_number":136,"context_line":"    if is_whole_disk_image:"},{"line_number":137,"context_line":"        boot_disk_type \u003d \u0027boot_whole_disk\u0027"},{"line_number":138,"context_line":"    elif trusted_boot:"}],"source_content_type":"text/x-python","patch_set":8,"id":"6f1e38af_fe5108e3","line":135,"range":{"start_line":134,"start_character":41,"end_line":135,"end_character":43},"updated":"2021-03-22 14:32:34.000000000","message":"nit: Inserting in the middle, instead of at the end","commit_id":"3e70b5e7f2fed2eee992839cec780dc31c82221e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b513e7320f66645f68b8a7ea4ad3a1889788f5bf","unresolved":true,"context_lines":[{"line_number":166,"context_line":"def switch_pxe_config(path, root_uuid_or_disk_id, boot_mode,"},{"line_number":167,"context_line":"                      is_whole_disk_image, trusted_boot\u003dFalse,"},{"line_number":168,"context_line":"                      iscsi_boot\u003dFalse, ramdisk_boot\u003dFalse,"},{"line_number":169,"context_line":"                      anaconda_boot\u003dFalse, ipxe_enabled\u003dFalse):"},{"line_number":170,"context_line":"    \"\"\"Switch a pxe config from deployment mode to service mode."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    :param path: path to the pxe config file in tftpboot."}],"source_content_type":"text/x-python","patch_set":8,"id":"6c7e6162_f6532795","line":169,"range":{"start_line":169,"start_character":9,"end_line":169,"end_character":63},"updated":"2021-03-22 14:32:34.000000000","message":"nit: inserting in the middle and not at the end.","commit_id":"3e70b5e7f2fed2eee992839cec780dc31c82221e"}],"ironic/tests/unit/drivers/ipxe_config.template":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f31923fdd0ee979b74ae4282941f530790208c42","unresolved":true,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":":boot_anaconda"},{"line_number":35,"context_line":"imgfree"},{"line_number":36,"context_line":"kernel http://1.2.3.4:1234/kernel text test_param inst.ks\u003d inst.stage2\u003d initrd\u003dramdisk || goto boot_anaconda"},{"line_number":37,"context_line":"initrd http://1.2.3.4:1234/ramdisk || goto boot_anaconda"},{"line_number":38,"context_line":"boot"},{"line_number":39,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"cd2b34f3_2a8eb74e","line":36,"updated":"2021-02-23 00:05:09.000000000","message":"Just going to note that none of the other tags in this config are missing values for the keys -- is that OK?","commit_id":"384bb3c5c4e132618e0895be7d2e08210064deb5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8b20718f4eecc614eb8dc0620ca2a92a42ff12c0","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":":boot_anaconda"},{"line_number":35,"context_line":"imgfree"},{"line_number":36,"context_line":"kernel http://1.2.3.4:1234/kernel text test_param inst.ks\u003d inst.stage2\u003d initrd\u003dramdisk || goto boot_anaconda"},{"line_number":37,"context_line":"initrd http://1.2.3.4:1234/ramdisk || goto boot_anaconda"},{"line_number":38,"context_line":"boot"},{"line_number":39,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"73f1e82a_25366ddb","line":36,"in_reply_to":"713dac96_c4d57500","updated":"2021-03-08 19:39:29.000000000","message":"We should test rendering with something in the field... even if it is entirely bogus. FWIW.","commit_id":"384bb3c5c4e132618e0895be7d2e08210064deb5"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"7fa78e6c9d3e74e98367a0fc5da1932fcaaccd84","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":":boot_anaconda"},{"line_number":35,"context_line":"imgfree"},{"line_number":36,"context_line":"kernel http://1.2.3.4:1234/kernel text test_param inst.ks\u003d inst.stage2\u003d initrd\u003dramdisk || goto boot_anaconda"},{"line_number":37,"context_line":"initrd http://1.2.3.4:1234/ramdisk || goto boot_anaconda"},{"line_number":38,"context_line":"boot"},{"line_number":39,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"aed4a490_58345c7c","line":36,"in_reply_to":"73f1e82a_25366ddb","updated":"2021-03-19 22:25:19.000000000","message":"done","commit_id":"384bb3c5c4e132618e0895be7d2e08210064deb5"},{"author":{"_account_id":12640,"name":"Arun S A G","email":"sagarun@gmail.com","username":"sagarun"},"change_message_id":"5133e2569a6988bd56361f16a63de6a0d710a67a","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":":boot_anaconda"},{"line_number":35,"context_line":"imgfree"},{"line_number":36,"context_line":"kernel http://1.2.3.4:1234/kernel text test_param inst.ks\u003d inst.stage2\u003d initrd\u003dramdisk || goto boot_anaconda"},{"line_number":37,"context_line":"initrd http://1.2.3.4:1234/ramdisk || goto boot_anaconda"},{"line_number":38,"context_line":"boot"},{"line_number":39,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"713dac96_c4d57500","line":36,"in_reply_to":"cd2b34f3_2a8eb74e","updated":"2021-02-23 02:52:51.000000000","message":"Ack","commit_id":"384bb3c5c4e132618e0895be7d2e08210064deb5"}]}
