)]}'
{"ironic/drivers/modules/ipxe_config.template":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b153bbfb5eb673699b7f28919ff40c3909e67bd2","unresolved":false,"context_lines":[{"line_number":22,"context_line":"{% if pxe_options.password %}set password {{ pxe_options.password }}{% endif %}"},{"line_number":23,"context_line":"{% if pxe_options.iscsi_initiator_iqn %}set initiator-iqn {{ pxe_options.iscsi_initiator_iqn }}{% endif %}"},{"line_number":24,"context_line":"sanhook --drive 0x80 {{ pxe_options.iscsi_boot_url }} || goto fail_iscsi_retry"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"{%- if pxe_options.iscsi_volumes %}{% for i, volume in enumerate(pxe_options.iscsi_volumes) %}"},{"line_number":27,"context_line":"set username {{ volume.username }}"},{"line_number":28,"context_line":"set password {{ volume.password }}"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"5f7c97a3_1aa54f47","line":25,"updated":"2018-05-29 20:43:25.000000000","message":"I asked this on the templae output, and still wondering if we need the excess line?","commit_id":"2f43506cf5eb6221f8bcb86fb2709f1b69fa08a9"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5947c549bdd93fa1463a0f8cb661f80de62b0ddf","unresolved":false,"context_lines":[{"line_number":22,"context_line":"{% if pxe_options.password %}set password {{ pxe_options.password }}{% endif %}"},{"line_number":23,"context_line":"{% if pxe_options.iscsi_initiator_iqn %}set initiator-iqn {{ pxe_options.iscsi_initiator_iqn }}{% endif %}"},{"line_number":24,"context_line":"sanhook --drive 0x80 {{ pxe_options.iscsi_boot_url }} || goto fail_iscsi_retry"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"{%- if pxe_options.iscsi_volumes %}{% for i, volume in enumerate(pxe_options.iscsi_volumes) %}"},{"line_number":27,"context_line":"set username {{ volume.username }}"},{"line_number":28,"context_line":"set password {{ volume.password }}"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"5f7c97a3_e6a79a4f","line":25,"in_reply_to":"5f7c97a3_1aa54f47","updated":"2018-05-30 01:40:57.000000000","message":"Removed. Thanks","commit_id":"2f43506cf5eb6221f8bcb86fb2709f1b69fa08a9"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"ab01aff2d3bf4ebddba7d69bef81faeca5a0e99b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"set username {{ volume.username }}"},{"line_number":27,"context_line":"set password {{ volume.password }}"},{"line_number":28,"context_line":"{%- set drive_id \u003d 81 + i %}"},{"line_number":29,"context_line":"sanhook --drive 0x{{ drive_id }} {{ volume.url }} || goto fail_iscsi_retry"},{"line_number":30,"context_line":"{%- endfor %}{% endif %}"},{"line_number":31,"context_line":"{% if pxe_options.iscsi_volumes %}set username {{ pxe_options.username }}{% endif %}"},{"line_number":32,"context_line":"{% if pxe_options.iscsi_volumes %}set password {{ pxe_options.password }}{% endif %}"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"5f7c97a3_83b333e9","line":29,"updated":"2018-05-30 06:45:11.000000000","message":"It would be better to treat drive IDs in hexadecimal though there may not be a problem in practice.\n\n  set drive_id \u003d 129 + i\n  sanhook --drive {{ \u00270x%x\u0027 % drive_id}} ...\n\n(There might be a more elegant expression.)","commit_id":"89fdf5c619c44e88f4d88dfe646aa0c962f80046"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"41545f372dd4743d037b5ea5300ea41782d18e90","unresolved":false,"context_lines":[{"line_number":26,"context_line":"set username {{ volume.username }}"},{"line_number":27,"context_line":"set password {{ volume.password }}"},{"line_number":28,"context_line":"{%- set drive_id \u003d 81 + i %}"},{"line_number":29,"context_line":"sanhook --drive 0x{{ drive_id }} {{ volume.url }} || goto fail_iscsi_retry"},{"line_number":30,"context_line":"{%- endfor %}{% endif %}"},{"line_number":31,"context_line":"{% if pxe_options.iscsi_volumes %}set username {{ pxe_options.username }}{% endif %}"},{"line_number":32,"context_line":"{% if pxe_options.iscsi_volumes %}set password {{ pxe_options.password }}{% endif %}"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"5f7c97a3_9662933d","line":29,"in_reply_to":"5f7c97a3_83b333e9","updated":"2018-05-30 07:26:39.000000000","message":"Done","commit_id":"89fdf5c619c44e88f4d88dfe646aa0c962f80046"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"45874d7cde2b2263071e48ebe5eb591ab0564c49","unresolved":false,"context_lines":[{"line_number":22,"context_line":"{% if pxe_options.password %}set password {{ pxe_options.password }}{% endif %}"},{"line_number":23,"context_line":"{% if pxe_options.iscsi_initiator_iqn %}set initiator-iqn {{ pxe_options.iscsi_initiator_iqn }}{% endif %}"},{"line_number":24,"context_line":"sanhook --drive 0x80 {{ pxe_options.iscsi_boot_url }} || goto fail_iscsi_retry"},{"line_number":25,"context_line":"{%- if pxe_options.iscsi_volumes %}{% for i, volume in enumerate(pxe_options.iscsi_volumes) %}"},{"line_number":26,"context_line":"set username {{ volume.username }}"},{"line_number":27,"context_line":"set password {{ volume.password }}"},{"line_number":28,"context_line":"{%- set drive_id \u003d 129 + i %}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"5f7c97a3_25225fba","line":25,"range":{"start_line":25,"start_character":55,"end_line":25,"end_character":64},"updated":"2018-05-30 12:12:23.000000000","message":"why do you need to do this vs loop.index0 on L28?","commit_id":"d27b27679f71a41e114dea42ecf92a17287686ad"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"debfb6039d86435dab3bd9e580bb0602ebe9a3ae","unresolved":false,"context_lines":[{"line_number":22,"context_line":"{% if pxe_options.password %}set password {{ pxe_options.password }}{% endif %}"},{"line_number":23,"context_line":"{% if pxe_options.iscsi_initiator_iqn %}set initiator-iqn {{ pxe_options.iscsi_initiator_iqn }}{% endif %}"},{"line_number":24,"context_line":"sanhook --drive 0x80 {{ pxe_options.iscsi_boot_url }} || goto fail_iscsi_retry"},{"line_number":25,"context_line":"{%- if pxe_options.iscsi_volumes %}{% for i, volume in enumerate(pxe_options.iscsi_volumes) %}"},{"line_number":26,"context_line":"set username {{ volume.username }}"},{"line_number":27,"context_line":"set password {{ volume.password }}"},{"line_number":28,"context_line":"{%- set drive_id \u003d 129 + i %}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"5f7c97a3_65528915","line":25,"range":{"start_line":25,"start_character":55,"end_line":25,"end_character":64},"in_reply_to":"5f7c97a3_25225fba","updated":"2018-05-31 01:06:52.000000000","message":"This code already for multi attached volumes, thus we could have list of multi dicts in iscsi_volumes. Currently, we only sandboot with two volumes for maximum from iBFT. I am not sure about why loop.index() only return 1 during my testing. Thus I use i key for increase drive_id for this situation.","commit_id":"d27b27679f71a41e114dea42ecf92a17287686ad"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"123809756082786943f9eebc5d8783656553812d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"{% if pxe_options.password %}set password {{ pxe_options.password }}{% endif %}"},{"line_number":23,"context_line":"{% if pxe_options.iscsi_initiator_iqn %}set initiator-iqn {{ pxe_options.iscsi_initiator_iqn }}{% endif %}"},{"line_number":24,"context_line":"sanhook --drive 0x80 {{ pxe_options.iscsi_boot_url }} || goto fail_iscsi_retry"},{"line_number":25,"context_line":"{%- if pxe_options.iscsi_volumes %}{% for i, volume in enumerate(pxe_options.iscsi_volumes) %}"},{"line_number":26,"context_line":"set username {{ volume.username }}"},{"line_number":27,"context_line":"set password {{ volume.password }}"},{"line_number":28,"context_line":"{%- set drive_id \u003d 129 + i %}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"5f7c97a3_3196044e","line":25,"range":{"start_line":25,"start_character":55,"end_line":25,"end_character":64},"in_reply_to":"5f7c97a3_65528915","updated":"2018-05-31 21:47:32.000000000","message":"That might have just been something we overlooked. We were intentionally kind of waiting for someone to come along and find bugs in mutliattach. :)  FWIW, it makes sense to me if the template renders correctl. Thanks!","commit_id":"d27b27679f71a41e114dea42ecf92a17287686ad"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3ac56b48ae3471e3d7d0c8cde2634e3fcc5672ab","unresolved":false,"context_lines":[{"line_number":26,"context_line":"set username {{ volume.username }}"},{"line_number":27,"context_line":"set password {{ volume.password }}"},{"line_number":28,"context_line":"{%- set drive_id \u003d 129 + i %}"},{"line_number":29,"context_line":"sanhook --drive {{ \u00270x%x\u0027 % drive_id }} {{ volume.url }} || goto fail_iscsi_retry"},{"line_number":30,"context_line":"{%- endfor %}{% endif %}"},{"line_number":31,"context_line":"{% if pxe_options.iscsi_volumes %}set username {{ pxe_options.username }}{% endif %}"},{"line_number":32,"context_line":"{% if pxe_options.iscsi_volumes %}set password {{ pxe_options.password }}{% endif %}"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"5f7c97a3_f1740c38","line":29,"updated":"2018-05-31 21:49:51.000000000","message":"Thanks! I have to agree, it does look a little more elegant!","commit_id":"d27b27679f71a41e114dea42ecf92a17287686ad"}],"ironic/drivers/modules/pxe.py":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"7f7e2aa244a2e6169372b0cb9c07346df9344886","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        deploy_utils.is_iscsi_boot(task))"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"def _generate_account_extra_volume(properties):"},{"line_number":289,"context_line":"        \"\"\"Returns accounts for extra volume.\"\"\""},{"line_number":290,"context_line":"        accounts \u003d {}"},{"line_number":291,"context_line":"        accounts.update("}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_f2d0caf9","line":288,"updated":"2018-05-29 07:49:19.000000000","message":"I prefer putting this method around line 323 with similar methods.","commit_id":"3f909bcd9877b936371205bce3a8f648e301801a"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a5855e4808921fa0b6dac253d6b9aee2aece8ee7","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        deploy_utils.is_iscsi_boot(task))"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"def _generate_account_extra_volume(properties):"},{"line_number":289,"context_line":"        \"\"\"Returns accounts for extra volume.\"\"\""},{"line_number":290,"context_line":"        accounts \u003d {}"},{"line_number":291,"context_line":"        accounts.update("}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_1dcd5784","line":288,"in_reply_to":"5f7c97a3_f2d0caf9","updated":"2018-05-29 08:12:04.000000000","message":"Yes. Agree with your opinion.","commit_id":"3f909bcd9877b936371205bce3a8f648e301801a"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"7f7e2aa244a2e6169372b0cb9c07346df9344886","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            if target.boot_index !\u003d 0 and \u0027iscsi\u0027 in target.volume_type:"},{"line_number":349,"context_line":"                additional_targets.append("},{"line_number":350,"context_line":"                    __generate_iscsi_url(target.properties))"},{"line_number":351,"context_line":"                accounts_extra.append("},{"line_number":352,"context_line":"                    _generate_account_extra_volume(target.properties))"},{"line_number":353,"context_line":"        pxe_options.update({\u0027iscsi_volumes\u0027: additional_targets,"},{"line_number":354,"context_line":"                            \u0027accounts_extra\u0027: accounts_extra,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_920b968c","line":351,"updated":"2018-05-29 07:49:19.000000000","message":"There is already \u0027additional_targets\u0027. It seems better to use \u0027additional\u0027 instead of \u0027extra\u0027 for consistency.\n\nI prefer putting credential information and a URL into the same dict instead of inserting into separated lists because they are associated with the same target:\n\n  {\u0027url\u0027: iscsi_url,\n   \u0027username\u0027: usename,\n   \u0027password\u0027: password}","commit_id":"3f909bcd9877b936371205bce3a8f648e301801a"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"a5855e4808921fa0b6dac253d6b9aee2aece8ee7","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            if target.boot_index !\u003d 0 and \u0027iscsi\u0027 in target.volume_type:"},{"line_number":349,"context_line":"                additional_targets.append("},{"line_number":350,"context_line":"                    __generate_iscsi_url(target.properties))"},{"line_number":351,"context_line":"                accounts_extra.append("},{"line_number":352,"context_line":"                    _generate_account_extra_volume(target.properties))"},{"line_number":353,"context_line":"        pxe_options.update({\u0027iscsi_volumes\u0027: additional_targets,"},{"line_number":354,"context_line":"                            \u0027accounts_extra\u0027: accounts_extra,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_5db74ff6","line":351,"in_reply_to":"5f7c97a3_920b968c","updated":"2018-05-29 08:12:04.000000000","message":"We can change \u0027additional_targets\u0027 become \u0027extra_targets\u0027. But I suggest to keep this list for future where linux kernel is fixing. This code already for add more than two volumes, thus I want to seperate key/value for each volume. And they also easy to process along with template file and specific key/value of each volume.","commit_id":"3f909bcd9877b936371205bce3a8f648e301801a"}],"ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b153bbfb5eb673699b7f28919ff40c3909e67bd2","unresolved":false,"context_lines":[{"line_number":24,"context_line":"set username fake_username_1"},{"line_number":25,"context_line":"set password fake_password_1"},{"line_number":26,"context_line":"sanhook --drive 0x81 iscsi:fake_host::3260:1:fake_iqn || goto fail_iscsi_retry"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"set username fake_username"},{"line_number":29,"context_line":"set password fake_password"},{"line_number":30,"context_line":"sanboot --no-describe || goto fail_iscsi_retry"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"5f7c97a3_dac357ec","line":27,"updated":"2018-05-29 20:43:25.000000000","message":"Do we need an excess line?","commit_id":"2f43506cf5eb6221f8bcb86fb2709f1b69fa08a9"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5947c549bdd93fa1463a0f8cb661f80de62b0ddf","unresolved":false,"context_lines":[{"line_number":24,"context_line":"set username fake_username_1"},{"line_number":25,"context_line":"set password fake_password_1"},{"line_number":26,"context_line":"sanhook --drive 0x81 iscsi:fake_host::3260:1:fake_iqn || goto fail_iscsi_retry"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"set username fake_username"},{"line_number":29,"context_line":"set password fake_password"},{"line_number":30,"context_line":"sanboot --no-describe || goto fail_iscsi_retry"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"5f7c97a3_26b27295","line":27,"in_reply_to":"5f7c97a3_dac357ec","updated":"2018-05-30 01:40:57.000000000","message":"Sure. Done","commit_id":"2f43506cf5eb6221f8bcb86fb2709f1b69fa08a9"}],"ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b153bbfb5eb673699b7f28919ff40c3909e67bd2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"sanhook --drive 0x80 iscsi:fake_host::3260:0:fake_iqn || goto fail_iscsi_retry"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"sanboot --no-describe || goto fail_iscsi_retry"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":":fail_iscsi_retry"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"5f7c97a3_fa7c13b7","line":26,"updated":"2018-05-29 20:43:25.000000000","message":"\\o/ jinja2! I\u0027m fairly sure we can suppress these excess lines, but otherwise I think it should be fine.","commit_id":"2f43506cf5eb6221f8bcb86fb2709f1b69fa08a9"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5947c549bdd93fa1463a0f8cb661f80de62b0ddf","unresolved":false,"context_lines":[{"line_number":23,"context_line":"sanhook --drive 0x80 iscsi:fake_host::3260:0:fake_iqn || goto fail_iscsi_retry"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"sanboot --no-describe || goto fail_iscsi_retry"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":":fail_iscsi_retry"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"5f7c97a3_46af6e29","line":26,"in_reply_to":"5f7c97a3_fa7c13b7","updated":"2018-05-30 01:40:57.000000000","message":"jinja2 auto render template file and we only remove 1 line in the next patch.","commit_id":"2f43506cf5eb6221f8bcb86fb2709f1b69fa08a9"}],"releasenotes/notes/fix-multi-attached-volumes-092ffedbdcf0feac.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b153bbfb5eb673699b7f28919ff40c3909e67bd2","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix an issue with authentication during boot from volume with multi attached"},{"line_number":5,"context_line":"    volumes."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5f7c97a3_9a471f78","line":5,"updated":"2018-05-29 20:43:25.000000000","message":"We should likely indicate that this is when iPXE is used.","commit_id":"2f43506cf5eb6221f8bcb86fb2709f1b69fa08a9"},{"author":{"_account_id":25254,"name":"Nguyen Van Trung","email":"trungnvfet@outlook.com","username":"trungnv"},"change_message_id":"5947c549bdd93fa1463a0f8cb661f80de62b0ddf","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix an issue with authentication during boot from volume with multi attached"},{"line_number":5,"context_line":"    volumes."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5f7c97a3_465d2e45","line":5,"in_reply_to":"5f7c97a3_9a471f78","updated":"2018-05-30 01:40:57.000000000","message":"Done","commit_id":"2f43506cf5eb6221f8bcb86fb2709f1b69fa08a9"}]}
