)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"c5f5ae31d5ec1541c2880d2e9ed526c46b4d4642","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add a driver method to toggle instance booting"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a driver method to toggle the ability to boot an instance."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ie448c681d653b126cb12d3a48d79ab4febde8828"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAATn%2F%2BjDY%3D","line":10,"updated":"2013-11-24 08:47:26.000000000","message":"This is the top patch of the blueprint, so shouldn\u0027t it include a reference to the BP ?\n\nWould also like to see something that acknowledges that this provides the xen implementation only.","commit_id":"4844f48462b820771e6adcbaed88c99c48067b46"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"090b832a84e4bf533464d66f810cb0582962cca3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add a driver method to toggle instance booting"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a driver method to toggle the ability to boot an instance."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ie448c681d653b126cb12d3a48d79ab4febde8828"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAATn%2F%2Bej8%3D","line":10,"in_reply_to":"AAAATn%2F%2BjDY%3D","updated":"2013-11-25 17:09:16.000000000","message":"Done","commit_id":"4844f48462b820771e6adcbaed88c99c48067b46"}],"nova/tests/virt/xenapi/test_driver.py":[{"author":{"_account_id":8430,"name":"Christopher Lefelhocz","email":"christopher.lefelhoc@rackspace.com","username":"leif"},"change_message_id":"ace0ccb5f6a2fd5f237bede4e2c0364c49a23a72","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        driver \u003d xenapi.XenAPIDriver(fake.FakeVirtAPI(), False)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        self.mox.StubOutWithMock(driver._vmops, \u0027set_bootable\u0027)"},{"line_number":80,"context_line":"        driver.set_bootable(\u0027inst\u0027, True)"},{"line_number":81,"context_line":"        self.mox.ReplayAll()"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        driver.set_bootable(\u0027inst\u0027, True)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FRq8%3D","line":80,"updated":"2013-11-11 21:16:27.000000000","message":"Should this be driver._vmops.set_bootable?","commit_id":"0c99fed362e9e398b1c853c69d5010badc803e20"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"93f5ce0afa5d90fb4b5520e0b079d1e44102e596","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        driver \u003d xenapi.XenAPIDriver(fake.FakeVirtAPI(), False)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        self.mox.StubOutWithMock(driver._vmops, \u0027set_bootable\u0027)"},{"line_number":80,"context_line":"        driver.set_bootable(\u0027inst\u0027, True)"},{"line_number":81,"context_line":"        self.mox.ReplayAll()"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        driver.set_bootable(\u0027inst\u0027, True)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FRn4%3D","line":80,"in_reply_to":"AAAATn%2F%2FRq8%3D","updated":"2013-11-11 21:32:17.000000000","message":"Done","commit_id":"0c99fed362e9e398b1c853c69d5010badc803e20"}],"nova/tests/virt/xenapi/test_xenapi.py":[{"author":{"_account_id":8430,"name":"Christopher Lefelhocz","email":"christopher.lefelhoc@rackspace.com","username":"leif"},"change_message_id":"082988ca28680ad9ff1a3ef7fd09d24a1fde7a59","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"        self.assertEqual(vdi_ref, vdi_ref2)"},{"line_number":1268,"context_line":"        self.assertEqual(vdi_rec[\u0027uuid\u0027], vdi_rec2[\u0027uuid\u0027])"},{"line_number":1269,"context_line":""},{"line_number":1270,"context_line":"    def test_set_bootable(self):"},{"line_number":1271,"context_line":"        instance \u003d self._create_instance()"},{"line_number":1272,"context_line":"        conn \u003d xenapi_conn.XenAPIDriver(fake.FakeVirtAPI(), False)"},{"line_number":1273,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FYVk%3D","line":1270,"updated":"2013-11-07 18:03:44.000000000","message":"This could be broken into two parts test_xenapi (make sure it calls to vmops function) and test_vmops (make sure it calls VM.set_blocked_operations).\nOR\nIf you think it\u0027s better to keep it all here, I would prefer to verify VM.set_blocked_operations is called rather than some internal function.","commit_id":"eb3a01b77dfc22990fe82a0a56caa3804a8c295a"}],"nova/virt/driver.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"390a523fa34eb7f0f69161b63f6e3af183c3292e","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":438,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":439,"context_line":"        pass"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def unrescue(self, instance, network_info):"},{"line_number":442,"context_line":"        \"\"\"Unrescue the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FSp8%3D","line":439,"updated":"2013-11-11 15:26:28.000000000","message":"I think we need a unit test for this one.","commit_id":"4211a99fbaf1dc025aee68e4adf990d84e6ef379"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"5b1fbc7ee45aa7ea8eac21c2012fdc0c188d6903","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":438,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":439,"context_line":"        pass"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def unrescue(self, instance, network_info):"},{"line_number":442,"context_line":"        \"\"\"Unrescue the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FR0w%3D","line":439,"in_reply_to":"AAAATn%2F%2FSp8%3D","updated":"2013-11-11 20:55:28.000000000","message":"You really want a unit test for a no-op?","commit_id":"4211a99fbaf1dc025aee68e4adf990d84e6ef379"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"f7871b1f66029db4ee93d8c583a81d901ca86c90","unresolved":false,"context_lines":[{"line_number":434,"context_line":"        \"\"\"Rescue the specified instance.\"\"\""},{"line_number":435,"context_line":"        raise NotImplementedError()"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":438,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":439,"context_line":"        pass"},{"line_number":440,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2BjFI%3D","line":437,"updated":"2013-11-24 08:24:16.000000000","message":"Why does this need to be a virt driver action / property ? The driver never boots an instance without being asked to by the compute manager AFAIK, so if we make bootable an attribute of the instance we would have a common implementation for all virt drivers.","commit_id":"4844f48462b820771e6adcbaed88c99c48067b46"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"090b832a84e4bf533464d66f810cb0582962cca3","unresolved":false,"context_lines":[{"line_number":434,"context_line":"        \"\"\"Rescue the specified instance.\"\"\""},{"line_number":435,"context_line":"        raise NotImplementedError()"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":438,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":439,"context_line":"        pass"},{"line_number":440,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2Bejk%3D","line":437,"in_reply_to":"AAAATn%2F%2BjFI%3D","updated":"2013-11-25 17:09:16.000000000","message":"Support still has to exist in the virt layer for this either way.","commit_id":"4844f48462b820771e6adcbaed88c99c48067b46"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"c5f5ae31d5ec1541c2880d2e9ed526c46b4d4642","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":438,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":439,"context_line":"        pass"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def unrescue(self, instance, network_info):"},{"line_number":442,"context_line":"        \"\"\"Unrescue the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2BjDo%3D","line":439,"updated":"2013-11-24 08:47:26.000000000","message":"Since this is going to be used as one of the running_deleted_instance_action options, but might not be implemented on all hypervisors then I think it should log a warning here rather than be silently ignored.","commit_id":"4844f48462b820771e6adcbaed88c99c48067b46"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"564d0fa1b3a7de385db9e118848e72a986b24873","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":438,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":439,"context_line":"        pass"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def unrescue(self, instance, network_info):"},{"line_number":442,"context_line":"        \"\"\"Unrescue the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2Bi18%3D","line":439,"updated":"2013-11-24 14:55:08.000000000","message":"What about \"raise NotImplementedError()\" here? Just pass may also bypass some potential issues for some drivers.","commit_id":"4844f48462b820771e6adcbaed88c99c48067b46"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"090b832a84e4bf533464d66f810cb0582962cca3","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":438,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":439,"context_line":"        pass"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def unrescue(self, instance, network_info):"},{"line_number":442,"context_line":"        \"\"\"Unrescue the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2BejI%3D","line":439,"in_reply_to":"AAAATn%2F%2Bi18%3D","updated":"2013-11-25 17:09:16.000000000","message":"I\u0027d rather not;  the shutdown feature can be used without the boo tlocking by other hypervisors.  I will however add a warning, as Phil suggested.","commit_id":"4844f48462b820771e6adcbaed88c99c48067b46"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"090b832a84e4bf533464d66f810cb0582962cca3","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":438,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":439,"context_line":"        pass"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def unrescue(self, instance, network_info):"},{"line_number":442,"context_line":"        \"\"\"Unrescue the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2Bejc%3D","line":439,"in_reply_to":"AAAATn%2F%2BjDo%3D","updated":"2013-11-25 17:09:16.000000000","message":"Done","commit_id":"4844f48462b820771e6adcbaed88c99c48067b46"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"d71033db55d5b1ad0a95c3c4cbe235ad622a331d","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":438,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":439,"context_line":"        LOG.warn(_(\"set_bootable is unimplemented for the current driver\"))"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def unrescue(self, instance, network_info):"},{"line_number":442,"context_line":"        \"\"\"Unrescue the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BdQo%3D","line":439,"updated":"2013-11-25 20:50:27.000000000","message":"Sorry, should of thought of this before but would it more consistent with the rest of the file to raise NotImplementedError and catch that in the calling function than to LOG the warning here ?\n\nIf anything else calls this in the future (maybe we\u0027ll want to expose this via the Admin API ?) this behavior might be a bit unexpected","commit_id":"990a7917df1008f8828d6be29164948000107668"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"3bbf753815f4483d38295a62559f7acda4cb5ca5","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":438,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":439,"context_line":"        LOG.warn(_(\"set_bootable is unimplemented for the current driver\"))"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def unrescue(self, instance, network_info):"},{"line_number":442,"context_line":"        \"\"\"Unrescue the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BZUI%3D","line":439,"in_reply_to":"AAAATn%2F%2BdQo%3D","updated":"2013-11-26 15:12:19.000000000","message":"Yeah that\u0027s true, I like that better.","commit_id":"990a7917df1008f8828d6be29164948000107668"}],"nova/virt/xenapi/driver.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"390a523fa34eb7f0f69161b63f6e3af183c3292e","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":304,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":305,"context_line":"        self._vmops.set_bootable(instance, is_bootable)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def unrescue(self, instance, network_info):"},{"line_number":308,"context_line":"        \"\"\"Unrescue the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FSqA%3D","line":305,"updated":"2013-11-11 15:26:28.000000000","message":"I think we need a unit test for this one.","commit_id":"4211a99fbaf1dc025aee68e4adf990d84e6ef379"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"5b1fbc7ee45aa7ea8eac21c2012fdc0c188d6903","unresolved":false,"context_lines":[{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def set_bootable(self, instance, is_bootable):"},{"line_number":304,"context_line":"        \"\"\"Set the ability to power on/off an instance.\"\"\""},{"line_number":305,"context_line":"        self._vmops.set_bootable(instance, is_bootable)"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def unrescue(self, instance, network_info):"},{"line_number":308,"context_line":"        \"\"\"Unrescue the specified instance.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2FRx4%3D","line":305,"in_reply_to":"AAAATn%2F%2FSqA%3D","updated":"2013-11-11 20:55:28.000000000","message":"Done","commit_id":"4211a99fbaf1dc025aee68e4adf990d84e6ef379"}]}
