)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"e2349a66eef5f4f46098f5db88a2d07ba5025e9d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support non-persistent boot device"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"By default, Ironic makes persistent changes to the BIOS boot order at the end"},{"line_number":10,"context_line":"of an instance deployment. This may not be desired in all cases, e.g. when DC"},{"line_number":11,"context_line":"policies require to leave the order untouched. While keeping the persistent"},{"line_number":12,"context_line":"approach as the default, this patch proposes a \u0027persistent_boot_device\u0027 option"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fdfeff1_8e9e4161","line":9,"range":{"start_line":9,"start_character":74,"end_line":9,"end_character":77},"updated":"2019-01-24 07:29:43.000000000","message":"Let\u0027s 50/72 git commit message?","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"0ff8b51ea6b69c0e923ef81d6bfd93b0097c6357","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support non-persistent boot device"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"By default, Ironic makes persistent changes to the BIOS boot order at the end"},{"line_number":10,"context_line":"of an instance deployment. This may not be desired in all cases, e.g. when DC"},{"line_number":11,"context_line":"policies require to leave the order untouched. While keeping the persistent"},{"line_number":12,"context_line":"approach as the default, this patch proposes a \u0027persistent_boot_device\u0027 option"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fdfeff1_a2d55945","line":9,"range":{"start_line":9,"start_character":74,"end_line":9,"end_character":77},"in_reply_to":"9fdfeff1_8e9e4161","updated":"2019-01-24 08:04:07.000000000","message":"Done","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"eab618df70dc17da48601cc4149912959111bad4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9fdfeff1_582b3a2f","line":19,"updated":"2019-01-24 10:11:50.000000000","message":"Forgot this in my prev comment, I would also add the Task # if you want to reflect the changes in storyboard","commit_id":"7108a9408cc76244a5a0721d4b441b29a6ab019a"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"53e22c6ca6ddfb615ccac4ab82274ac017ad2d79","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9fdfeff1_183a9233","line":19,"in_reply_to":"9fdfeff1_582b3a2f","updated":"2019-01-24 10:30:34.000000000","message":"Done","commit_id":"7108a9408cc76244a5a0721d4b441b29a6ab019a"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"726261de40f71eed6b237e326f8d4f343daa937b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Arne Wiebalck \u003cArne.Wiebalck@cern.ch\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-02-07 13:04:47 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Optionally preserve BIOS boot order upon instance deployment"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"By default, Ironic makes persistent changes to the BIOS boot order"},{"line_number":10,"context_line":"at the end of an instance deployment. This may not be desired in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"9fdfeff1_f3ab4372","line":7,"range":{"start_line":7,"start_character":20,"end_line":7,"end_character":24},"updated":"2019-02-07 16:57:20.000000000","message":"nit: BTW, why is it \u0027BIOS\u0027 boot order? It feels a bit confusing to me because\n\n1) I am aware of only one [system] boot order\n2) UEFI may or may not be considered BIOS, though boot order is present with UEFI as well\n\nI think life is somewhat messy!","commit_id":"057297e8d404a5e1eb06db7ba9c325cb5267e007"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"387700f62f11267cda618e8b4deea59fdc53540b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Arne Wiebalck \u003cArne.Wiebalck@cern.ch\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-02-07 13:04:47 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Optionally preserve BIOS boot order upon instance deployment"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"By default, Ironic makes persistent changes to the BIOS boot order"},{"line_number":10,"context_line":"at the end of an instance deployment. This may not be desired in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"9fdfeff1_c678bf90","line":7,"range":{"start_line":7,"start_character":20,"end_line":7,"end_character":24},"in_reply_to":"9fdfeff1_f3ab4372","updated":"2019-02-07 17:17:11.000000000","message":"Yes, true ... no good reason why I call it BIOS boot order. Changed to \"system boot order\".","commit_id":"057297e8d404a5e1eb06db7ba9c325cb5267e007"}],"ironic/conf/agent.py":[{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"e2349a66eef5f4f46098f5db88a2d07ba5025e9d","unresolved":false,"context_lines":[{"line_number":110,"context_line":"               help\u003d_(\u0027This is the maximum number of attempts that will be \u0027"},{"line_number":111,"context_line":"                      \u0027done for IPA commands that fails due to network \u0027"},{"line_number":112,"context_line":"                      \u0027problems.\u0027)),"},{"line_number":113,"context_line":"    cfg.BoolOpt(\u0027persistent_boot_device\u0027,"},{"line_number":114,"context_line":"                default\u003dTrue,"},{"line_number":115,"context_line":"                help\u003d_(\u0027Whether Ironic will make the boot device persistent \u0027"},{"line_number":116,"context_line":"                       \u0027after deployment.\u0027)),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_ee502d61","line":113,"range":{"start_line":113,"start_character":17,"end_line":113,"end_character":39},"updated":"2019-01-24 07:29:43.000000000","message":"To me the option sounds a bit confusing because it implies the awareness of the deployment workflow. The end result of applying this option is to preserve the originally configured boot device upon flashing OS image onto the local drive. May be this option would be better understandable if we called it like \u0027retain-existing-boot-device\u0027...?","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"0ff8b51ea6b69c0e923ef81d6bfd93b0097c6357","unresolved":false,"context_lines":[{"line_number":110,"context_line":"               help\u003d_(\u0027This is the maximum number of attempts that will be \u0027"},{"line_number":111,"context_line":"                      \u0027done for IPA commands that fails due to network \u0027"},{"line_number":112,"context_line":"                      \u0027problems.\u0027)),"},{"line_number":113,"context_line":"    cfg.BoolOpt(\u0027persistent_boot_device\u0027,"},{"line_number":114,"context_line":"                default\u003dTrue,"},{"line_number":115,"context_line":"                help\u003d_(\u0027Whether Ironic will make the boot device persistent \u0027"},{"line_number":116,"context_line":"                       \u0027after deployment.\u0027)),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_c2bf3df9","line":113,"range":{"start_line":113,"start_character":17,"end_line":113,"end_character":39},"in_reply_to":"9fdfeff1_ee502d61","updated":"2019-01-24 08:04:07.000000000","message":"It implies you know how the deployment workflow works, true. I agree there is room to avoid user confusion.","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"89b4ee005ecc9df3b86f612759a795153dfa7117","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                default\u003dTrue,"},{"line_number":115,"context_line":"                help\u003d_(\u0027Whether Ironic will make the boot device persistent \u0027"},{"line_number":116,"context_line":"                       \u0027after deployment.\u0027)),"},{"line_number":117,"context_line":"]"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"def register_opts(conf):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_edfef736","line":117,"updated":"2019-01-24 03:09:08.000000000","message":"if this option applies to iscsi too, I think it should be moved to [deploy], but by doing so, I guess this option should be respected by all drivers, which has a larger range than this patch handles.","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"048ca94b9e096ad4f3c4d94749b29f9b880f2ff1","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                default\u003dTrue,"},{"line_number":115,"context_line":"                help\u003d_(\u0027Whether Ironic will make the boot device persistent \u0027"},{"line_number":116,"context_line":"                       \u0027after deployment.\u0027)),"},{"line_number":117,"context_line":"]"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"def register_opts(conf):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_8284d55f","line":117,"in_reply_to":"9fdfeff1_edfef736","updated":"2019-01-24 08:00:31.000000000","message":"Agreed. Let\u0027s wait for the outcome of the discussion before I make additional changes.","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"ccc03b9150b4239cb6fde7d09855c28fbe8528b5","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                      \u0027problems.\u0027)),"},{"line_number":113,"context_line":"    cfg.BoolOpt(\u0027preserve_bios_boot_order\u0027,"},{"line_number":114,"context_line":"                default\u003dFalse,"},{"line_number":115,"context_line":"                help\u003d_(\u0027Whether Ironic will preserve the BIOS boot device \u0027"},{"line_number":116,"context_line":"                       \u0027order upon deployment.\u0027)),"},{"line_number":117,"context_line":"]"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_0556af5d","line":115,"updated":"2019-01-24 09:36:54.000000000","message":"maybe change to \"preserve the original BIOS boot device order\"","commit_id":"7108a9408cc76244a5a0721d4b441b29a6ab019a"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"b37a3f6883fa01d352ce0382440b9819da81396c","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                      \u0027problems.\u0027)),"},{"line_number":113,"context_line":"    cfg.BoolOpt(\u0027preserve_bios_boot_order\u0027,"},{"line_number":114,"context_line":"                default\u003dFalse,"},{"line_number":115,"context_line":"                help\u003d_(\u0027Whether Ironic will preserve the BIOS boot device \u0027"},{"line_number":116,"context_line":"                       \u0027order upon deployment.\u0027)),"},{"line_number":117,"context_line":"]"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_982e82f8","line":115,"in_reply_to":"9fdfeff1_0556af5d","updated":"2019-01-24 10:30:05.000000000","message":"Done","commit_id":"7108a9408cc76244a5a0721d4b441b29a6ab019a"}],"ironic/drivers/modules/agent_base_vendor.py":[{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"e2349a66eef5f4f46098f5db88a2d07ba5025e9d","unresolved":false,"context_lines":[{"line_number":736,"context_line":""},{"line_number":737,"context_line":"        try:"},{"line_number":738,"context_line":"            persistent \u003d CONF.agent.persistent_boot_device"},{"line_number":739,"context_line":"            deploy_utils.try_set_boot_device(task, boot_devices.DISK,"},{"line_number":740,"context_line":"                                             persistent\u003dpersistent)"},{"line_number":741,"context_line":"        except Exception as e:"},{"line_number":742,"context_line":"            msg \u003d (_(\"Failed to change the boot device to %(boot_dev)s \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_ce3e8928","line":739,"range":{"start_line":739,"start_character":25,"end_line":739,"end_character":44},"updated":"2019-01-24 07:29:43.000000000","message":"Do we need to touch boot device at all if our goal is to preserve the original setting?\n\nIf we set boot device non-persistently, does it mean that the very next boot will still happen from the local drive rather than from the boot device we are trying to preserve?","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"e2349a66eef5f4f46098f5db88a2d07ba5025e9d","unresolved":false,"context_lines":[{"line_number":736,"context_line":""},{"line_number":737,"context_line":"        try:"},{"line_number":738,"context_line":"            persistent \u003d CONF.agent.persistent_boot_device"},{"line_number":739,"context_line":"            deploy_utils.try_set_boot_device(task, boot_devices.DISK,"},{"line_number":740,"context_line":"                                             persistent\u003dpersistent)"},{"line_number":741,"context_line":"        except Exception as e:"},{"line_number":742,"context_line":"            msg \u003d (_(\"Failed to change the boot device to %(boot_dev)s \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_6e7c3deb","line":739,"range":{"start_line":739,"start_character":64,"end_line":739,"end_character":68},"updated":"2019-01-24 07:29:43.000000000","message":"Would it make sense to have this new option a bit more generic by allowing boot device specification such as \u0027disk\u0027, \u0027network\u0027, \u0027leave-as-is\u0027...?","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"0ff8b51ea6b69c0e923ef81d6bfd93b0097c6357","unresolved":false,"context_lines":[{"line_number":736,"context_line":""},{"line_number":737,"context_line":"        try:"},{"line_number":738,"context_line":"            persistent \u003d CONF.agent.persistent_boot_device"},{"line_number":739,"context_line":"            deploy_utils.try_set_boot_device(task, boot_devices.DISK,"},{"line_number":740,"context_line":"                                             persistent\u003dpersistent)"},{"line_number":741,"context_line":"        except Exception as e:"},{"line_number":742,"context_line":"            msg \u003d (_(\"Failed to change the boot device to %(boot_dev)s \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_22464923","line":739,"range":{"start_line":739,"start_character":25,"end_line":739,"end_character":44},"in_reply_to":"9fdfeff1_ce3e8928","updated":"2019-01-24 08:04:07.000000000","message":"\u003e Do we need to touch boot device at all if our goal is to preserve the original setting?\nWe don\u0027t. We be good enough for me :)\n\n\u003e Do we need to touch boot device at all if our goal is to preserve the original setting?\nAbsolutely. But I making non-persistent changes does not conflict with the overall goal of preserving the BIOS boot order.","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"72c758d3d4d44d21e65d5fe5e78875cea6720ee2","unresolved":false,"context_lines":[{"line_number":736,"context_line":""},{"line_number":737,"context_line":"        try:"},{"line_number":738,"context_line":"            persistent \u003d True"},{"line_number":739,"context_line":"            if node.driver_info.get(\u0027force_persistent_boot_device\u0027,"},{"line_number":740,"context_line":"                                    \u0027Default\u0027) \u003d\u003d \u0027Never\u0027:"},{"line_number":741,"context_line":"                persistent \u003d False"},{"line_number":742,"context_line":"            deploy_utils.try_set_boot_device(task, boot_devices.DISK,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_905ea0e7","line":739,"range":{"start_line":739,"start_character":37,"end_line":739,"end_character":65},"updated":"2019-02-05 10:21:59.000000000","message":"Need to add testcases where this option is used.","commit_id":"5f1838686b9b95ef69a9a3b2cbeeca9fcfb762ad"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"569543fa077bc8bbcbc092cec76dca467ff561c5","unresolved":false,"context_lines":[{"line_number":736,"context_line":""},{"line_number":737,"context_line":"        try:"},{"line_number":738,"context_line":"            persistent \u003d True"},{"line_number":739,"context_line":"            if node.driver_info.get(\u0027force_persistent_boot_device\u0027,"},{"line_number":740,"context_line":"                                    \u0027Default\u0027) \u003d\u003d \u0027Never\u0027:"},{"line_number":741,"context_line":"                persistent \u003d False"},{"line_number":742,"context_line":"            deploy_utils.try_set_boot_device(task, boot_devices.DISK,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_fb1cadc2","line":739,"range":{"start_line":739,"start_character":37,"end_line":739,"end_character":65},"in_reply_to":"9fdfeff1_905ea0e7","updated":"2019-02-05 11:36:33.000000000","message":"Done","commit_id":"5f1838686b9b95ef69a9a3b2cbeeca9fcfb762ad"}],"ironic/drivers/modules/ipxe.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"631ca782397c0faf3d312f32b0c6eba2d3f41914","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        # during takeover"},{"line_number":267,"context_line":"        if boot_device and task.node.provision_state !\u003d states.ACTIVE:"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"            # NOTE(arne_wiebalck): \u0027force_persistent_boot_device\u0027 takes"},{"line_number":270,"context_line":"            # priority to determine if the last boot order change shall"},{"line_number":271,"context_line":"            # be persistent"},{"line_number":272,"context_line":"            persistent \u003d strutils.bool_from_string("},{"line_number":273,"context_line":"                node.driver_info.get(\u0027force_persistent_boot_device\u0027,"},{"line_number":274,"context_line":"                                     False))"},{"line_number":275,"context_line":"            if not persistent:"},{"line_number":276,"context_line":"                persistent \u003d not CONF.deploy.preserve_bios_boot_order"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_834789bc","line":274,"range":{"start_line":269,"start_character":0,"end_line":274,"end_character":44},"updated":"2019-01-31 05:18:07.000000000","message":"Why are we not doing this check in the agent_base_vendor.py ? Both the places its during setting of boot device for the instance boot.\nHowever, as per config documentation, this option applies only during provisioning/cleaning and not during the instance boot [1] and [2].\n\nI was thinking if we can mark \u0027force_persistent_boot_device\u0027 for obsolescence and have a new config which caters to all the boot order persistence combinations. This would simplify the usage and understanding of config. There cane be possible 4 values for that config based on \u0027persistent\u0027 flag of boot device during provisioning are:-\n1. persistent\u003dFalse during provisioning and persistent\u003dTrue for instance boot   \u003d\u003e This is the default behavior today \n2. persistent\u003dTrue during provisioning and persistent\u003dTrue for instance boot  \u003d\u003e This is the behavior when force_persistent_boot_device\u003dTrue\n3. persistent\u003dFalse during provisioning and persistent\u003dFalse for instance boot  \u003d\u003e This is something you would want to preserve BIOS boot order.\n4. persistent\u003dTrue during provisioning and persistent\u003dTrue for instance boot  \n\n[1] https://github.com/openstack/ironic/blob/de189641fa18538aa866cd5842aee2873d8cbcaf/ironic/drivers/modules/pxe_base.py#L33-L37\n[2] https://github.com/openstack/ironic/blob/ea302a8cd59c8ed487d8f378825c6c55b19ddc92/doc/source/admin/interfaces/boot.rst#enable-persistent-boot-device-for-deployclean-operation","commit_id":"56be3e7c1078aaeca5837df2194d0211de64500a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d6f951d83109715ad98c0657e09f3c7e9e3f5fa4","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                                    pxe_config_template,"},{"line_number":167,"context_line":"                                    ipxe_enabled\u003dTrue)"},{"line_number":168,"context_line":"        persistent \u003d False"},{"line_number":169,"context_line":"        if node.driver_info.get(\u0027force_persistent_boot_device\u0027,"},{"line_number":170,"context_line":"                                \u0027Default\u0027) in {\u0027True\u0027, \u0027Always\u0027}:"},{"line_number":171,"context_line":"            persistent \u003d True"},{"line_number":172,"context_line":"        manager_utils.node_set_boot_device(task, boot_devices.PXE,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_30678b28","line":169,"range":{"start_line":169,"start_character":11,"end_line":169,"end_character":62},"updated":"2019-02-07 05:17:16.000000000","message":"So what if someone sets the value to \"true\" and not \"True\". strutils.bool_from_string would keep that working. As is, we wouldn\u0027t treat that as True anymore. This seems like it would break some users. I guess the solution is to extend the values to be checked if what we get matches.","commit_id":"73e9aa06434ea27ef77fb2c5bc36ab98f0e2f4ca"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"370d1e27d166ed0d2a52cbcb3787b782e3509e55","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                                    pxe_config_template,"},{"line_number":167,"context_line":"                                    ipxe_enabled\u003dTrue)"},{"line_number":168,"context_line":"        persistent \u003d False"},{"line_number":169,"context_line":"        if node.driver_info.get(\u0027force_persistent_boot_device\u0027,"},{"line_number":170,"context_line":"                                \u0027Default\u0027) in {\u0027True\u0027, \u0027Always\u0027}:"},{"line_number":171,"context_line":"            persistent \u003d True"},{"line_number":172,"context_line":"        manager_utils.node_set_boot_device(task, boot_devices.PXE,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_709bce65","line":169,"range":{"start_line":169,"start_character":11,"end_line":169,"end_character":62},"in_reply_to":"9fdfeff1_30678b28","updated":"2019-02-07 12:04:12.000000000","message":"That\u0027s true (and True ;), fixed!","commit_id":"73e9aa06434ea27ef77fb2c5bc36ab98f0e2f4ca"}],"ironic/drivers/modules/pxe.py":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"89b4ee005ecc9df3b86f612759a795153dfa7117","unresolved":false,"context_lines":[{"line_number":277,"context_line":"            persistent \u003d CONF.agent.persistent_boot_device"},{"line_number":278,"context_line":"            manager_utils.node_set_boot_device(task, boot_device,"},{"line_number":279,"context_line":"                                               persistent\u003dpersistent)"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    @METRICS.timer(\u0027PXEBoot.clean_up_instance\u0027)"},{"line_number":282,"context_line":"    def clean_up_instance(self, task):"},{"line_number":283,"context_line":"        \"\"\"Cleans up the boot of instance."}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_cdb1b391","line":280,"updated":"2019-01-24 03:09:08.000000000","message":"I guess same logic may required for the iPXEBoot, we are trying to split two interfaces but there are many duplicated codes at this time.","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"048ca94b9e096ad4f3c4d94749b29f9b880f2ff1","unresolved":false,"context_lines":[{"line_number":277,"context_line":"            persistent \u003d CONF.agent.persistent_boot_device"},{"line_number":278,"context_line":"            manager_utils.node_set_boot_device(task, boot_device,"},{"line_number":279,"context_line":"                                               persistent\u003dpersistent)"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    @METRICS.timer(\u0027PXEBoot.clean_up_instance\u0027)"},{"line_number":282,"context_line":"    def clean_up_instance(self, task):"},{"line_number":283,"context_line":"        \"\"\"Cleans up the boot of instance."}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_02af85e3","line":280,"in_reply_to":"9fdfeff1_cdb1b391","updated":"2019-01-24 08:00:31.000000000","message":"Agreed. Let\u0027s wait for the outcome of the discussion before I add this.","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"}],"ironic/drivers/modules/pxe_base.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"99989279cca6d26ec3f1a75c65279e683f5e441b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                        \"mounted at boot time. Required.\"),"},{"line_number":32,"context_line":"}"},{"line_number":33,"context_line":"OPTIONAL_PROPERTIES \u003d {"},{"line_number":34,"context_line":"    \u0027force_persistent_boot_device\u0027: _(\"Controls the persistency of boot order \""},{"line_number":35,"context_line":"                                      \"changes. \u0027Always\u0027 will make all \""},{"line_number":36,"context_line":"                                      \"changes persistent, \u0027Default\u0027 will \""},{"line_number":37,"context_line":"                                      \"make all but the final one upon \""},{"line_number":38,"context_line":"                                      \"instance deployment non-persistent, \""},{"line_number":39,"context_line":"                                      \"and \u0027Never\u0027 will make no persistent \""},{"line_number":40,"context_line":"                                      \"changes at all. \""},{"line_number":41,"context_line":"                                      \"Defaults to \u0027Default\u0027. Optional.\"),"},{"line_number":42,"context_line":"}"},{"line_number":43,"context_line":"RESCUE_PROPERTIES \u003d {"},{"line_number":44,"context_line":"    \u0027rescue_kernel\u0027: _(\u0027UUID (from Glance) of the rescue kernel. This value \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_f8e36a03","line":41,"range":{"start_line":34,"start_character":38,"end_line":41,"end_character":72},"updated":"2019-02-04 09:26:36.000000000","message":"Also we may have to indicate that the older values of \u0027True\u0027 and \u0027False\u0027 are deprecated in favor of \u0027Default\u0027, \u0027Never\u0027  and \u0027Always\u0027.","commit_id":"14ecb99de1418eeeb7664540769fc959288d6585"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"d9151ccac30afaad8487c8337d127da5f474a63e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                        \"mounted at boot time. Required.\"),"},{"line_number":32,"context_line":"}"},{"line_number":33,"context_line":"OPTIONAL_PROPERTIES \u003d {"},{"line_number":34,"context_line":"    \u0027force_persistent_boot_device\u0027: _(\"Controls the persistency of boot order \""},{"line_number":35,"context_line":"                                      \"changes. \u0027Always\u0027 will make all \""},{"line_number":36,"context_line":"                                      \"changes persistent, \u0027Default\u0027 will \""},{"line_number":37,"context_line":"                                      \"make all but the final one upon \""},{"line_number":38,"context_line":"                                      \"instance deployment non-persistent, \""},{"line_number":39,"context_line":"                                      \"and \u0027Never\u0027 will make no persistent \""},{"line_number":40,"context_line":"                                      \"changes at all. \""},{"line_number":41,"context_line":"                                      \"Defaults to \u0027Default\u0027. Optional.\"),"},{"line_number":42,"context_line":"}"},{"line_number":43,"context_line":"RESCUE_PROPERTIES \u003d {"},{"line_number":44,"context_line":"    \u0027rescue_kernel\u0027: _(\u0027UUID (from Glance) of the rescue kernel. This value \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_53eb7911","line":41,"range":{"start_line":34,"start_character":38,"end_line":41,"end_character":72},"in_reply_to":"9fdfeff1_f8e36a03","updated":"2019-02-04 10:18:01.000000000","message":"Done","commit_id":"14ecb99de1418eeeb7664540769fc959288d6585"}],"ironic/tests/unit/drivers/modules/test_ipxe.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":"d6f951d83109715ad98c0657e09f3c7e9e3f5fa4","unresolved":false,"context_lines":[{"line_number":311,"context_line":"    def test_prepare_ramdisk_force_persistent_boot_device_enabled(self):"},{"line_number":312,"context_line":"        self.node.provision_state \u003d states.DEPLOYING"},{"line_number":313,"context_line":"        driver_info \u003d self.node.driver_info"},{"line_number":314,"context_line":"        driver_info[\u0027force_persistent_boot_device\u0027] \u003d \u0027True\u0027"},{"line_number":315,"context_line":"        self.node.driver_info \u003d driver_info"},{"line_number":316,"context_line":"        self.node.save()"},{"line_number":317,"context_line":"        self._test_prepare_ramdisk(persistent\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_507fafaa","line":314,"updated":"2019-02-07 05:17:16.000000000","message":"We should duplicate this with a check for boolean being stored as well as the string \u0027true\u0027 because it is a dictionary field and users can be slightly inconsistent.","commit_id":"73e9aa06434ea27ef77fb2c5bc36ab98f0e2f4ca"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"370d1e27d166ed0d2a52cbcb3787b782e3509e55","unresolved":false,"context_lines":[{"line_number":311,"context_line":"    def test_prepare_ramdisk_force_persistent_boot_device_enabled(self):"},{"line_number":312,"context_line":"        self.node.provision_state \u003d states.DEPLOYING"},{"line_number":313,"context_line":"        driver_info \u003d self.node.driver_info"},{"line_number":314,"context_line":"        driver_info[\u0027force_persistent_boot_device\u0027] \u003d \u0027True\u0027"},{"line_number":315,"context_line":"        self.node.driver_info \u003d driver_info"},{"line_number":316,"context_line":"        self.node.save()"},{"line_number":317,"context_line":"        self._test_prepare_ramdisk(persistent\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_309d4657","line":314,"in_reply_to":"9fdfeff1_507fafaa","updated":"2019-02-07 12:04:12.000000000","message":"Done","commit_id":"73e9aa06434ea27ef77fb2c5bc36ab98f0e2f4ca"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"51e96fc66ece1ce6e94a7000714266041b0210e7","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        self._test_prepare_ramdisk(persistent\u003dTrue)"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def test_prepare_ramdisk_force_persistent_boot_device_sloppy_true(self):"},{"line_number":328,"context_line":"        for value in [\u0027true\u0027, \u0027t\u0027, \u00271\u0027, \u0027on\u0027, \u0027y\u0027, \u0027YES\u0027]:"},{"line_number":329,"context_line":"            self.node.provision_state \u003d states.DEPLOYING"},{"line_number":330,"context_line":"            driver_info \u003d self.node.driver_info"},{"line_number":331,"context_line":"            driver_info[\u0027force_persistent_boot_device\u0027] \u003d value"}],"source_content_type":"text/x-python","patch_set":11,"id":"9fdfeff1_6959a4fc","line":328,"updated":"2019-02-07 18:02:26.000000000","message":"\u003c3","commit_id":"d8a9ef8a49535c9caac8d2e2209839d710a251c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"51e96fc66ece1ce6e94a7000714266041b0210e7","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        self._test_prepare_ramdisk(persistent\u003dFalse)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def test_prepare_ramdisk_force_persistent_boot_device_sloppy_false(self):"},{"line_number":353,"context_line":"        for value in [\u0027false\u0027, \u0027f\u0027, \u00270\u0027, \u0027off\u0027, \u0027n\u0027, \u0027NO\u0027, \u0027yxz\u0027]:"},{"line_number":354,"context_line":"            self.node.provision_state \u003d states.DEPLOYING"},{"line_number":355,"context_line":"            driver_info \u003d self.node.driver_info"},{"line_number":356,"context_line":"            driver_info[\u0027force_persistent_boot_device\u0027] \u003d value"}],"source_content_type":"text/x-python","patch_set":11,"id":"9fdfeff1_094fb834","line":353,"updated":"2019-02-07 18:02:26.000000000","message":"\u003c3","commit_id":"d8a9ef8a49535c9caac8d2e2209839d710a251c2"}],"releasenotes/notes/add-option-persistent-boot-device-139cf280fb66f4f7.yaml":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"89b4ee005ecc9df3b86f612759a795153dfa7117","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    By default, Ironic makes persistent changes to the BIOS boot order at the"},{"line_number":5,"context_line":"    end of a deployment. While keeping this behaviour as the default, the new"},{"line_number":6,"context_line":"    \u0027persistent_boot_device\u0027 option allows to make these changes non-persistent"},{"line_number":7,"context_line":"    and to preserve the original BIOS boot order after a deployment. "}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fdfeff1_4df06368","line":7,"range":{"start_line":7,"start_character":68,"end_line":7,"end_character":69},"updated":"2019-01-24 03:09:08.000000000","message":"nit: trailing space","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"048ca94b9e096ad4f3c4d94749b29f9b880f2ff1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    By default, Ironic makes persistent changes to the BIOS boot order at the"},{"line_number":5,"context_line":"    end of a deployment. While keeping this behaviour as the default, the new"},{"line_number":6,"context_line":"    \u0027persistent_boot_device\u0027 option allows to make these changes non-persistent"},{"line_number":7,"context_line":"    and to preserve the original BIOS boot order after a deployment. "}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fdfeff1_a29eb9b5","line":7,"range":{"start_line":7,"start_character":68,"end_line":7,"end_character":69},"in_reply_to":"9fdfeff1_4df06368","updated":"2019-01-24 08:00:31.000000000","message":"Done","commit_id":"aa7e8fb69ae01c74bc8502fc60d17d5741146bcb"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"99989279cca6d26ec3f1a75c65279e683f5e441b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    By default, Ironic makes non-persistent changes to the BIOS boot order,"},{"line_number":5,"context_line":"    except for the very last one upon instance deployment."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fdfeff1_f8cdaa5c","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"updated":"2019-02-04 09:26:36.000000000","message":"Also we would need to add \u0027deprecations\u0027 notes indicating change in the supported values of node\u0027s driver_info[\u0027force_persistent_boot_device\u0027] field.","commit_id":"14ecb99de1418eeeb7664540769fc959288d6585"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"d9151ccac30afaad8487c8337d127da5f474a63e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    By default, Ironic makes non-persistent changes to the BIOS boot order,"},{"line_number":5,"context_line":"    except for the very last one upon instance deployment."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fdfeff1_33f4b5f0","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":8},"in_reply_to":"9fdfeff1_f8cdaa5c","updated":"2019-02-04 10:18:01.000000000","message":"Done","commit_id":"14ecb99de1418eeeb7664540769fc959288d6585"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"99989279cca6d26ec3f1a75c65279e683f5e441b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    By default, Ironic makes non-persistent changes to the BIOS boot order,"},{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option "},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"},{"line_number":8,"context_line":"    drivers is extended to allow the options \u0027Default\u0027 (make all changes"},{"line_number":9,"context_line":"    but the last one upon deployment non-persistent), \u0027Always\u0027 (make all"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fdfeff1_b81402ea","line":6,"range":{"start_line":6,"start_character":59,"end_line":6,"end_character":60},"updated":"2019-02-04 09:26:36.000000000","message":"Remove extra space.","commit_id":"14ecb99de1418eeeb7664540769fc959288d6585"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"d9151ccac30afaad8487c8337d127da5f474a63e","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    By default, Ironic makes non-persistent changes to the BIOS boot order,"},{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option "},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"},{"line_number":8,"context_line":"    drivers is extended to allow the options \u0027Default\u0027 (make all changes"},{"line_number":9,"context_line":"    but the last one upon deployment non-persistent), \u0027Always\u0027 (make all"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fdfeff1_f3d94d82","line":6,"range":{"start_line":6,"start_character":59,"end_line":6,"end_character":60},"in_reply_to":"9fdfeff1_b81402ea","updated":"2019-02-04 10:18:01.000000000","message":"Done","commit_id":"14ecb99de1418eeeb7664540769fc959288d6585"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"15179832fb7f8dfd5285879ece450616fa8338bf","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"},{"line_number":8,"context_line":"    drivers is extended to allow the options \u0027Default\u0027 (make all changes"},{"line_number":9,"context_line":"    but the last one upon deployment non-persistent), \u0027Always\u0027 (make all"},{"line_number":10,"context_line":"    changes persistent), and \u0027Never\u0027 (make all boot order changes"},{"line_number":11,"context_line":"    non-persistent)."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_50db584e","line":8,"range":{"start_line":8,"start_character":37,"end_line":8,"end_character":44},"updated":"2019-02-05 11:09:16.000000000","message":"maybe change \u0027options\u0027 to \u0027values\u0027 as option refers to \u0027force_persistent_boot_device\u0027","commit_id":"5f1838686b9b95ef69a9a3b2cbeeca9fcfb762ad"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"569543fa077bc8bbcbc092cec76dca467ff561c5","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"},{"line_number":8,"context_line":"    drivers is extended to allow the options \u0027Default\u0027 (make all changes"},{"line_number":9,"context_line":"    but the last one upon deployment non-persistent), \u0027Always\u0027 (make all"},{"line_number":10,"context_line":"    changes persistent), and \u0027Never\u0027 (make all boot order changes"},{"line_number":11,"context_line":"    non-persistent)."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_5b8139c3","line":8,"range":{"start_line":8,"start_character":37,"end_line":8,"end_character":44},"in_reply_to":"9fdfeff1_50db584e","updated":"2019-02-05 11:36:33.000000000","message":"Done","commit_id":"5f1838686b9b95ef69a9a3b2cbeeca9fcfb762ad"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"72c758d3d4d44d21e65d5fe5e78875cea6720ee2","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    non-persistent)."},{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    The former values of \u0027True\u0027 and \u0027False\u0027 for this option are deprecated"},{"line_number":15,"context_line":"    and support for them may be removed in a future release. The option"},{"line_number":16,"context_line":"    \u0027True\u0027 is replaced by \u0027Always\u0027, the option \u0027False\u0027 is replaced by the"},{"line_number":17,"context_line":"    new value \u0027Default\u0027."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_507cb871","line":14,"range":{"start_line":14,"start_character":48,"end_line":14,"end_character":52},"updated":"2019-02-05 10:21:59.000000000","message":"We need to elaborate \u0027this\u0027. The \u0027fetaure\u0027 and \u0027deprecations\u0027 content of this releasenote goes into different sections of the published release notes [1].\nhttp://logs.openstack.org/74/632774/7/check/build-openstack-releasenotes/cd7367c/html/unreleased.html\n\ns/ \"this\" / \"the option \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE drivers\"","commit_id":"5f1838686b9b95ef69a9a3b2cbeeca9fcfb762ad"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"569543fa077bc8bbcbc092cec76dca467ff561c5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    non-persistent)."},{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    The former values of \u0027True\u0027 and \u0027False\u0027 for this option are deprecated"},{"line_number":15,"context_line":"    and support for them may be removed in a future release. The option"},{"line_number":16,"context_line":"    \u0027True\u0027 is replaced by \u0027Always\u0027, the option \u0027False\u0027 is replaced by the"},{"line_number":17,"context_line":"    new value \u0027Default\u0027."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_bb7ce5eb","line":14,"range":{"start_line":14,"start_character":48,"end_line":14,"end_character":52},"in_reply_to":"9fdfeff1_507cb871","updated":"2019-02-05 11:36:33.000000000","message":"Oh, yes, I wasn\u0027t aware. Fixed now.","commit_id":"5f1838686b9b95ef69a9a3b2cbeeca9fcfb762ad"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"15179832fb7f8dfd5285879ece450616fa8338bf","unresolved":false,"context_lines":[{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    The former values of \u0027True\u0027 and \u0027False\u0027 for this option are deprecated"},{"line_number":15,"context_line":"    and support for them may be removed in a future release. The option"},{"line_number":16,"context_line":"    \u0027True\u0027 is replaced by \u0027Always\u0027, the option \u0027False\u0027 is replaced by the"},{"line_number":17,"context_line":"    new value \u0027Default\u0027."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_5b20599c","line":15,"range":{"start_line":15,"start_character":65,"end_line":15,"end_character":71},"updated":"2019-02-05 11:09:16.000000000","message":"ditto","commit_id":"5f1838686b9b95ef69a9a3b2cbeeca9fcfb762ad"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"569543fa077bc8bbcbc092cec76dca467ff561c5","unresolved":false,"context_lines":[{"line_number":12,"context_line":"deprecations:"},{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    The former values of \u0027True\u0027 and \u0027False\u0027 for this option are deprecated"},{"line_number":15,"context_line":"    and support for them may be removed in a future release. The option"},{"line_number":16,"context_line":"    \u0027True\u0027 is replaced by \u0027Always\u0027, the option \u0027False\u0027 is replaced by the"},{"line_number":17,"context_line":"    new value \u0027Default\u0027."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_7b867dde","line":15,"range":{"start_line":15,"start_character":65,"end_line":15,"end_character":71},"in_reply_to":"9fdfeff1_5b20599c","updated":"2019-02-05 11:36:33.000000000","message":"Done","commit_id":"5f1838686b9b95ef69a9a3b2cbeeca9fcfb762ad"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"15179832fb7f8dfd5285879ece450616fa8338bf","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    The former values of \u0027True\u0027 and \u0027False\u0027 for this option are deprecated"},{"line_number":15,"context_line":"    and support for them may be removed in a future release. The option"},{"line_number":16,"context_line":"    \u0027True\u0027 is replaced by \u0027Always\u0027, the option \u0027False\u0027 is replaced by the"},{"line_number":17,"context_line":"    new value \u0027Default\u0027."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_7b251dab","line":16,"range":{"start_line":16,"start_character":40,"end_line":16,"end_character":46},"updated":"2019-02-05 11:09:16.000000000","message":"ditto","commit_id":"5f1838686b9b95ef69a9a3b2cbeeca9fcfb762ad"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"569543fa077bc8bbcbc092cec76dca467ff561c5","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  - |"},{"line_number":14,"context_line":"    The former values of \u0027True\u0027 and \u0027False\u0027 for this option are deprecated"},{"line_number":15,"context_line":"    and support for them may be removed in a future release. The option"},{"line_number":16,"context_line":"    \u0027True\u0027 is replaced by \u0027Always\u0027, the option \u0027False\u0027 is replaced by the"},{"line_number":17,"context_line":"    new value \u0027Default\u0027."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_1b6bb11f","line":16,"range":{"start_line":16,"start_character":40,"end_line":16,"end_character":46},"in_reply_to":"9fdfeff1_7b251dab","updated":"2019-02-05 11:36:33.000000000","message":"Done","commit_id":"5f1838686b9b95ef69a9a3b2cbeeca9fcfb762ad"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"726261de40f71eed6b237e326f8d4f343daa937b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    By default, Ironic makes non-persistent changes to the BIOS boot order,"},{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9fdfeff1_739e7308","line":4,"range":{"start_line":4,"start_character":23,"end_line":4,"end_character":51},"updated":"2019-02-07 16:57:20.000000000","message":"nit: I got momentarily confused while reading the reno - does this option apply just to (i)PXE or to all hw types? Worth noting here and/or in config?","commit_id":"057297e8d404a5e1eb06db7ba9c325cb5267e007"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"726261de40f71eed6b237e326f8d4f343daa937b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    By default, Ironic makes non-persistent changes to the BIOS boot order,"},{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9fdfeff1_93e997b8","line":4,"range":{"start_line":4,"start_character":59,"end_line":4,"end_character":63},"updated":"2019-02-07 16:57:20.000000000","message":"nit: ditto as in commit message","commit_id":"057297e8d404a5e1eb06db7ba9c325cb5267e007"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"387700f62f11267cda618e8b4deea59fdc53540b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    By default, Ironic makes non-persistent changes to the BIOS boot order,"},{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9fdfeff1_a65fbbe3","line":4,"range":{"start_line":4,"start_character":23,"end_line":4,"end_character":51},"in_reply_to":"9fdfeff1_739e7308","updated":"2019-02-07 17:17:11.000000000","message":"This is why I added \" for the (i)PXE drivers\" here. I looked at the current documentation for this options and I think it uses a similar wording.","commit_id":"057297e8d404a5e1eb06db7ba9c325cb5267e007"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"6b533430a57c333c7d6af78203d916b63c2ae646","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    By default, Ironic makes non-persistent changes to the BIOS boot order,"},{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9fdfeff1_469daf55","line":4,"range":{"start_line":4,"start_character":23,"end_line":4,"end_character":51},"in_reply_to":"9fdfeff1_a65fbbe3","updated":"2019-02-07 17:22:45.000000000","message":"Ah, right! My mental backtracking is in a sorry state these days.","commit_id":"057297e8d404a5e1eb06db7ba9c325cb5267e007"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"726261de40f71eed6b237e326f8d4f343daa937b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"},{"line_number":8,"context_line":"    drivers is extended to allow the values \u0027Default\u0027 (make all changes"},{"line_number":9,"context_line":"    but the last one upon deployment non-persistent), \u0027Always\u0027 (make all"},{"line_number":10,"context_line":"    changes persistent), and \u0027Never\u0027 (make all boot order changes"},{"line_number":11,"context_line":"    non-persistent)."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9fdfeff1_93d3d7d5","line":8,"range":{"start_line":8,"start_character":45,"end_line":8,"end_character":52},"updated":"2019-02-07 16:57:20.000000000","message":"nit**2: `Default` sounds inconsistent with `Always` and `Never` and a bit cryptic. One needs to know the history behind this option to figure out the behavior based on this `Default` reference.\n\nMay be `UponProvision` or `OnSuccess` would be a bit clearer? Also, it allows for smooth introduction of other potential points in time when we might want this persistence to occur (Clean, Deploy).","commit_id":"057297e8d404a5e1eb06db7ba9c325cb5267e007"},{"author":{"_account_id":11292,"name":"Arne Wiebalck","email":"Arne.Wiebalck@cern.ch","username":"wiebalck"},"change_message_id":"387700f62f11267cda618e8b4deea59fdc53540b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"},{"line_number":8,"context_line":"    drivers is extended to allow the values \u0027Default\u0027 (make all changes"},{"line_number":9,"context_line":"    but the last one upon deployment non-persistent), \u0027Always\u0027 (make all"},{"line_number":10,"context_line":"    changes persistent), and \u0027Never\u0027 (make all boot order changes"},{"line_number":11,"context_line":"    non-persistent)."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9fdfeff1_e6e5c339","line":8,"range":{"start_line":8,"start_character":45,"end_line":8,"end_character":52},"in_reply_to":"9fdfeff1_93d3d7d5","updated":"2019-02-07 17:17:11.000000000","message":"My thinking was that \u0027Default\u0027 sounds like what you\u0027d set this option to if you don\u0027t really understand what it does.","commit_id":"057297e8d404a5e1eb06db7ba9c325cb5267e007"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"6b533430a57c333c7d6af78203d916b63c2ae646","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"},{"line_number":8,"context_line":"    drivers is extended to allow the values \u0027Default\u0027 (make all changes"},{"line_number":9,"context_line":"    but the last one upon deployment non-persistent), \u0027Always\u0027 (make all"},{"line_number":10,"context_line":"    changes persistent), and \u0027Never\u0027 (make all boot order changes"},{"line_number":11,"context_line":"    non-persistent)."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9fdfeff1_66dc7346","line":8,"range":{"start_line":8,"start_character":45,"end_line":8,"end_character":52},"in_reply_to":"9fdfeff1_e6e5c339","updated":"2019-02-07 17:22:45.000000000","message":"That worked out beautifully! ;-)","commit_id":"057297e8d404a5e1eb06db7ba9c325cb5267e007"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"51e96fc66ece1ce6e94a7000714266041b0210e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    By default, Ironic makes non-persistent changes to the system boot order,"},{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9fdfeff1_69dc4446","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":15},"updated":"2019-02-07 18:02:26.000000000","message":"This is going to be a little awkward with the feature list when we go to release. Dmitry, I, or someone else will likely re-write this a little to be consistent with something along the lines of \"Adds capability for non-persistent changes of boot order to be the operating default on a per-node level...\"","commit_id":"d8a9ef8a49535c9caac8d2e2209839d710a251c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"51e96fc66ece1ce6e94a7000714266041b0210e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    By default, Ironic makes non-persistent changes to the system boot order,"},{"line_number":5,"context_line":"    except for the very last one upon instance deployment."},{"line_number":6,"context_line":"    While keeping this behaviour as the default, the option"},{"line_number":7,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9fdfeff1_29cf1c80","line":4,"range":{"start_line":4,"start_character":16,"end_line":4,"end_character":17},"updated":"2019-02-07 18:02:26.000000000","message":"nit: s/Ironic/ironic/ or \"the bare metal service\" depending on your audience. I suspect ironic is fine.","commit_id":"d8a9ef8a49535c9caac8d2e2209839d710a251c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"51e96fc66ece1ce6e94a7000714266041b0210e7","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    in the node\u0027s driver info for the (i)PXE drivers are deprecated and"},{"line_number":16,"context_line":"    support for them may be removed in a future release. The former default"},{"line_number":17,"context_line":"    value \u0027False\u0027 is replaced by the new value \u0027Default\u0027, the value \u0027True\u0027"},{"line_number":18,"context_line":"    is replaced by \u0027Always\u0027."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"9fdfeff1_69aa0486","line":18,"updated":"2019-02-07 18:02:26.000000000","message":"I kind of like how this is worded. It clearly states it and also kind of leaves the door open that we\u0027re not planning on removing it at a specific time but may.","commit_id":"d8a9ef8a49535c9caac8d2e2209839d710a251c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"87590672a4c1609eb85ec29f3059d7c0d7c75cf5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds capability to control the persistency of boot order changes during"},{"line_number":5,"context_line":"    instance deployment via (i)PXE on a per-node level. The option"},{"line_number":6,"context_line":"    \u0027force_persistent_boot_device\u0027 in the node\u0027s driver info for the (i)PXE"},{"line_number":7,"context_line":"    drivers is extended to allow the values \u0027Default\u0027 (make all changes"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"9fdfeff1_5f9a49c5","line":4,"updated":"2019-02-08 00:03:26.000000000","message":"Arne! you didn\u0027t have to do this. Thanks! \u003c3","commit_id":"206134cf58266859fc7b21cd76831955cad72b56"}]}
