)]}'
{"ironic/conductor/utils.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"d0bf3c4d715c8f91dfcf9ef964701c7b1f94b857","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        permanent. Default: False."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":"    # Some power drivers like SSH don\u0027t support setting a boot device"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    task.driver.vendor.validate(node, device\u003ddevice, persistent\u003dpersistent,"},{"line_number":38,"context_line":"                                method\u003d\u0027set_boot_device\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2F%2B4g%3D","line":35,"updated":"2014-03-12 15:06:46.000000000","message":"this will raise InvalidParameter value for the pxe_ssh driver, causing every deploy to fail for that driver.\n\nI think you should remove validate(), add a try: around vendor_passthru, and catch UnsupportedDriverExtension here.\n\nI\u0027m tossing up a one-line patch to fix that exception.","commit_id":"ad30cf9aabad7699bf2c72036d6ffc0ec52f3ef5"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d87c3c239f42a61f9c9a8ed992104ad615d93fc2","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    :param task: a TaskManager instance."},{"line_number":29,"context_line":"    :param node: The Node."},{"line_number":30,"context_line":"    :param device: Boot device. One of [pxe, disk, cdrom, safe, bios]."},{"line_number":31,"context_line":"    :param persistent: Whether to set next-boot, or make the change"},{"line_number":32,"context_line":"        permanent. Default: False."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2F740%3D","line":30,"updated":"2014-03-12 20:53:46.000000000","message":"Maybe we shouldn\u0027t specify the possible values here since this will probably never be accurate. Eg. I just looked at ipminative.py, VendorPassthru._set_boot_device, and it shows \"One of [net, network, pxe, hd, cd, cdrom, dvd, floppy, default, setup, f1]\".","commit_id":"6c79a63c4292fc45a3eede8ddcf649000ddfeaff"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"fcb2f67d361dc5268d350f6d4eca6e937b40034b","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    :param task: a TaskManager instance."},{"line_number":29,"context_line":"    :param node: The Node."},{"line_number":30,"context_line":"    :param device: Boot device. One of [pxe, disk, cdrom, safe, bios]."},{"line_number":31,"context_line":"    :param persistent: Whether to set next-boot, or make the change"},{"line_number":32,"context_line":"        permanent. Default: False."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2F1Gg%3D","line":30,"in_reply_to":"AAAAWH%2F%2F3tc%3D","updated":"2014-03-13 14:47:36.000000000","message":"So maybe instead, it could say \u0027values are vendor-specific\u0027 or something like that.","commit_id":"6c79a63c4292fc45a3eede8ddcf649000ddfeaff"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"2d6b9b519e00227bcae251958625ef0c3267cec7","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    :param task: a TaskManager instance."},{"line_number":29,"context_line":"    :param node: The Node."},{"line_number":30,"context_line":"    :param device: Boot device. One of [pxe, disk, cdrom, safe, bios]."},{"line_number":31,"context_line":"    :param persistent: Whether to set next-boot, or make the change"},{"line_number":32,"context_line":"        permanent. Default: False."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2F3tc%3D","line":30,"in_reply_to":"AAAAWH%2F%2F740%3D","updated":"2014-03-13 09:03:30.000000000","message":"Ruby, I think this is vendor specific. For seamicro VALID_BOOT_DEVICES \u003d [\u0027pxe\u0027, \u0027disk\u0027].","commit_id":"6c79a63c4292fc45a3eede8ddcf649000ddfeaff"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d87c3c239f42a61f9c9a8ed992104ad615d93fc2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":"    try:"},{"line_number":36,"context_line":"        task.driver.vendor.vendor_passthru(task, node,"},{"line_number":37,"context_line":"                                           device\u003ddevice,"},{"line_number":38,"context_line":"                                           persistent\u003dpersistent,"},{"line_number":39,"context_line":"                                           method\u003d\u0027set_boot_device\u0027)"},{"line_number":40,"context_line":"    except exception.UnsupportedDriverExtension:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2F7wA%3D","line":37,"updated":"2014-03-12 20:53:46.000000000","message":"FYI, the seamicro code\u0027s _set_boot_device() looks for \u0027boot_device\u0027 arg, not \u0027device\u0027.","commit_id":"6c79a63c4292fc45a3eede8ddcf649000ddfeaff"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"8abd715340b2a19eb428da150b0a95995491c653","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":"    try:"},{"line_number":36,"context_line":"        task.driver.vendor.vendor_passthru(task, node,"},{"line_number":37,"context_line":"                                           device\u003ddevice,"},{"line_number":38,"context_line":"                                           persistent\u003dpersistent,"},{"line_number":39,"context_line":"                                           method\u003d\u0027set_boot_device\u0027)"},{"line_number":40,"context_line":"    except exception.UnsupportedDriverExtension:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2F3f4%3D","line":37,"in_reply_to":"AAAAWH%2F%2F3s8%3D","updated":"2014-03-13 09:31:51.000000000","message":"Catched in https://review.openstack.org/#/c/80221/","commit_id":"6c79a63c4292fc45a3eede8ddcf649000ddfeaff"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"2d6b9b519e00227bcae251958625ef0c3267cec7","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":"    try:"},{"line_number":36,"context_line":"        task.driver.vendor.vendor_passthru(task, node,"},{"line_number":37,"context_line":"                                           device\u003ddevice,"},{"line_number":38,"context_line":"                                           persistent\u003dpersistent,"},{"line_number":39,"context_line":"                                           method\u003d\u0027set_boot_device\u0027)"},{"line_number":40,"context_line":"    except exception.UnsupportedDriverExtension:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2F3s8%3D","line":37,"in_reply_to":"AAAAWH%2F%2F7wA%3D","updated":"2014-03-13 09:03:30.000000000","message":"Good catch. I think we need patch seamicro for consistency.","commit_id":"6c79a63c4292fc45a3eede8ddcf649000ddfeaff"}],"ironic/tests/conductor/test_conductor_utils.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d87c3c239f42a61f9c9a8ed992104ad615d93fc2","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    def test_node_set_boot_device_valid(self):"},{"line_number":48,"context_line":"        mgr_utils.mock_the_extension_manager(driver\u003d\"fake_ipmitool\")"},{"line_number":49,"context_line":"        self.driver \u003d driver_factory.get_driver(\"fake_ipmitool\")"},{"line_number":50,"context_line":"        ipmi_info \u003d utils.get_test_impi_info()"},{"line_number":51,"context_line":"        ndict \u003d utils.get_test_node(uuid\u003dcmn_utils.generate_uuid(),"},{"line_number":52,"context_line":"                                    driver\u003d\u0027fake_ipmitool\u0027,"},{"line_number":53,"context_line":"                                    driver_info\u003dipmi_info)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2F7t4%3D","line":50,"updated":"2014-03-12 20:53:46.000000000","message":"did someone really call it get_test_impi_info() instead of get_test_ipmi_info()? :-)","commit_id":"6c79a63c4292fc45a3eede8ddcf649000ddfeaff"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"8abd715340b2a19eb428da150b0a95995491c653","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    def test_node_set_boot_device_valid(self):"},{"line_number":48,"context_line":"        mgr_utils.mock_the_extension_manager(driver\u003d\"fake_ipmitool\")"},{"line_number":49,"context_line":"        self.driver \u003d driver_factory.get_driver(\"fake_ipmitool\")"},{"line_number":50,"context_line":"        ipmi_info \u003d utils.get_test_impi_info()"},{"line_number":51,"context_line":"        ndict \u003d utils.get_test_node(uuid\u003dcmn_utils.generate_uuid(),"},{"line_number":52,"context_line":"                                    driver\u003d\u0027fake_ipmitool\u0027,"},{"line_number":53,"context_line":"                                    driver_info\u003dipmi_info)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2F3fQ%3D","line":50,"in_reply_to":"AAAAWH%2F%2F7t4%3D","updated":"2014-03-13 09:31:51.000000000","message":"This was a global problem. Addressed in https://review.openstack.org/#/c/80216/","commit_id":"6c79a63c4292fc45a3eede8ddcf649000ddfeaff"}]}
