)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"68f980ddf51937c3f762a982aa1b60841ee1855b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nisha Agarwal \u003cagarwalnisha1980@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-09-02 23:14:21 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"agent_ilo doesnt boot up the image"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The boot and deploy interfaces are not yet implemented"},{"line_number":10,"context_line":"in agent_ilo driver. The boot.clean_up_ramdisk should be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da20952f_80f3fc09","line":7,"updated":"2015-09-03 06:23:32.000000000","message":"Commit message is a bit misleading. How about:\n\n  agent_ilo fails to bring up instance\n\n  Since boot is a core interface, there is an attribute task.driver.boot\n  for every driver and hence hasattr cannot be used to check if the\n  driver has a boot interface.  This commit fixes the coding error.","commit_id":"27e09e321c1a5e449cc2437003d3bbb4fc2343db"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"add9863177e7cb25704a44b44d0526b64011e3c6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"agent_ilo fails to bring up instance"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since boot is a core interface, there is an attribute"},{"line_number":10,"context_line":"task.driver.boot for every driver and hence hasattr"},{"line_number":11,"context_line":"cannot be used to check if the driver has a boot"},{"line_number":12,"context_line":"interface.  This commit fixes the coding error."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"da20952f_b7ea04ab","line":9,"updated":"2015-09-03 09:10:59.000000000","message":"It\u0027s a standard interface, so it may or may not be present [1]\n\n[1] https://github.com/openstack/ironic/blob/master/ironic/drivers/base.py#L97-L103","commit_id":"8344959bbc41ffddf6199ccdd1706da955d7e5fc"}],"ironic/drivers/modules/agent.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"add9863177e7cb25704a44b44d0526b64011e3c6","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        # TODO(rameshg87): Not all in-tree drivers using reboot_to_instance"},{"line_number":465,"context_line":"        # have a boot interface. So include a check for now. Remove this"},{"line_number":466,"context_line":"        # check once all in-tree drivers have a boot interface."},{"line_number":467,"context_line":"        if task.driver.boot:"},{"line_number":468,"context_line":"            task.driver.boot.clean_up_ramdisk(task)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_b7b3e4e8","line":467,"updated":"2015-09-03 09:10:59.000000000","message":"I think that was done because of backward compat with 3rd party drivers, which I agree with since the boot interface was introduced this cycle (and still not yet complete).\n\nI understand this code is broke because in the base class we just set \"boot \u003d None\" [1] so hasattr() will always pass, but we can\u0027t guarantee that there will be an boot interface set to the driver, it\u0027s not mandatory otherwise we would be breaking backward compat with the driver\u0027s interface.\n\nIMO this code should be:\n\n if hasattr(task.driver, \u0027boot\u0027) and task.driver.boot is not None:\n       task.driver.boot.clean_up_ramdisk(task) \n\n[1] https://github.com/openstack/ironic/blob/master/ironic/drivers/base.py#L97-L103","commit_id":"8344959bbc41ffddf6199ccdd1706da955d7e5fc"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"612266289db6d99ceb2c14907c89ac77c09b4107","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        # TODO(rameshg87): Not all in-tree drivers using reboot_to_instance"},{"line_number":465,"context_line":"        # have a boot interface. So include a check for now. Remove this"},{"line_number":466,"context_line":"        # check once all in-tree drivers have a boot interface."},{"line_number":467,"context_line":"        if task.driver.boot:"},{"line_number":468,"context_line":"            task.driver.boot.clean_up_ramdisk(task)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_eba88b79","line":467,"in_reply_to":"da20952f_172170fb","updated":"2015-09-03 13:29:08.000000000","message":"@Lucas. Right, so what Nisha did above is good :)","commit_id":"8344959bbc41ffddf6199ccdd1706da955d7e5fc"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"9c1440a3d46897e939b2d9ca6430dc87fa105465","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        # TODO(rameshg87): Not all in-tree drivers using reboot_to_instance"},{"line_number":465,"context_line":"        # have a boot interface. So include a check for now. Remove this"},{"line_number":466,"context_line":"        # check once all in-tree drivers have a boot interface."},{"line_number":467,"context_line":"        if task.driver.boot:"},{"line_number":468,"context_line":"            task.driver.boot.clean_up_ramdisk(task)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_172170fb","line":467,"in_reply_to":"da20952f_b7b3e4e8","updated":"2015-09-03 09:12:20.000000000","message":"Sorry, we can just:\n\n if task.driver.boot is not None:\n     ...","commit_id":"8344959bbc41ffddf6199ccdd1706da955d7e5fc"}]}
