)]}'
{"doc/source/deploy/install-guide.rst":[{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"12594bf6c42bb6348b71ef31fea37366aa0e91c9","unresolved":false,"context_lines":[{"line_number":691,"context_line":"    ironic node-update \u003cnode-uuid\u003e add properties/capabilities\u003d\u0027boot_mode:uefi\u0027"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"#. For deploying signed images, update the Ironic node with ``secure_boot``"},{"line_number":694,"context_line":"   capability in node\u0027s properties. Ensure the public key of the signed image"},{"line_number":695,"context_line":"   is loaded into baremetal."},{"line_number":696,"context_line":"   field::"},{"line_number":697,"context_line":""}],"source_content_type":"text/x-rst","patch_set":38,"id":"9a80dd14_a714dd9f","line":694,"updated":"2015-03-18 00:20:49.000000000","message":"should \"Ensure the public key of the signed image is loaded into bare metal.\" be a separate item (maybe with example)?","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"8ba71418d1cfefcf8cadc58e0bf35f47f06ed14a","unresolved":false,"context_lines":[{"line_number":691,"context_line":"    ironic node-update \u003cnode-uuid\u003e add properties/capabilities\u003d\u0027boot_mode:uefi\u0027"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"#. For deploying signed images, update the Ironic node with ``secure_boot``"},{"line_number":694,"context_line":"   capability in node\u0027s properties. Ensure the public key of the signed image"},{"line_number":695,"context_line":"   is loaded into baremetal."},{"line_number":696,"context_line":"   field::"},{"line_number":697,"context_line":""}],"source_content_type":"text/x-rst","patch_set":38,"id":"9a80dd14_4165cc1b","line":694,"in_reply_to":"9a80dd14_a714dd9f","updated":"2015-03-18 02:15:18.000000000","message":"Done","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"d170cb25cc74a84323e2ca11c1621e7f94ff84aa","unresolved":false,"context_lines":[{"line_number":692,"context_line":""},{"line_number":693,"context_line":"#. For deploying signed images, update the Ironic node with ``secure_boot``"},{"line_number":694,"context_line":"   capability in node\u0027s properties. Ensure the public key of the signed image"},{"line_number":695,"context_line":"   is loaded into baremetal."},{"line_number":696,"context_line":"   field::"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    ironic node-update \u003cnode-uuid\u003e add properties/capabilities\u003d\u0027secure_boot:true\u0027"}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_bd73e9b2","line":695,"updated":"2015-03-18 16:11:32.000000000","message":"can remove \"Ensure the public key of the signed image is loaded into bare metal.\" from this line as it is covered on the next.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":692,"context_line":""},{"line_number":693,"context_line":"#. For deploying signed images, update the Ironic node with ``secure_boot``"},{"line_number":694,"context_line":"   capability in node\u0027s properties. Ensure the public key of the signed image"},{"line_number":695,"context_line":"   is loaded into baremetal."},{"line_number":696,"context_line":"   field::"},{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    ironic node-update \u003cnode-uuid\u003e add properties/capabilities\u003d\u0027secure_boot:true\u0027"}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_d598696c","line":695,"in_reply_to":"9a80dd14_bd73e9b2","updated":"2015-03-18 20:50:42.000000000","message":"Done","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"d170cb25cc74a84323e2ca11c1621e7f94ff84aa","unresolved":false,"context_lines":[{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    ironic node-update \u003cnode-uuid\u003e add properties/capabilities\u003d\u0027secure_boot:true\u0027"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"#. For deploying signed images, ensure the public key of the signed image is"},{"line_number":701,"context_line":"   loaded into baremetal. "},{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_5d62edd9","line":700,"updated":"2015-03-18 16:11:32.000000000","message":"\"For deploying signed images, \" not needed here, as it is on the line above.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    ironic node-update \u003cnode-uuid\u003e add properties/capabilities\u003d\u0027secure_boot:true\u0027"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"#. For deploying signed images, ensure the public key of the signed image is"},{"line_number":701,"context_line":"   loaded into baremetal. "},{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_8b36d2b2","line":700,"in_reply_to":"9a80dd14_5d62edd9","updated":"2015-03-18 20:50:42.000000000","message":"Done","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9a112fa59df57b5fa7a2d9c19e1562b3f37e1ec5","unresolved":false,"context_lines":[{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    ironic node-update \u003cnode-uuid\u003e add properties/capabilities\u003d\u0027secure_boot:true\u0027"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"#. For deploying signed images, ensure the public key of the signed image is"},{"line_number":701,"context_line":"   loaded into baremetal. "},{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_69544eca","line":700,"in_reply_to":"9a80dd14_5d62edd9","updated":"2015-03-18 19:28:24.000000000","message":"I think it is needed, since this is another bullet/point/whatever. Alternative is to combine this step with the one above.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":697,"context_line":""},{"line_number":698,"context_line":"    ironic node-update \u003cnode-uuid\u003e add properties/capabilities\u003d\u0027secure_boot:true\u0027"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"#. For deploying signed images, ensure the public key of the signed image is"},{"line_number":701,"context_line":"   loaded into baremetal. "},{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_952a71e5","line":700,"in_reply_to":"9a80dd14_69544eca","updated":"2015-03-18 20:50:42.000000000","message":"Done","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"d170cb25cc74a84323e2ca11c1621e7f94ff84aa","unresolved":false,"context_lines":[{"line_number":698,"context_line":"    ironic node-update \u003cnode-uuid\u003e add properties/capabilities\u003d\u0027secure_boot:true\u0027"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"#. For deploying signed images, ensure the public key of the signed image is"},{"line_number":701,"context_line":"   loaded into baremetal. "},{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"},{"line_number":704,"context_line":"   HP UEFI System Utilities User Guide http://www.hp.com/ctg/Manual/c04398276.pdf"}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_797186dd","line":701,"updated":"2015-03-18 16:11:32.000000000","message":"nit: white space","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":698,"context_line":"    ironic node-update \u003cnode-uuid\u003e add properties/capabilities\u003d\u0027secure_boot:true\u0027"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"#. For deploying signed images, ensure the public key of the signed image is"},{"line_number":701,"context_line":"   loaded into baremetal. "},{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"},{"line_number":704,"context_line":"   HP UEFI System Utilities User Guide http://www.hp.com/ctg/Manual/c04398276.pdf"}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_15c9215a","line":701,"in_reply_to":"9a80dd14_797186dd","updated":"2015-03-18 20:50:42.000000000","message":"Done","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9a112fa59df57b5fa7a2d9c19e1562b3f37e1ec5","unresolved":false,"context_lines":[{"line_number":700,"context_line":"#. For deploying signed images, ensure the public key of the signed image is"},{"line_number":701,"context_line":"   loaded into baremetal. "},{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"},{"line_number":704,"context_line":"   HP UEFI System Utilities User Guide http://www.hp.com/ctg/Manual/c04398276.pdf"},{"line_number":705,"context_line":"   Also, one can refer to white paper on Secure Boot on Linux for HP Proliant "},{"line_number":706,"context_line":"   Servers at http://h20195.www2.hp.com/V2/getpdf.aspx/4AA5-4496ENW.pdf for"}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_49f30ae7","line":703,"updated":"2015-03-18 19:28:24.000000000","message":"Do you mean s/Utiliyies/Utilities/ ?","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":700,"context_line":"#. For deploying signed images, ensure the public key of the signed image is"},{"line_number":701,"context_line":"   loaded into baremetal. "},{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"},{"line_number":704,"context_line":"   HP UEFI System Utilities User Guide http://www.hp.com/ctg/Manual/c04398276.pdf"},{"line_number":705,"context_line":"   Also, one can refer to white paper on Secure Boot on Linux for HP Proliant "},{"line_number":706,"context_line":"   Servers at http://h20195.www2.hp.com/V2/getpdf.aspx/4AA5-4496ENW.pdf for"}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_f50e4d8b","line":703,"in_reply_to":"9a80dd14_49f30ae7","updated":"2015-03-18 20:50:42.000000000","message":"Done","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9a112fa59df57b5fa7a2d9c19e1562b3f37e1ec5","unresolved":false,"context_lines":[{"line_number":701,"context_line":"   loaded into baremetal. "},{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"},{"line_number":704,"context_line":"   HP UEFI System Utilities User Guide http://www.hp.com/ctg/Manual/c04398276.pdf"},{"line_number":705,"context_line":"   Also, one can refer to white paper on Secure Boot on Linux for HP Proliant "},{"line_number":706,"context_line":"   Servers at http://h20195.www2.hp.com/V2/getpdf.aspx/4AA5-4496ENW.pdf for"},{"line_number":707,"context_line":"   more details."}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_c92e1a42","line":704,"updated":"2015-03-18 19:28:24.000000000","message":"End sentence with a period.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":701,"context_line":"   loaded into baremetal. "},{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"},{"line_number":704,"context_line":"   HP UEFI System Utilities User Guide http://www.hp.com/ctg/Manual/c04398276.pdf"},{"line_number":705,"context_line":"   Also, one can refer to white paper on Secure Boot on Linux for HP Proliant "},{"line_number":706,"context_line":"   Servers at http://h20195.www2.hp.com/V2/getpdf.aspx/4AA5-4496ENW.pdf for"},{"line_number":707,"context_line":"   more details."}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_551f19b7","line":704,"in_reply_to":"9a80dd14_c92e1a42","updated":"2015-03-18 20:50:42.000000000","message":"Done","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"d170cb25cc74a84323e2ca11c1621e7f94ff84aa","unresolved":false,"context_lines":[{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"},{"line_number":704,"context_line":"   HP UEFI System Utilities User Guide http://www.hp.com/ctg/Manual/c04398276.pdf"},{"line_number":705,"context_line":"   Also, one can refer to white paper on Secure Boot on Linux for HP Proliant "},{"line_number":706,"context_line":"   Servers at http://h20195.www2.hp.com/V2/getpdf.aspx/4AA5-4496ENW.pdf for"},{"line_number":707,"context_line":"   more details."},{"line_number":708,"context_line":""}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_7958a657","line":705,"updated":"2015-03-18 16:11:32.000000000","message":"ditto","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":702,"context_line":"   For HP Proliant Gen9 servers, one can enroll public key using iLO System"},{"line_number":703,"context_line":"   Utiliyies UI. Please refer to section ``Accessing Secure Boot options`` in"},{"line_number":704,"context_line":"   HP UEFI System Utilities User Guide http://www.hp.com/ctg/Manual/c04398276.pdf"},{"line_number":705,"context_line":"   Also, one can refer to white paper on Secure Boot on Linux for HP Proliant "},{"line_number":706,"context_line":"   Servers at http://h20195.www2.hp.com/V2/getpdf.aspx/4AA5-4496ENW.pdf for"},{"line_number":707,"context_line":"   more details."},{"line_number":708,"context_line":""}],"source_content_type":"text/x-rst","patch_set":41,"id":"9a80dd14_d58229c7","line":705,"in_reply_to":"9a80dd14_7958a657","updated":"2015-03-18 20:50:42.000000000","message":"Done","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"}],"ironic/common/pxe_utils.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"1224b70cb0e0aac9f8de479878034ddd01e96d3b","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    _ensure_config_dirs_exist(task.node.uuid)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    pxe_config_root_tag \u003d \u0027{{ ROOT }}\u0027"},{"line_number":197,"context_line":"    pxe_config_file_path \u003d get_pxe_config_file_path(task.node.uuid)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    if driver_utils.get_node_capability(task.node, \u0027boot_mode\u0027) \u003d\u003d \u0027uefi\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_212cfd49","line":196,"updated":"2015-02-18 15:45:43.000000000","message":"I think its better to move it to else on L201.","commit_id":"f1e51c176381ba3086726bc32b0b79697f52491e"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"07e496d1cd7476331bd41c54825a734f4158d87b","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    _ensure_config_dirs_exist(task.node.uuid)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    pxe_config_root_tag \u003d \u0027{{ ROOT }}\u0027"},{"line_number":197,"context_line":"    pxe_config_file_path \u003d get_pxe_config_file_path(task.node.uuid)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    if driver_utils.get_node_capability(task.node, \u0027boot_mode\u0027) \u003d\u003d \u0027uefi\u0027:"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_d68bcabd","line":196,"in_reply_to":"da86d52c_212cfd49","updated":"2015-02-19 06:00:34.000000000","message":"Done","commit_id":"f1e51c176381ba3086726bc32b0b79697f52491e"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"12594bf6c42bb6348b71ef31fea37366aa0e91c9","unresolved":false,"context_lines":[{"line_number":240,"context_line":"                continue"},{"line_number":241,"context_line":"            utils.unlink_without_raise(ip_address_path)"},{"line_number":242,"context_line":"            # Cleaning up any files, if node were to be created during Juno"},{"line_number":243,"context_line":"            # is getiing tear doen in Kilo."},{"line_number":244,"context_line":"            utils.unlink_without_raise(hex_ip_path)"},{"line_number":245,"context_line":"    else:"},{"line_number":246,"context_line":"        for mac in driver_utils.get_node_mac_addresses(task):"}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_e7a17547","line":243,"updated":"2015-03-18 00:20:49.000000000","message":"Spelling: in above line.. also this is a little unclear to me. maybe reword","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"8ba71418d1cfefcf8cadc58e0bf35f47f06ed14a","unresolved":false,"context_lines":[{"line_number":240,"context_line":"                continue"},{"line_number":241,"context_line":"            utils.unlink_without_raise(ip_address_path)"},{"line_number":242,"context_line":"            # Cleaning up any files, if node were to be created during Juno"},{"line_number":243,"context_line":"            # is getiing tear doen in Kilo."},{"line_number":244,"context_line":"            utils.unlink_without_raise(hex_ip_path)"},{"line_number":245,"context_line":"    else:"},{"line_number":246,"context_line":"        for mac in driver_utils.get_node_mac_addresses(task):"}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_e1a88022","line":243,"in_reply_to":"9a80dd14_e7a17547","updated":"2015-03-18 02:15:18.000000000","message":"Done","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a0a2169a4c47490e6f51c220df8420d26dde1d64","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    This method will generate the PXE configuration file for the task\u0027s"},{"line_number":179,"context_line":"    node under a directory named with the UUID of that node. For each"},{"line_number":180,"context_line":"    DHCP IP address (port) of that node, a symlink for the configuration"},{"line_number":181,"context_line":"    file will be created under the PXE configuration directory, so"},{"line_number":182,"context_line":"    regardless of which port boots first they\u0027ll get the same PXE"},{"line_number":183,"context_line":"    configuration."}],"source_content_type":"text/x-python","patch_set":48,"id":"9a80dd14_627efce5","line":180,"updated":"2015-03-19 15:13:33.000000000","message":"That\u0027s wrong, it\u0027s fair to say it was wrong before too. This symlink for each DHCP IP in case of uefi and creates symlinks for each MAC address in case of non-uefi.","commit_id":"22f886b8d68eb804ccdffb54c60b2490bc6ec698"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a0a2169a4c47490e6f51c220df8420d26dde1d64","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            # Cleaning up config files created by elilo. Elilo was the UEFI"},{"line_number":245,"context_line":"            # boot loader for Juno release. This is applicable if the ironic"},{"line_number":246,"context_line":"            # had been upgraded with the active nodes in UEFI boot mode and"},{"line_number":247,"context_line":"            # those nodes are getting deleted now."},{"line_number":248,"context_line":"            utils.unlink_without_raise(hex_ip_path)"},{"line_number":249,"context_line":"    else:"},{"line_number":250,"context_line":"        for mac in driver_utils.get_node_mac_addresses(task):"}],"source_content_type":"text/x-python","patch_set":48,"id":"9a80dd14_c253286a","line":247,"updated":"2015-03-19 15:13:33.000000000","message":"Q: Is the HEX version compatible with both boot loaders? Or only Elilo?","commit_id":"22f886b8d68eb804ccdffb54c60b2490bc6ec698"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"f75efb5ab3f5b0358adb4cbfd318e2c678a612a3","unresolved":false,"context_lines":[{"line_number":718,"context_line":"    return capabilities"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"def _is_secure_boot_requested(task):"},{"line_number":722,"context_line":"    \"\"\"Returns True if secure_boot is requested for deploy."},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"    This method checks node property for secure_boot and returns True"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_569a7a62","line":721,"updated":"2015-02-19 05:41:22.000000000","message":"Why is this prefixed with an underscore?  It seems like it is called from outside of this module.\n\nhttps://review.openstack.org/#/c/154816/8/ironic/drivers/modules/agent.py","commit_id":"f1e51c176381ba3086726bc32b0b79697f52491e"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"07e496d1cd7476331bd41c54825a734f4158d87b","unresolved":false,"context_lines":[{"line_number":718,"context_line":"    return capabilities"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"def _is_secure_boot_requested(task):"},{"line_number":722,"context_line":"    \"\"\"Returns True if secure_boot is requested for deploy."},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"    This method checks node property for secure_boot and returns True"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_9685d2ae","line":721,"in_reply_to":"da86d52c_569a7a62","updated":"2015-02-19 06:00:34.000000000","message":"Done","commit_id":"f1e51c176381ba3086726bc32b0b79697f52491e"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"714fc23599b105130065ca4a8b84fefd6d48a5fa","unresolved":false,"context_lines":[{"line_number":726,"context_line":""},{"line_number":727,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":728,"context_line":"    :returns: True if secure_boot is requested."},{"line_number":729,"context_line":"    :raises: InvalidParameterValue if an invalid value is specified for"},{"line_number":730,"context_line":"             secure_boot"},{"line_number":731,"context_line":"    \"\"\""},{"line_number":732,"context_line":"    node \u003d task.node"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_316edd00","line":729,"updated":"2015-02-19 16:16:49.000000000","message":"This function does not raise anything.","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":726,"context_line":""},{"line_number":727,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":728,"context_line":"    :returns: True if secure_boot is requested."},{"line_number":729,"context_line":"    :raises: InvalidParameterValue if an invalid value is specified for"},{"line_number":730,"context_line":"             secure_boot"},{"line_number":731,"context_line":"    \"\"\""},{"line_number":732,"context_line":"    node \u003d task.node"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_72d105cd","line":729,"in_reply_to":"da86d52c_316edd00","updated":"2015-02-20 04:47:49.000000000","message":"Done","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"714fc23599b105130065ca4a8b84fefd6d48a5fa","unresolved":false,"context_lines":[{"line_number":732,"context_line":"    node \u003d task.node"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"    sec_boot \u003d driver_utils.get_node_capability(node, \u0027secure_boot\u0027)"},{"line_number":735,"context_line":"    if sec_boot is not None:"},{"line_number":736,"context_line":"        sec_boot \u003d sec_boot.lower()"},{"line_number":737,"context_line":"        if sec_boot \u003d\u003d \u0027true\u0027:"},{"line_number":738,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_d19661ef","line":735,"updated":"2015-02-19 16:16:49.000000000","message":"return sec_boot is not None and sec_boot.lower() \u003d\u003d \u0027true\u0027","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":732,"context_line":"    node \u003d task.node"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"    sec_boot \u003d driver_utils.get_node_capability(node, \u0027secure_boot\u0027)"},{"line_number":735,"context_line":"    if sec_boot is not None:"},{"line_number":736,"context_line":"        sec_boot \u003d sec_boot.lower()"},{"line_number":737,"context_line":"        if sec_boot \u003d\u003d \u0027true\u0027:"},{"line_number":738,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_92d679c4","line":735,"in_reply_to":"da86d52c_d19661ef","updated":"2015-02-20 04:47:49.000000000","message":"Done","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"d170cb25cc74a84323e2ca11c1621e7f94ff84aa","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":"    except processutils.ProcessExecutionError:"},{"line_number":646,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":647,"context_line":"            LOG.error(_LE(\"Failed to detect %s\"), part)"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    return uuids_to_return"},{"line_number":650,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_1daeb598","line":647,"updated":"2015-03-18 16:11:32.000000000","message":"I would like to also have node_uuid here.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":"    except processutils.ProcessExecutionError:"},{"line_number":646,"context_line":"        with excutils.save_and_reraise_exception():"},{"line_number":647,"context_line":"            LOG.error(_LE(\"Failed to detect %s\"), part)"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    return uuids_to_return"},{"line_number":650,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_b565b51e","line":647,"in_reply_to":"9a80dd14_1daeb598","updated":"2015-03-18 20:50:42.000000000","message":"Done","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"}],"ironic/drivers/modules/ilo/common.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"1224b70cb0e0aac9f8de479878034ddd01e96d3b","unresolved":false,"context_lines":[{"line_number":297,"context_line":"def set_boot_mode(node, boot_mode):"},{"line_number":298,"context_line":"    \"\"\"Sets the node to boot using boot_mode for the next boot."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    :param node: an ironic node object."},{"line_number":302,"context_line":"    :param boot_mode: Next boot mode."},{"line_number":303,"context_line":"    :raises: IloOperationError if setting boot mode failed."}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_41bf31d0","line":300,"updated":"2015-02-18 15:45:43.000000000","message":"unnecessary line","commit_id":"f1e51c176381ba3086726bc32b0b79697f52491e"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"07e496d1cd7476331bd41c54825a734f4158d87b","unresolved":false,"context_lines":[{"line_number":297,"context_line":"def set_boot_mode(node, boot_mode):"},{"line_number":298,"context_line":"    \"\"\"Sets the node to boot using boot_mode for the next boot."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    :param node: an ironic node object."},{"line_number":302,"context_line":"    :param boot_mode: Next boot mode."},{"line_number":303,"context_line":"    :raises: IloOperationError if setting boot mode failed."}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_56a0ba41","line":300,"in_reply_to":"da86d52c_41bf31d0","updated":"2015-02-19 06:00:34.000000000","message":"Done","commit_id":"f1e51c176381ba3086726bc32b0b79697f52491e"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"1224b70cb0e0aac9f8de479878034ddd01e96d3b","unresolved":false,"context_lines":[{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    boot_mode \u003d driver_utils.get_node_capability(node, \u0027boot_mode\u0027)"},{"line_number":340,"context_line":"    if boot_mode is not None:"},{"line_number":341,"context_line":"        LOG.debug(_LI(\"Node %(uuid)s boot mode is set to %(boot_mode)s\"),"},{"line_number":342,"context_line":"                  {\u0027uuid\u0027: node.uuid, \u0027boot_mode\u0027: boot_mode})"},{"line_number":343,"context_line":"        set_boot_mode(node, boot_mode)"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_c19fa14e","line":341,"updated":"2015-02-18 15:45:43.000000000","message":"It may be confusing as boot_mode is set in set_boot_mode - maybe change to \u0027is being set\u0027?","commit_id":"f1e51c176381ba3086726bc32b0b79697f52491e"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"07e496d1cd7476331bd41c54825a734f4158d87b","unresolved":false,"context_lines":[{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    boot_mode \u003d driver_utils.get_node_capability(node, \u0027boot_mode\u0027)"},{"line_number":340,"context_line":"    if boot_mode is not None:"},{"line_number":341,"context_line":"        LOG.debug(_LI(\"Node %(uuid)s boot mode is set to %(boot_mode)s\"),"},{"line_number":342,"context_line":"                  {\u0027uuid\u0027: node.uuid, \u0027boot_mode\u0027: boot_mode})"},{"line_number":343,"context_line":"        set_boot_mode(node, boot_mode)"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_96feb236","line":341,"in_reply_to":"da86d52c_c19fa14e","updated":"2015-02-19 06:00:34.000000000","message":"Done","commit_id":"f1e51c176381ba3086726bc32b0b79697f52491e"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ebf75f18456fcc0b8064307690b7e8b998155212","unresolved":false,"context_lines":[{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    boot_mode \u003d driver_utils.get_node_capability(node, \u0027boot_mode\u0027)"},{"line_number":339,"context_line":"    if boot_mode is not None:"},{"line_number":340,"context_line":"        LOG.debug(_LI(\"Node %(uuid)s boot mode is being set to %(boot_mode)s\"),"},{"line_number":341,"context_line":"                  {\u0027uuid\u0027: node.uuid, \u0027boot_mode\u0027: boot_mode})"},{"line_number":342,"context_line":"        set_boot_mode(node, boot_mode)"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_27585b30","line":340,"updated":"2015-02-19 16:43:07.000000000","message":"no translation needed.","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    boot_mode \u003d driver_utils.get_node_capability(node, \u0027boot_mode\u0027)"},{"line_number":339,"context_line":"    if boot_mode is not None:"},{"line_number":340,"context_line":"        LOG.debug(_LI(\"Node %(uuid)s boot mode is being set to %(boot_mode)s\"),"},{"line_number":341,"context_line":"                  {\u0027uuid\u0027: node.uuid, \u0027boot_mode\u0027: boot_mode})"},{"line_number":342,"context_line":"        set_boot_mode(node, boot_mode)"},{"line_number":343,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_32eead8c","line":340,"in_reply_to":"da86d52c_27585b30","updated":"2015-02-20 04:47:49.000000000","message":"Done","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"}],"ironic/drivers/modules/ilo/deploy.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ebf75f18456fcc0b8064307690b7e8b998155212","unresolved":false,"context_lines":[{"line_number":234,"context_line":"              the node."},{"line_number":235,"context_line":"              It returns False, if secure boot on node is in disabled state"},{"line_number":236,"context_line":"              or if secure boot feature is not supported by the node."},{"line_number":237,"context_line":"    :raises: IloCommandNotSupportedError, if operation is not supported on iLO"},{"line_number":238,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":239,"context_line":"    \"\"\""},{"line_number":240,"context_line":"    cur_sec_state \u003d False"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_e74e4395","line":237,"updated":"2015-02-19 16:43:07.000000000","message":"it should be IloOperationNotSupported.","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":234,"context_line":"              the node."},{"line_number":235,"context_line":"              It returns False, if secure boot on node is in disabled state"},{"line_number":236,"context_line":"              or if secure boot feature is not supported by the node."},{"line_number":237,"context_line":"    :raises: IloCommandNotSupportedError, if operation is not supported on iLO"},{"line_number":238,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":239,"context_line":"    \"\"\""},{"line_number":240,"context_line":"    cur_sec_state \u003d False"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_122c49ab","line":237,"in_reply_to":"da86d52c_e74e4395","updated":"2015-02-20 04:47:49.000000000","message":"Done","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"714fc23599b105130065ca4a8b84fefd6d48a5fa","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    try:"},{"line_number":242,"context_line":"        cur_sec_state \u003d task.driver.management.get_secure_boot_mode(task)"},{"line_number":243,"context_line":"    except exception.IloOperationNotSupported:"},{"line_number":244,"context_line":"        LOG.debug(_LI(\u0027Secure boot mode is not supported for node %s\u0027),"},{"line_number":245,"context_line":"                       task.node.uuid)"},{"line_number":246,"context_line":"        return False"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_2cacc09e","line":244,"updated":"2015-02-19 16:16:49.000000000","message":"Translation for debug logging is not required.","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    try:"},{"line_number":242,"context_line":"        cur_sec_state \u003d task.driver.management.get_secure_boot_mode(task)"},{"line_number":243,"context_line":"    except exception.IloOperationNotSupported:"},{"line_number":244,"context_line":"        LOG.debug(_LI(\u0027Secure boot mode is not supported for node %s\u0027),"},{"line_number":245,"context_line":"                       task.node.uuid)"},{"line_number":246,"context_line":"        return False"},{"line_number":247,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_92175951","line":244,"in_reply_to":"da86d52c_2cacc09e","updated":"2015-02-20 04:47:49.000000000","message":"Done","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"237bd9a41f7ae4e036c80961ee5e193c48a913ee","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    # Disable secure boot on the node during deploy."},{"line_number":276,"context_line":"    if _disable_secure_boot(task):"},{"line_number":277,"context_line":"        change_boot_mode \u003d False"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    # Set boot_mode capability to uefi for secure boot"},{"line_number":280,"context_line":"    if deploy_utils.is_secure_boot_requested(task):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_8af92282","line":277,"updated":"2015-02-19 17:15:42.000000000","message":"This confuses me.  If I\u0027m reading this correctly this is set if the node was in secure boot mode but has now been changed to non-secure mode?","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    # Disable secure boot on the node during deploy."},{"line_number":276,"context_line":"    if _disable_secure_boot(task):"},{"line_number":277,"context_line":"        change_boot_mode \u003d False"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    # Set boot_mode capability to uefi for secure boot"},{"line_number":280,"context_line":"    if deploy_utils.is_secure_boot_requested(task):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_32314d0c","line":277,"in_reply_to":"da86d52c_8af92282","updated":"2015-02-20 04:47:49.000000000","message":"Boot mode can be changed only if secure boot is in disabled state. \nYes, we need to put the node into non-secure boot during deploy. This is required for 2 reasons:-\n1. In secure boot enabled state, boot mode cannot be changed.\n2. If we were required to deploy in UEFI boot mode, with secure boot enabled, deploy kernel and bootloaders needs to be signed. It may be too much ask to have signed deploy ramdisk, hence disabling the secure boot in prepare stage. It would be enabled through vendor passthru if the deploy request wants the final boot image to run in secure boot environment.","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ebf75f18456fcc0b8064307690b7e8b998155212","unresolved":false,"context_lines":[{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":296,"context_line":"    :param flag: Boolean value requesting the next state for secure boot"},{"line_number":297,"context_line":"    :raises: IloCommandNotSupportedError, if operation is not supported on iLO"},{"line_number":298,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":299,"context_line":"    \"\"\""},{"line_number":300,"context_line":"    if deploy_utils.is_secure_boot_requested(task):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_a7fe0b04","line":297,"updated":"2015-02-19 16:43:07.000000000","message":"ditto","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":296,"context_line":"    :param flag: Boolean value requesting the next state for secure boot"},{"line_number":297,"context_line":"    :raises: IloCommandNotSupportedError, if operation is not supported on iLO"},{"line_number":298,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":299,"context_line":"    \"\"\""},{"line_number":300,"context_line":"    if deploy_utils.is_secure_boot_requested(task):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_b20b7d2a","line":297,"in_reply_to":"da86d52c_a7fe0b04","updated":"2015-02-20 04:47:49.000000000","message":"Done","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ebf75f18456fcc0b8064307690b7e8b998155212","unresolved":false,"context_lines":[{"line_number":307,"context_line":"    \"\"\"Adds capability boot_mode\u003d\u0027uefi\u0027 into Node property."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":310,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":311,"context_line":"    \"\"\""},{"line_number":312,"context_line":"    driver_utils.rm_node_capability(task, \u0027boot_mode\u0027)"},{"line_number":313,"context_line":"    driver_utils.add_node_capability(task, \u0027boot_mode\u0027, \u0027uefi\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_a243593d","line":310,"updated":"2015-02-19 16:43:07.000000000","message":"seems that it is not raised","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":307,"context_line":"    \"\"\"Adds capability boot_mode\u003d\u0027uefi\u0027 into Node property."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":310,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":311,"context_line":"    \"\"\""},{"line_number":312,"context_line":"    driver_utils.rm_node_capability(task, \u0027boot_mode\u0027)"},{"line_number":313,"context_line":"    driver_utils.add_node_capability(task, \u0027boot_mode\u0027, \u0027uefi\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_12036910","line":310,"in_reply_to":"da86d52c_a243593d","updated":"2015-02-20 04:47:49.000000000","message":"Done","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"e05a5cfe7bfb67dc123d59b8da07a9c0c1eb1668","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    if cur_sec_state:"},{"line_number":284,"context_line":"        LOG.info(_LI(\u0027Disabling secure boot for node %s\u0027), task.node.uuid)"},{"line_number":285,"context_line":"        cur_sec_state \u003d ilo_common.set_secure_boot_mode(task,"},{"line_number":286,"context_line":"                                                                    False)"},{"line_number":287,"context_line":"        return True"},{"line_number":288,"context_line":"    return False"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9a80dd14_5e60ff00","line":286,"updated":"2015-03-06 18:15:43.000000000","message":"spacing","commit_id":"d7ec0269076dccb7ccf4536b358380bc1d0b0319"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"67ea811b195b01595a710ebd06e967ecd1a2b640","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    if cur_sec_state:"},{"line_number":284,"context_line":"        LOG.info(_LI(\u0027Disabling secure boot for node %s\u0027), task.node.uuid)"},{"line_number":285,"context_line":"        cur_sec_state \u003d ilo_common.set_secure_boot_mode(task,"},{"line_number":286,"context_line":"                                                                    False)"},{"line_number":287,"context_line":"        return True"},{"line_number":288,"context_line":"    return False"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9a80dd14_722325a7","line":286,"in_reply_to":"9a80dd14_5e60ff00","updated":"2015-03-07 06:41:23.000000000","message":"Done","commit_id":"d7ec0269076dccb7ccf4536b358380bc1d0b0319"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"e05a5cfe7bfb67dc123d59b8da07a9c0c1eb1668","unresolved":false,"context_lines":[{"line_number":565,"context_line":"        # Handlig this exception here, will help user to tear down such a"},{"line_number":566,"context_line":"        # Node."},{"line_number":567,"context_line":"        except exception.IloOperationNotSupported:"},{"line_number":568,"context_line":"            LOG.info(_LI(\u0027Secure boot mode is not supported for node %s\u0027),"},{"line_number":569,"context_line":"                         task.node.uuid)"},{"line_number":570,"context_line":"        return states.DELETED"},{"line_number":571,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9a80dd14_9e2d17ab","line":568,"updated":"2015-03-06 18:15:43.000000000","message":"maybe LOG.warn here?","commit_id":"d7ec0269076dccb7ccf4536b358380bc1d0b0319"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"67ea811b195b01595a710ebd06e967ecd1a2b640","unresolved":false,"context_lines":[{"line_number":565,"context_line":"        # Handlig this exception here, will help user to tear down such a"},{"line_number":566,"context_line":"        # Node."},{"line_number":567,"context_line":"        except exception.IloOperationNotSupported:"},{"line_number":568,"context_line":"            LOG.info(_LI(\u0027Secure boot mode is not supported for node %s\u0027),"},{"line_number":569,"context_line":"                         task.node.uuid)"},{"line_number":570,"context_line":"        return states.DELETED"},{"line_number":571,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9a80dd14_32544dfe","line":568,"in_reply_to":"9a80dd14_9e2d17ab","updated":"2015-03-07 06:41:23.000000000","message":"Done","commit_id":"d7ec0269076dccb7ccf4536b358380bc1d0b0319"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"12594bf6c42bb6348b71ef31fea37366aa0e91c9","unresolved":false,"context_lines":[{"line_number":280,"context_line":"    try:"},{"line_number":281,"context_line":"        cur_sec_state \u003d ilo_common.get_secure_boot_mode(task)"},{"line_number":282,"context_line":"    except exception.IloOperationNotSupported:"},{"line_number":283,"context_line":"        LOG.debug(\u0027Secure boot mode is not supported for node %s\u0027,"},{"line_number":284,"context_line":"                       task.node.uuid)"},{"line_number":285,"context_line":"        return False"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_42f06fc9","line":283,"updated":"2015-03-18 00:20:49.000000000","message":"Id put this at LOG.warn, but maybe able to be convinced otherwise.","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"8ba71418d1cfefcf8cadc58e0bf35f47f06ed14a","unresolved":false,"context_lines":[{"line_number":280,"context_line":"    try:"},{"line_number":281,"context_line":"        cur_sec_state \u003d ilo_common.get_secure_boot_mode(task)"},{"line_number":282,"context_line":"    except exception.IloOperationNotSupported:"},{"line_number":283,"context_line":"        LOG.debug(\u0027Secure boot mode is not supported for node %s\u0027,"},{"line_number":284,"context_line":"                       task.node.uuid)"},{"line_number":285,"context_line":"        return False"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_2462a616","line":283,"in_reply_to":"9a80dd14_42f06fc9","updated":"2015-03-18 02:15:18.000000000","message":"Not all platforms support secure boot. If the node has secure boot enabled, deploy using unsigned images would fail. \nThis is a safety mechanism to allow such deploys as user might not have requested secure boot, but node might have it enabled, hence we disable here and enable it only for the boot image if being requested using secure_boot capability.\nthis is the reason, it\u0027s debug and not warning. Whererever user has requested secure_boot and we hit such node without secure boot support, we issue warning.","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"12594bf6c42bb6348b71ef31fea37366aa0e91c9","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        return False"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    if cur_sec_state:"},{"line_number":288,"context_line":"        LOG.info(_LI(\u0027Disabling secure boot for node %s\u0027), task.node.uuid)"},{"line_number":289,"context_line":"        cur_sec_state \u003d ilo_common.set_secure_boot_mode(task, False)"},{"line_number":290,"context_line":"        return True"},{"line_number":291,"context_line":"    return False"}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_c73ab1e6","line":288,"updated":"2015-03-18 00:20:49.000000000","message":"nit: LOG.debug here.","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"8ba71418d1cfefcf8cadc58e0bf35f47f06ed14a","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        return False"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    if cur_sec_state:"},{"line_number":288,"context_line":"        LOG.info(_LI(\u0027Disabling secure boot for node %s\u0027), task.node.uuid)"},{"line_number":289,"context_line":"        cur_sec_state \u003d ilo_common.set_secure_boot_mode(task, False)"},{"line_number":290,"context_line":"        return True"},{"line_number":291,"context_line":"    return False"}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_a475b6cd","line":288,"in_reply_to":"9a80dd14_c73ab1e6","updated":"2015-03-18 02:15:18.000000000","message":"Done","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"12594bf6c42bb6348b71ef31fea37366aa0e91c9","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    if cur_sec_state:"},{"line_number":288,"context_line":"        LOG.info(_LI(\u0027Disabling secure boot for node %s\u0027), task.node.uuid)"},{"line_number":289,"context_line":"        cur_sec_state \u003d ilo_common.set_secure_boot_mode(task, False)"},{"line_number":290,"context_line":"        return True"},{"line_number":291,"context_line":"    return False"},{"line_number":292,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_02c9175a","line":289,"updated":"2015-03-18 00:20:49.000000000","message":"nit: cur_sec_state not used below this line. is it needed?","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"8ba71418d1cfefcf8cadc58e0bf35f47f06ed14a","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    if cur_sec_state:"},{"line_number":288,"context_line":"        LOG.info(_LI(\u0027Disabling secure boot for node %s\u0027), task.node.uuid)"},{"line_number":289,"context_line":"        cur_sec_state \u003d ilo_common.set_secure_boot_mode(task, False)"},{"line_number":290,"context_line":"        return True"},{"line_number":291,"context_line":"    return False"},{"line_number":292,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_44331a13","line":289,"in_reply_to":"9a80dd14_02c9175a","updated":"2015-03-18 02:15:18.000000000","message":"Done","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"12594bf6c42bb6348b71ef31fea37366aa0e91c9","unresolved":false,"context_lines":[{"line_number":316,"context_line":""},{"line_number":317,"context_line":"    # Set boot_mode capability to uefi for secure boot"},{"line_number":318,"context_line":"    if deploy_utils.is_secure_boot_requested(task.node):"},{"line_number":319,"context_line":"        LOG.info(_LI(\u0027Secure boot deploy requested for node %s\u0027),"},{"line_number":320,"context_line":"                      task.node.uuid)"},{"line_number":321,"context_line":"        _enable_uefi_capability(task)"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_e2e963b8","line":319,"updated":"2015-03-18 00:20:49.000000000","message":"Log.debug here","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"8ba71418d1cfefcf8cadc58e0bf35f47f06ed14a","unresolved":false,"context_lines":[{"line_number":316,"context_line":""},{"line_number":317,"context_line":"    # Set boot_mode capability to uefi for secure boot"},{"line_number":318,"context_line":"    if deploy_utils.is_secure_boot_requested(task.node):"},{"line_number":319,"context_line":"        LOG.info(_LI(\u0027Secure boot deploy requested for node %s\u0027),"},{"line_number":320,"context_line":"                      task.node.uuid)"},{"line_number":321,"context_line":"        _enable_uefi_capability(task)"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_c4446a1b","line":319,"in_reply_to":"9a80dd14_e2e963b8","updated":"2015-03-18 02:15:18.000000000","message":"Done","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"12594bf6c42bb6348b71ef31fea37366aa0e91c9","unresolved":false,"context_lines":[{"line_number":609,"context_line":"        ilo_common.update_boot_mode(task)"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"        # Need to enable secure boot, if being requested"},{"line_number":612,"context_line":"        _update_secure_boot_mode(task, True)"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"        manager_utils.node_set_boot_device(task,"},{"line_number":615,"context_line":"                                           boot_devices.PXE,"}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_82bb4774","line":612,"updated":"2015-03-18 00:20:49.000000000","message":"Nit: this reads oddly for me. The way _update_secure_boot_mode is called, with hardcoded true and the remark above says: \"if being requested\"","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"8ba71418d1cfefcf8cadc58e0bf35f47f06ed14a","unresolved":false,"context_lines":[{"line_number":609,"context_line":"        ilo_common.update_boot_mode(task)"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"        # Need to enable secure boot, if being requested"},{"line_number":612,"context_line":"        _update_secure_boot_mode(task, True)"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"        manager_utils.node_set_boot_device(task,"},{"line_number":615,"context_line":"                                           boot_devices.PXE,"}],"source_content_type":"text/x-python","patch_set":38,"id":"9a80dd14_64dc9e47","line":612,"in_reply_to":"9a80dd14_82bb4774","updated":"2015-03-18 02:15:18.000000000","message":"Done","commit_id":"a61b3e571ae56202c34d8024dc8597a2d97dd911"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9a112fa59df57b5fa7a2d9c19e1562b3f37e1ec5","unresolved":false,"context_lines":[{"line_number":300,"context_line":"    4. Changes boot mode of the node if secure boot is disabled currently."},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":303,"context_line":"    :raises: InvalidParameterValue if an invalid value is specified for"},{"line_number":304,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":305,"context_line":"    \"\"\""},{"line_number":306,"context_line":"    manager_utils.node_power_action(task, states.POWER_OFF)"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_fc439a10","line":303,"updated":"2015-03-18 19:28:24.000000000","message":"specified for what?","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":300,"context_line":"    4. Changes boot mode of the node if secure boot is disabled currently."},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    :param task: a TaskManager instance containing the node to act on."},{"line_number":303,"context_line":"    :raises: InvalidParameterValue if an invalid value is specified for"},{"line_number":304,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":305,"context_line":"    \"\"\""},{"line_number":306,"context_line":"    manager_utils.node_power_action(task, states.POWER_OFF)"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_75009d02","line":303,"in_reply_to":"9a80dd14_fc439a10","updated":"2015-03-18 20:50:42.000000000","message":"Done. Not required.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9a112fa59df57b5fa7a2d9c19e1562b3f37e1ec5","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    # Disable secure boot on the node if it is in enabled state."},{"line_number":313,"context_line":"    if _disable_secure_boot(task):"},{"line_number":314,"context_line":"        change_boot_mode \u003d False"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    # Set boot_mode capability to uefi for secure boot"},{"line_number":317,"context_line":"    if deploy_utils.is_secure_boot_requested(task.node):"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_9c87fe11","line":314,"updated":"2015-03-18 19:28:24.000000000","message":"_disable_secure_boot() returns True if secure boot was successfully disabled on the node. And #4 above sez: Changes boot mode of the node if secure boot is disabled currently.\n\nSo either I am misinterpreting something, or change_boot_mode should be True?  Or by \u0027currently\u0027 do you mean the state of secure-boot BEFORE the call to _disable_secure_boot() was made?","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    # Disable secure boot on the node if it is in enabled state."},{"line_number":313,"context_line":"    if _disable_secure_boot(task):"},{"line_number":314,"context_line":"        change_boot_mode \u003d False"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    # Set boot_mode capability to uefi for secure boot"},{"line_number":317,"context_line":"    if deploy_utils.is_secure_boot_requested(task.node):"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_b065c31e","line":314,"in_reply_to":"9a80dd14_9c87fe11","updated":"2015-03-18 20:50:42.000000000","message":"When secure boot mode is changed, it needs a reboot to get into effect. If secure boot is in enabled state, one cannot change the boot mode. \nSo if the request is made to disable secure boot, then we should not attempt to change boot mode as it would fail till reboot gets completed.\n\nYes in #4, currently means the state of secure boot is \u0027disabled\u0027 before call to _disable_secure_boot() is made.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9a112fa59df57b5fa7a2d9c19e1562b3f37e1ec5","unresolved":false,"context_lines":[{"line_number":333,"context_line":"    :raises: IloOperationNotSupported, if operation is not supported on iLO"},{"line_number":334,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":335,"context_line":"    \"\"\""},{"line_number":336,"context_line":"    if deploy_utils.is_secure_boot_requested(task.node):"},{"line_number":337,"context_line":"        ilo_common.set_secure_boot_mode(task, flag)"},{"line_number":338,"context_line":"        LOG.info(_LI(\u0027Changed secure boot to %(mode)s for node %(node)s\u0027),"},{"line_number":339,"context_line":"                 {\u0027mode\u0027: flag, \u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_fce9dab7","line":336,"updated":"2015-03-18 19:28:24.000000000","message":"this returns True if deploy had requested secure boot.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":333,"context_line":"    :raises: IloOperationNotSupported, if operation is not supported on iLO"},{"line_number":334,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":335,"context_line":"    \"\"\""},{"line_number":336,"context_line":"    if deploy_utils.is_secure_boot_requested(task.node):"},{"line_number":337,"context_line":"        ilo_common.set_secure_boot_mode(task, flag)"},{"line_number":338,"context_line":"        LOG.info(_LI(\u0027Changed secure boot to %(mode)s for node %(node)s\u0027),"},{"line_number":339,"context_line":"                 {\u0027mode\u0027: flag, \u0027node\u0027: task.node.uuid})"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_70450b42","line":336,"in_reply_to":"9a80dd14_fce9dab7","updated":"2015-03-18 20:50:42.000000000","message":"Yes.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9a112fa59df57b5fa7a2d9c19e1562b3f37e1ec5","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":335,"context_line":"    \"\"\""},{"line_number":336,"context_line":"    if deploy_utils.is_secure_boot_requested(task.node):"},{"line_number":337,"context_line":"        ilo_common.set_secure_boot_mode(task, flag)"},{"line_number":338,"context_line":"        LOG.info(_LI(\u0027Changed secure boot to %(mode)s for node %(node)s\u0027),"},{"line_number":339,"context_line":"                 {\u0027mode\u0027: flag, \u0027node\u0027: task.node.uuid})"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_3cfc523f","line":337,"updated":"2015-03-18 19:28:24.000000000","message":"This enables or disables secure boot.\n\nEither there\u0027s a terminology issue or I\u0027m missing something. Shouldn\u0027t this .set_secure_boot_mode(task, True)?\n\nI think it is a terminology/description problem. I *think* deploy_utils.is_secure_boot_requested() is more like deploy_utils.secure_boot_capability_requested(). Ie, you want to know if they had requested a node that had secure-boot capability, right? Not whether the node had secure boot enabled.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":335,"context_line":"    \"\"\""},{"line_number":336,"context_line":"    if deploy_utils.is_secure_boot_requested(task.node):"},{"line_number":337,"context_line":"        ilo_common.set_secure_boot_mode(task, flag)"},{"line_number":338,"context_line":"        LOG.info(_LI(\u0027Changed secure boot to %(mode)s for node %(node)s\u0027),"},{"line_number":339,"context_line":"                 {\u0027mode\u0027: flag, \u0027node\u0027: task.node.uuid})"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_d0aa3784","line":337,"in_reply_to":"9a80dd14_3cfc523f","updated":"2015-03-18 20:50:42.000000000","message":"set_secure_boot_mode() enables/disables secure boot based on value of flag argument.\n__update_secure_boot_mode() gets used in deploy as well as in tear_down stage\nWe need to \u0027enable\u0027 secure boot in deploy stage if it was requested through nova flavor.\nWe need to \u0027disable\u0027 secure boot in tear_down stage if it was requested through nova flavor. This is required to ensure that secure boot mode gets turned off in next boot. One cannot change the boot mode of the node if the node is in secure boot enabled state.\n\ndeploy_utils.is_secure_boot_requested() reads secure_boot from node\u0027s instance_info and returns same.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c3e68297e4ca3cbca97692be4483a33638e120bb","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":335,"context_line":"    \"\"\""},{"line_number":336,"context_line":"    if deploy_utils.is_secure_boot_requested(task.node):"},{"line_number":337,"context_line":"        ilo_common.set_secure_boot_mode(task, flag)"},{"line_number":338,"context_line":"        LOG.info(_LI(\u0027Changed secure boot to %(mode)s for node %(node)s\u0027),"},{"line_number":339,"context_line":"                 {\u0027mode\u0027: flag, \u0027node\u0027: task.node.uuid})"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_fd42af0d","line":337,"in_reply_to":"9a80dd14_d0aa3784","updated":"2015-03-18 21:55:10.000000000","message":"And what does \u0027secure_boot\u0027 mean, if it is in the node\u0027s instance_info. deploy_utils.is_secure_boot_requested() to me, seems to mean that if True, the request is for secure boot to be enabled.\n\nI don\u0027t know that you answered my question, but the point in my asking is that if it isn\u0027t clear to me, it might not be clear to others. If you think it is clear, that is fine.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"cf524487f560125f7271a821fc3d1912fb072f76","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    :raises: IloOperationError, if some operation on iLO failed."},{"line_number":335,"context_line":"    \"\"\""},{"line_number":336,"context_line":"    if deploy_utils.is_secure_boot_requested(task.node):"},{"line_number":337,"context_line":"        ilo_common.set_secure_boot_mode(task, flag)"},{"line_number":338,"context_line":"        LOG.info(_LI(\u0027Changed secure boot to %(mode)s for node %(node)s\u0027),"},{"line_number":339,"context_line":"                 {\u0027mode\u0027: flag, \u0027node\u0027: task.node.uuid})"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_b42da991","line":337,"in_reply_to":"9a80dd14_fd42af0d","updated":"2015-03-19 03:53:17.000000000","message":"Have added more details in the description of method _update_secure_boot_mode()","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9a112fa59df57b5fa7a2d9c19e1562b3f37e1ec5","unresolved":false,"context_lines":[{"line_number":568,"context_line":"        # We need to handle IloOperationNotSupported exception so that if"},{"line_number":569,"context_line":"        # User had incorrectly specified the Node capability \u0027secure_boot\u0027"},{"line_number":570,"context_line":"        # to a node that does not have that capability and attempted deploy."},{"line_number":571,"context_line":"        # Handlig this exception here, will help user to tear down such a"},{"line_number":572,"context_line":"        # Node."},{"line_number":573,"context_line":"        except exception.IloOperationNotSupported:"},{"line_number":574,"context_line":"            LOG.warn(_LW(\u0027Secure boot mode is not supported for node %s\u0027),"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_7c524a36","line":571,"updated":"2015-03-18 19:28:24.000000000","message":"s/Handlig/Handling/","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":568,"context_line":"        # We need to handle IloOperationNotSupported exception so that if"},{"line_number":569,"context_line":"        # User had incorrectly specified the Node capability \u0027secure_boot\u0027"},{"line_number":570,"context_line":"        # to a node that does not have that capability and attempted deploy."},{"line_number":571,"context_line":"        # Handlig this exception here, will help user to tear down such a"},{"line_number":572,"context_line":"        # Node."},{"line_number":573,"context_line":"        except exception.IloOperationNotSupported:"},{"line_number":574,"context_line":"            LOG.warn(_LW(\u0027Secure boot mode is not supported for node %s\u0027),"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_b08a2318","line":571,"in_reply_to":"9a80dd14_7c524a36","updated":"2015-03-18 20:50:42.000000000","message":"Done","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9a112fa59df57b5fa7a2d9c19e1562b3f37e1ec5","unresolved":false,"context_lines":[{"line_number":572,"context_line":"        # Node."},{"line_number":573,"context_line":"        except exception.IloOperationNotSupported:"},{"line_number":574,"context_line":"            LOG.warn(_LW(\u0027Secure boot mode is not supported for node %s\u0027),"},{"line_number":575,"context_line":"                         task.node.uuid)"},{"line_number":576,"context_line":"        return super(IloPXEDeploy, self).tear_down(task)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_ff59cc35","line":575,"updated":"2015-03-18 19:28:24.000000000","message":"what if _update_secure_boot_mode() raised IloOperationError? That\u0027ll abort the tear_down. Is that OK?","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":572,"context_line":"        # Node."},{"line_number":573,"context_line":"        except exception.IloOperationNotSupported:"},{"line_number":574,"context_line":"            LOG.warn(_LW(\u0027Secure boot mode is not supported for node %s\u0027),"},{"line_number":575,"context_line":"                         task.node.uuid)"},{"line_number":576,"context_line":"        return super(IloPXEDeploy, self).tear_down(task)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":""}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_50756730","line":575,"in_reply_to":"9a80dd14_ff59cc35","updated":"2015-03-18 20:50:42.000000000","message":"That should be ok, I suppose. The treatment would be similar to any other iLO command failure. This error would need some kind of correction in iLo setup which is beyond ironic scope.\nWe are handling IloOperationNotSupported exception only to bailout incorrect configuration done by user in node wrt secure boot capability.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"9757af53d4f4857cd46a627f7b12b8eb3189d454","unresolved":false,"context_lines":[{"line_number":759,"context_line":"            the deploy."},{"line_number":760,"context_line":"        :raises: IloOperationError, if some operation on iLO failed."},{"line_number":761,"context_line":"        \"\"\""},{"line_number":762,"context_line":"        LOG.debug(\u0027Continue deploy for the deployment on node %s\u0027,"},{"line_number":763,"context_line":"                  task.node.uuid)"},{"line_number":764,"context_line":"        # Set boot mode"},{"line_number":765,"context_line":"        ilo_common.update_boot_mode(task)"}],"source_content_type":"text/x-python","patch_set":57,"id":"dac4157f_9f719be3","line":762,"updated":"2015-04-18 23:38:39.000000000","message":"\u0027Continue deploying\u0027 is better, I think.","commit_id":"f555bf8513e914f8d5afd8698557d03cccccacc9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"ee30c5d8704deb8a92e23506498b29987e6dc046","unresolved":false,"context_lines":[{"line_number":759,"context_line":"            the deploy."},{"line_number":760,"context_line":"        :raises: IloOperationError, if some operation on iLO failed."},{"line_number":761,"context_line":"        \"\"\""},{"line_number":762,"context_line":"        LOG.debug(\u0027Continue deploy for the deployment on node %s\u0027,"},{"line_number":763,"context_line":"                  task.node.uuid)"},{"line_number":764,"context_line":"        # Set boot mode"},{"line_number":765,"context_line":"        ilo_common.update_boot_mode(task)"}],"source_content_type":"text/x-python","patch_set":57,"id":"bab921fb_6df9734d","line":762,"in_reply_to":"dac4157f_9f719be3","updated":"2015-06-05 04:14:56.000000000","message":"Done","commit_id":"f555bf8513e914f8d5afd8698557d03cccccacc9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"8557bd77c514183a0fbdc4fba7a261ef85e8fd8e","unresolved":false,"context_lines":[{"line_number":655,"context_line":"        :raises: InvalidParameterValue."},{"line_number":656,"context_line":"        \"\"\""},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"        deploy_utils.validate_capabilities(task.node)"},{"line_number":659,"context_line":"        super(IloPXEDeploy, self).validate(task)"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"    def prepare(self, task):"}],"source_content_type":"text/x-python","patch_set":63,"id":"3a50d1a3_939bd917","line":658,"updated":"2015-07-23 09:37:17.000000000","message":"We already do this in PXEDeploy, so I think this can be removed.","commit_id":"b3d072b82805f0712ad1dd9408638a7fd9852254"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"53a08c3fc56cde9fab093878f1a99578e23f5f7a","unresolved":false,"context_lines":[{"line_number":655,"context_line":"        :raises: InvalidParameterValue."},{"line_number":656,"context_line":"        \"\"\""},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"        deploy_utils.validate_capabilities(task.node)"},{"line_number":659,"context_line":"        super(IloPXEDeploy, self).validate(task)"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"    def prepare(self, task):"}],"source_content_type":"text/x-python","patch_set":63,"id":"3a50d1a3_71f15e94","line":658,"in_reply_to":"3a50d1a3_939bd917","updated":"2015-07-23 15:46:41.000000000","message":"Done","commit_id":"b3d072b82805f0712ad1dd9408638a7fd9852254"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"8557bd77c514183a0fbdc4fba7a261ef85e8fd8e","unresolved":false,"context_lines":[{"line_number":705,"context_line":"        :param task: a TaskManager instance."},{"line_number":706,"context_line":"        :returns: states.DELETED"},{"line_number":707,"context_line":"        \"\"\""},{"line_number":708,"context_line":"        manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":709,"context_line":"        try:"},{"line_number":710,"context_line":"            _update_secure_boot_mode(task, False)"},{"line_number":711,"context_line":"        # We need to handle IloOperationNotSupported exception so that if"}],"source_content_type":"text/x-python","patch_set":63,"id":"3a50d1a3_56469f7b","line":708,"updated":"2015-07-23 09:37:17.000000000","message":"Is this power off mandatory here ? We do this in PXEDeploy.tear_down() as well.","commit_id":"b3d072b82805f0712ad1dd9408638a7fd9852254"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"53a08c3fc56cde9fab093878f1a99578e23f5f7a","unresolved":false,"context_lines":[{"line_number":705,"context_line":"        :param task: a TaskManager instance."},{"line_number":706,"context_line":"        :returns: states.DELETED"},{"line_number":707,"context_line":"        \"\"\""},{"line_number":708,"context_line":"        manager_utils.node_power_action(task, states.POWER_OFF)"},{"line_number":709,"context_line":"        try:"},{"line_number":710,"context_line":"            _update_secure_boot_mode(task, False)"},{"line_number":711,"context_line":"        # We need to handle IloOperationNotSupported exception so that if"}],"source_content_type":"text/x-python","patch_set":63,"id":"3a50d1a3_d13dd22b","line":708,"in_reply_to":"3a50d1a3_56469f7b","updated":"2015-07-23 15:46:41.000000000","message":"Done","commit_id":"b3d072b82805f0712ad1dd9408638a7fd9852254"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"af8e186adf5e733237aeeccbed7cda9769f4c4c2","unresolved":false,"context_lines":[{"line_number":647,"context_line":""},{"line_number":648,"context_line":"class IloPXEDeploy(pxe.PXEDeploy):"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"    def validate(self, task):"},{"line_number":651,"context_line":"        \"\"\"Validate the driver-specific Node deployment info."},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        :param task: a TaskManager instance"}],"source_content_type":"text/x-python","patch_set":64,"id":"3a50d1a3_f1fc6074","line":650,"updated":"2015-07-24 08:06:06.000000000","message":"We don\u0027t need this method in IloPXEDeploy now.","commit_id":"4ece6d43a93dc46fa832c3811137cba30782a517"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"ae58898be3148d173bdb4e847a4a33bfaf2c6496","unresolved":false,"context_lines":[{"line_number":647,"context_line":""},{"line_number":648,"context_line":"class IloPXEDeploy(pxe.PXEDeploy):"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"    def validate(self, task):"},{"line_number":651,"context_line":"        \"\"\"Validate the driver-specific Node deployment info."},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        :param task: a TaskManager instance"}],"source_content_type":"text/x-python","patch_set":64,"id":"3a50d1a3_403a12e9","line":650,"in_reply_to":"3a50d1a3_f1fc6074","updated":"2015-07-25 07:00:33.000000000","message":"Done","commit_id":"4ece6d43a93dc46fa832c3811137cba30782a517"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"af8e186adf5e733237aeeccbed7cda9769f4c4c2","unresolved":false,"context_lines":[{"line_number":703,"context_line":"        :param task: a TaskManager instance."},{"line_number":704,"context_line":"        :returns: states.DELETED"},{"line_number":705,"context_line":"        \"\"\""},{"line_number":706,"context_line":"        try:"},{"line_number":707,"context_line":"            _update_secure_boot_mode(task, False)"},{"line_number":708,"context_line":"        # We need to handle IloOperationNotSupported exception so that if"},{"line_number":709,"context_line":"        # User had incorrectly specified the Node capability \u0027secure_boot\u0027"}],"source_content_type":"text/x-python","patch_set":64,"id":"3a50d1a3_c364f6e6","line":706,"updated":"2015-07-24 08:06:06.000000000","message":"nit: same 5 lines of code around all three drivers. May be better off in a separate method named\n\n  def _disable_secure_boot_if_supported(task):\n    try:\n        _update_secure_boot_mode(task, False)\n        # .....\n    except exception.IloOperationNotSupported:\n        LOG.warn(_LW(\u0027Secure boot mode is not supported for node %s\u0027), task.node.uuid)","commit_id":"4ece6d43a93dc46fa832c3811137cba30782a517"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"ae58898be3148d173bdb4e847a4a33bfaf2c6496","unresolved":false,"context_lines":[{"line_number":703,"context_line":"        :param task: a TaskManager instance."},{"line_number":704,"context_line":"        :returns: states.DELETED"},{"line_number":705,"context_line":"        \"\"\""},{"line_number":706,"context_line":"        try:"},{"line_number":707,"context_line":"            _update_secure_boot_mode(task, False)"},{"line_number":708,"context_line":"        # We need to handle IloOperationNotSupported exception so that if"},{"line_number":709,"context_line":"        # User had incorrectly specified the Node capability \u0027secure_boot\u0027"}],"source_content_type":"text/x-python","patch_set":64,"id":"3a50d1a3_ddb5877e","line":706,"in_reply_to":"3a50d1a3_c364f6e6","updated":"2015-07-25 07:00:33.000000000","message":"Done","commit_id":"4ece6d43a93dc46fa832c3811137cba30782a517"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"4e831aa304a4d79bff38de93af8947e0cc2335e8","unresolved":false,"context_lines":[{"line_number":748,"context_line":"    def pass_deploy_info(self, task, **kwargs):"},{"line_number":749,"context_line":"        manager_utils.node_set_boot_device(task, boot_devices.PXE,"},{"line_number":750,"context_line":"                                           persistent\u003dTrue)"},{"line_number":751,"context_line":"        LOG.debug(\u0027Pass deploy info for the deployment on node %s\u0027,"},{"line_number":752,"context_line":"                  task.node.uuid)"},{"line_number":753,"context_line":"        # Set boot mode"},{"line_number":754,"context_line":"        ilo_common.update_boot_mode(task)"}],"source_content_type":"text/x-python","patch_set":64,"id":"3a50d1a3_e4c0157f","line":751,"updated":"2015-07-24 10:15:10.000000000","message":"Please move this debug logging before node_set_boot_device()","commit_id":"4ece6d43a93dc46fa832c3811137cba30782a517"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"ae58898be3148d173bdb4e847a4a33bfaf2c6496","unresolved":false,"context_lines":[{"line_number":748,"context_line":"    def pass_deploy_info(self, task, **kwargs):"},{"line_number":749,"context_line":"        manager_utils.node_set_boot_device(task, boot_devices.PXE,"},{"line_number":750,"context_line":"                                           persistent\u003dTrue)"},{"line_number":751,"context_line":"        LOG.debug(\u0027Pass deploy info for the deployment on node %s\u0027,"},{"line_number":752,"context_line":"                  task.node.uuid)"},{"line_number":753,"context_line":"        # Set boot mode"},{"line_number":754,"context_line":"        ilo_common.update_boot_mode(task)"}],"source_content_type":"text/x-python","patch_set":64,"id":"3a50d1a3_005e4a45","line":751,"in_reply_to":"3a50d1a3_e4c0157f","updated":"2015-07-25 07:00:33.000000000","message":"Done","commit_id":"4ece6d43a93dc46fa832c3811137cba30782a517"}],"ironic/drivers/modules/ilo/management.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ebf75f18456fcc0b8064307690b7e8b998155212","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        Returns the current enabled state of UEFI secure boot on the node."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        :param task: a task from TaskManager."},{"line_number":172,"context_line":"        :raises: MissingParameterValue if a required iLO parameter is missing."},{"line_number":173,"context_line":"        :raises: IloOperationError on an error from IloClient library."},{"line_number":174,"context_line":"        :returns: Boolean value indicating current state of UEFI secure boot"},{"line_number":175,"context_line":"                  on the node."}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_879ca76b","line":172,"updated":"2015-02-19 16:43:07.000000000","message":"seems this one is not raised here, also InvalidParameterValue is in docstring of get_ilo_object, maybe add it here also or remove both?","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        Returns the current enabled state of UEFI secure boot on the node."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        :param task: a task from TaskManager."},{"line_number":172,"context_line":"        :raises: MissingParameterValue if a required iLO parameter is missing."},{"line_number":173,"context_line":"        :raises: IloOperationError on an error from IloClient library."},{"line_number":174,"context_line":"        :returns: Boolean value indicating current state of UEFI secure boot"},{"line_number":175,"context_line":"                  on the node."}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_45d51d42","line":172,"in_reply_to":"da86d52c_879ca76b","updated":"2015-02-20 04:47:49.000000000","message":"These exceptions InvalidParameterValue and MissingParameterValue could come from parse_driver_info() called from get_ilo_object() method.","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ebf75f18456fcc0b8064307690b7e8b998155212","unresolved":false,"context_lines":[{"line_number":186,"context_line":"                secure_boot_state \u003d ilo_object.get_secure_boot_mode()"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        except ilo_error.IloCommandNotSupportedError as ilo_exception:"},{"line_number":189,"context_line":"            raise exception.IloOperationNotSupported(operation\u003doperation,"},{"line_number":190,"context_line":"                                                     error\u003dilo_exception)"},{"line_number":191,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":192,"context_line":"            raise exception.IloOperationError(operation\u003doperation,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_473b8fd0","line":189,"updated":"2015-02-19 16:43:07.000000000","message":"needs to be added to docstring.","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":186,"context_line":"                secure_boot_state \u003d ilo_object.get_secure_boot_mode()"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        except ilo_error.IloCommandNotSupportedError as ilo_exception:"},{"line_number":189,"context_line":"            raise exception.IloOperationNotSupported(operation\u003doperation,"},{"line_number":190,"context_line":"                                                     error\u003dilo_exception)"},{"line_number":191,"context_line":"        except ilo_error.IloError as ilo_exception:"},{"line_number":192,"context_line":"            raise exception.IloOperationError(operation\u003doperation,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_655861fb","line":189,"in_reply_to":"da86d52c_473b8fd0","updated":"2015-02-20 04:47:49.000000000","message":"Done","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ebf75f18456fcc0b8064307690b7e8b998155212","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        :param task: a task from TaskManager."},{"line_number":202,"context_line":"        :param flag: Boolean value. True if the secure boot to be"},{"line_number":203,"context_line":"                           enabled in next boot."},{"line_number":204,"context_line":"        :raises: IloOperationError on an error from IloClient library."},{"line_number":205,"context_line":"        \"\"\""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        operation \u003d _(\"Setting secure boot mode to %s\") % flag"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_a7ea8b9d","line":204,"updated":"2015-02-19 16:43:07.000000000","message":"ditto about InvalidparameterValue, MissingParameterValue","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        :param task: a task from TaskManager."},{"line_number":202,"context_line":"        :param flag: Boolean value. True if the secure boot to be"},{"line_number":203,"context_line":"                           enabled in next boot."},{"line_number":204,"context_line":"        :raises: IloOperationError on an error from IloClient library."},{"line_number":205,"context_line":"        \"\"\""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        operation \u003d _(\"Setting secure boot mode to %s\") % flag"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_855d55ec","line":204,"in_reply_to":"da86d52c_a7ea8b9d","updated":"2015-02-20 04:47:49.000000000","message":"Same as explained above.","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"ebf75f18456fcc0b8064307690b7e8b998155212","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                      {\u0027flag\u0027: flag, \u0027uuid\u0027: task.node.uuid})"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        except ilo_error.IloCommandNotSupportedError as ilo_exception:"},{"line_number":217,"context_line":"            raise exception.IloOperationNotSupported(operation\u003doperation,"},{"line_number":218,"context_line":"                                              error\u003dilo_exception)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        except ilo_error.IloError as ilo_exception:"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_c7a21fad","line":217,"updated":"2015-02-19 16:43:07.000000000","message":"ditto","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"f5a8d4952921fc6c83f466279a7c59126fc39f24","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                      {\u0027flag\u0027: flag, \u0027uuid\u0027: task.node.uuid})"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        except ilo_error.IloCommandNotSupportedError as ilo_exception:"},{"line_number":217,"context_line":"            raise exception.IloOperationNotSupported(operation\u003doperation,"},{"line_number":218,"context_line":"                                              error\u003dilo_exception)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        except ilo_error.IloError as ilo_exception:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_450a7dd3","line":217,"in_reply_to":"da86d52c_c7a21fad","updated":"2015-02-20 04:47:49.000000000","message":"Done","commit_id":"83d0b89eb32b98390d340dc37f8097f276085dd9"}],"ironic/drivers/modules/pxe.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"d029a9189b691f1fe5aa7b00bae099356e14e379","unresolved":false,"context_lines":[{"line_number":311,"context_line":"            raise exception.InvalidParameterValue(error_msg)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        # Check the secure_boot capability parameter value."},{"line_number":314,"context_line":"        driver_utils.validate_secure_boot_capability(task.node)"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        if CONF.pxe.ipxe_enabled:"},{"line_number":317,"context_line":"            if not CONF.pxe.http_url or not CONF.pxe.http_root:"}],"source_content_type":"text/x-python","patch_set":23,"id":"9a80dd14_89865012","line":314,"updated":"2015-03-10 17:12:24.000000000","message":"secure boot do not support local boot. Need to add check for the same,","commit_id":"b41efd169b8dfc4cf95c36db2677b72a80a21029"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9a112fa59df57b5fa7a2d9c19e1562b3f37e1ec5","unresolved":false,"context_lines":[{"line_number":74,"context_line":"               default\u003d\u0027pxelinux.0\u0027,"},{"line_number":75,"context_line":"               help\u003d\u0027Bootfile DHCP parameter.\u0027),"},{"line_number":76,"context_line":"    cfg.StrOpt(\u0027uefi_pxe_bootfile_name\u0027,"},{"line_number":77,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":78,"context_line":"               help\u003d\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027),"},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027http_url\u0027,"},{"line_number":80,"context_line":"                help\u003d\u0027Ironic compute node\\\u0027s HTTP server URL. \u0027"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_3fcb644b","line":77,"updated":"2015-03-18 19:28:24.000000000","message":"We\u0027re changing the defaults here. What if someone has configs from juno and keeps that and just updates/adds to that.\n\nWe need to make sure we document that the default changed. (Not sure where to document it.) Maybe we should add a DocImpact tag to the commit. Or is this noted in the spec?","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"687ba4e3c6344fc2f09fdc685838f11fabfcc38f","unresolved":false,"context_lines":[{"line_number":74,"context_line":"               default\u003d\u0027pxelinux.0\u0027,"},{"line_number":75,"context_line":"               help\u003d\u0027Bootfile DHCP parameter.\u0027),"},{"line_number":76,"context_line":"    cfg.StrOpt(\u0027uefi_pxe_bootfile_name\u0027,"},{"line_number":77,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":78,"context_line":"               help\u003d\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027),"},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027http_url\u0027,"},{"line_number":80,"context_line":"                help\u003d\u0027Ironic compute node\\\u0027s HTTP server URL. \u0027"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_4b1cda6a","line":77,"in_reply_to":"9a80dd14_3fcb644b","updated":"2015-03-18 20:50:42.000000000","message":"We are changing the uefi_pxe_config_template_file as well. The bootloader is being changed from elilo to grub. And it is being documented in install-guide.rst\nPlease let me know if we need to document it anywhere else.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"c3e68297e4ca3cbca97692be4483a33638e120bb","unresolved":false,"context_lines":[{"line_number":74,"context_line":"               default\u003d\u0027pxelinux.0\u0027,"},{"line_number":75,"context_line":"               help\u003d\u0027Bootfile DHCP parameter.\u0027),"},{"line_number":76,"context_line":"    cfg.StrOpt(\u0027uefi_pxe_bootfile_name\u0027,"},{"line_number":77,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":78,"context_line":"               help\u003d\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027),"},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027http_url\u0027,"},{"line_number":80,"context_line":"                help\u003d\u0027Ironic compute node\\\u0027s HTTP server URL. \u0027"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_fd21cf9e","line":77,"in_reply_to":"9a80dd14_4b1cda6a","updated":"2015-03-18 21:55:10.000000000","message":"Do you mean that you\u0027re going to document it in the install-guide, or that it is already mentioned in the install guide?","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"cf524487f560125f7271a821fc3d1912fb072f76","unresolved":false,"context_lines":[{"line_number":74,"context_line":"               default\u003d\u0027pxelinux.0\u0027,"},{"line_number":75,"context_line":"               help\u003d\u0027Bootfile DHCP parameter.\u0027),"},{"line_number":76,"context_line":"    cfg.StrOpt(\u0027uefi_pxe_bootfile_name\u0027,"},{"line_number":77,"context_line":"               default\u003d\u0027bootx64.efi\u0027,"},{"line_number":78,"context_line":"               help\u003d\u0027Bootfile DHCP parameter for UEFI boot mode.\u0027),"},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027http_url\u0027,"},{"line_number":80,"context_line":"                help\u003d\u0027Ironic compute node\\\u0027s HTTP server URL. \u0027"}],"source_content_type":"text/x-python","patch_set":41,"id":"9a80dd14_79540a22","line":77,"in_reply_to":"9a80dd14_fd21cf9e","updated":"2015-03-19 03:53:17.000000000","message":"Updated install-guide.","commit_id":"0554bb87e21421b2e90eda09ffb242f68d2fe030"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a0a2169a4c47490e6f51c220df8420d26dde1d64","unresolved":false,"context_lines":[{"line_number":56,"context_line":"               help\u003d\u0027Template file for PXE configuration.\u0027),"},{"line_number":57,"context_line":"    cfg.StrOpt(\u0027uefi_pxe_config_template\u0027,"},{"line_number":58,"context_line":"               default\u003dpaths.basedir_def("},{"line_number":59,"context_line":"                    \u0027drivers/modules/pxe_grub_config.template\u0027),"},{"line_number":60,"context_line":"               help\u003d\u0027Template file for PXE configuration for UEFI boot\u0027"},{"line_number":61,"context_line":"                    \u0027 loader.\u0027),"},{"line_number":62,"context_line":"    cfg.StrOpt(\u0027tftp_server\u0027,"}],"source_content_type":"text/x-python","patch_set":48,"id":"9a80dd14_dc186878","line":59,"updated":"2015-03-19 15:13:33.000000000","message":"I dislike we are changing it here. This can break things, a user that uses a custom template for elilo in Juno once he upgrade to Kilo he won\u0027t be able to boot any nodes anymore.\n\nPlus, nodes already deployed with elilo might have a problem with take over when the conductor re generates the PXE config files for that node.","commit_id":"22f886b8d68eb804ccdffb54c60b2490bc6ec698"}],"ironic/tests/drivers/ilo/test_deploy.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"adaebe00e7a5db06a21caf8032cc8d617a36cf08","unresolved":false,"context_lines":[{"line_number":1151,"context_line":"            pxe_tear_down_mock.assert_called_once_with(task)"},{"line_number":1152,"context_line":"            self.assertEqual(states.DELETED, returned_state)"},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":"    @mock.patch.object(ilo_deploy.LOG, \u0027warn\u0027)"},{"line_number":1155,"context_line":"    @mock.patch.object(pxe.PXEDeploy, \u0027tear_down\u0027)"},{"line_number":1156,"context_line":"    @mock.patch.object(ilo_deploy, \u0027exception\u0027)"},{"line_number":1157,"context_line":"    @mock.patch.object(ilo_deploy, \u0027_update_secure_boot_mode\u0027)"}],"source_content_type":"text/x-python","patch_set":56,"id":"3ab451fb_d5947038","line":1154,"updated":"2015-04-17 22:00:55.000000000","message":"Please add:\n\n autospec\u003dTrue\n\nTo the mock declarations.","commit_id":"84aaff304567b954d747c2417edd569c44547efa"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"1880ad8ad37ebe900eb4f4460f127b9a9d1208ad","unresolved":false,"context_lines":[{"line_number":1151,"context_line":"            pxe_tear_down_mock.assert_called_once_with(task)"},{"line_number":1152,"context_line":"            self.assertEqual(states.DELETED, returned_state)"},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":"    @mock.patch.object(ilo_deploy.LOG, \u0027warn\u0027)"},{"line_number":1155,"context_line":"    @mock.patch.object(pxe.PXEDeploy, \u0027tear_down\u0027)"},{"line_number":1156,"context_line":"    @mock.patch.object(ilo_deploy, \u0027exception\u0027)"},{"line_number":1157,"context_line":"    @mock.patch.object(ilo_deploy, \u0027_update_secure_boot_mode\u0027)"}],"source_content_type":"text/x-python","patch_set":56,"id":"fabf19d9_2e525fde","line":1154,"in_reply_to":"3ab451fb_d5947038","updated":"2015-04-18 12:24:47.000000000","message":"Done","commit_id":"84aaff304567b954d747c2417edd569c44547efa"}]}
