)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"71461aef02f3b49c0cf44ebf2cb5e7b6cadebea8","unresolved":false,"context_lines":[{"line_number":435,"context_line":"                           \u0027host (%(our_host)s).\u0027),"},{"line_number":436,"context_line":"                         locals(), instance\u003dinstance)"},{"line_number":437,"context_line":"                try:"},{"line_number":438,"context_line":"                    network_info \u003d self._get_instance_nw_info(context,"},{"line_number":439,"context_line":"                                                              instance)"},{"line_number":440,"context_line":"                    bdi \u003d self._get_instance_volume_block_device_info(context,"},{"line_number":441,"context_line":"                                                                      instance)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2Ftjs%3D","line":438,"updated":"2013-03-15 16:14:53.000000000","message":"The bug you\u0027re trying to fix is that self._get_instance_nw_info may raise InstanceNotFound. However, if it does, self.driver.destroy will not be called.\n\nI think it\u0027s entirely possible that the instance\u0027s nw info may be gone, thus generating this exception, but we still need to call driver.destroy here.","commit_id":"32a218ffd93b84f4069ac3d66da985ebf3712dad"},{"author":{"_account_id":4468,"name":"Wangpan","email":"hzwangpan@corp.netease.com","username":"hzwangpan"},"change_message_id":"8f9a0aeb4a92285293f2cad427f4a93f74bcc0af","unresolved":false,"context_lines":[{"line_number":441,"context_line":"                                                                      instance)"},{"line_number":442,"context_line":"                    self.driver.destroy(instance,"},{"line_number":443,"context_line":"                                        self._legacy_nw_info(network_info),"},{"line_number":444,"context_line":"                                        bdi, False)"},{"line_number":445,"context_line":"                except exception.InstanceNotFound:"},{"line_number":446,"context_line":"                    LOG.info(_(\u0027Instance has been marked deleted already, \u0027"},{"line_number":447,"context_line":"                               \u0027leaving it for the reaping task to handle.\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2Ft3I%3D","line":444,"updated":"2013-03-15 07:38:41.000000000","message":"Why not delete the disk file of instance? should we need to change it to \u0027True\u0027?","commit_id":"32a218ffd93b84f4069ac3d66da985ebf3712dad"},{"author":{"_account_id":1782,"name":"Kravchenko Pavel","email":"kpavel@il.ibm.com","username":"kravchenko-pavel"},"change_message_id":"f6dec4052d7db0090ce2b0731a835d640a4e7f5a","unresolved":false,"context_lines":[{"line_number":441,"context_line":"                                                                      instance)"},{"line_number":442,"context_line":"                    self.driver.destroy(instance,"},{"line_number":443,"context_line":"                                        self._legacy_nw_info(network_info),"},{"line_number":444,"context_line":"                                        bdi, False)"},{"line_number":445,"context_line":"                except exception.InstanceNotFound:"},{"line_number":446,"context_line":"                    LOG.info(_(\u0027Instance has been marked deleted already, \u0027"},{"line_number":447,"context_line":"                               \u0027leaving it for the reaping task to handle.\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F%2Ft8%3D","line":444,"in_reply_to":"AAAAN3%2F%2Ft1Y%3D","updated":"2013-03-17 10:19:49.000000000","message":"The disks shouldn\u0027t be deleted by default. In case of instance running on shared storage the disks should be kept, but you right, in other cases they should be deleted. I will open a bug to handle this case.","commit_id":"32a218ffd93b84f4069ac3d66da985ebf3712dad"},{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"af08a43b0db0f41c328076a868a382609f7e93ba","unresolved":false,"context_lines":[{"line_number":441,"context_line":"                                                                      instance)"},{"line_number":442,"context_line":"                    self.driver.destroy(instance,"},{"line_number":443,"context_line":"                                        self._legacy_nw_info(network_info),"},{"line_number":444,"context_line":"                                        bdi, False)"},{"line_number":445,"context_line":"                except exception.InstanceNotFound:"},{"line_number":446,"context_line":"                    LOG.info(_(\u0027Instance has been marked deleted already, \u0027"},{"line_number":447,"context_line":"                               \u0027leaving it for the reaping task to handle.\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAN3%2F%2Ft1Y%3D","line":444,"in_reply_to":"AAAAN3%2F%2Ft3I%3D","updated":"2013-03-15 10:07:45.000000000","message":"Not sure, I\u0027d have to contact the original author to ask, just in case. But that looks like a separate issue. I\u0027d like to get the current fix done separately/asap since it\u0027s a crashing one.","commit_id":"32a218ffd93b84f4069ac3d66da985ebf3712dad"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"a630456b72516983a2bad354b96d4ba650ca9a17","unresolved":false,"context_lines":[{"line_number":444,"context_line":"                                        bdi, False)"},{"line_number":445,"context_line":"                except exception.InstanceNotFound:"},{"line_number":446,"context_line":"                    LOG.info(_(\u0027Instance has been marked deleted already, \u0027"},{"line_number":447,"context_line":"                               \u0027leaving it for the reaping task to handle.\u0027),"},{"line_number":448,"context_line":"                             instance\u003dinstance)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def _init_instance(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F%2Bgk%3D","line":447,"updated":"2013-03-18 19:26:40.000000000","message":"What reaping task are you referring to?  If get_instance_nw_info raises InstanceNotFound, what will call the driver destroy method?","commit_id":"32a218ffd93b84f4069ac3d66da985ebf3712dad"},{"author":{"_account_id":1782,"name":"Kravchenko Pavel","email":"kpavel@il.ibm.com","username":"kravchenko-pavel"},"change_message_id":"cb5249894b91e8e9219fc48d04ce162a9fe91012","unresolved":false,"context_lines":[{"line_number":442,"context_line":"                except exception.InstanceNotFound:"},{"line_number":443,"context_line":"                    LOG.info(_(\u0027Instance has been marked deleted already, \u0027"},{"line_number":444,"context_line":"                               \u0027removing it from the hypervisor.\u0027),"},{"line_number":445,"context_line":"                             instance\u003dinstance)"},{"line_number":446,"context_line":"                self.driver.destroy(instance,"},{"line_number":447,"context_line":"                                    self._legacy_nw_info(network_info),"},{"line_number":448,"context_line":"                                    bdi, False)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOH%2F%2F8Yk%3D","line":445,"updated":"2013-03-19 22:55:24.000000000","message":"I think in the case that instance not found (deleted) we can be sure that we want delete instance with disks.","commit_id":"af6797c93020d7e3df7cbd4bc4bc1db3bf6b6232"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"994ca18a392b89ebf111684111abec1a4586948c","unresolved":false,"context_lines":[{"line_number":442,"context_line":"                except exception.InstanceNotFound:"},{"line_number":443,"context_line":"                    LOG.info(_(\u0027Instance has been marked deleted already, \u0027"},{"line_number":444,"context_line":"                               \u0027removing it from the hypervisor.\u0027),"},{"line_number":445,"context_line":"                             instance\u003dinstance)"},{"line_number":446,"context_line":"                self.driver.destroy(instance,"},{"line_number":447,"context_line":"                                    self._legacy_nw_info(network_info),"},{"line_number":448,"context_line":"                                    bdi, False)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOH%2F%2F7kc%3D","line":445,"in_reply_to":"AAAAOH%2F%2F8Yk%3D","updated":"2013-03-20 16:06:15.000000000","message":"Ah, good point. I\u0027m adding a variable here so you can also hook in your next patch (detect if disk is local or shared).","commit_id":"af6797c93020d7e3df7cbd4bc4bc1db3bf6b6232"}],"nova/tests/compute/test_compute.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"aeac7323e6665828999db65b2a68c1d557fc049c","unresolved":false,"context_lines":[{"line_number":3859,"context_line":""},{"line_number":3860,"context_line":"        self.compute._report_driver_status(fake_context)"},{"line_number":3861,"context_line":"        self.compute.publish_service_capabilities(fake_context)"},{"line_number":3862,"context_line":""},{"line_number":3863,"context_line":"        self.mox.ReplayAll()"},{"line_number":3864,"context_line":"        self.compute.init_host()"},{"line_number":3865,"context_line":"        # tearDown() uses context.get_admin_context(), so we have"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOH%2F%2FwwU%3D","line":3862,"updated":"2013-03-28 16:04:30.000000000","message":"Unless I\u0027m missing it, you don\u0027t verify the call to driver.destroy() here, which is the actual point of the patch. Without it, the try..except could remain in place but punt on the destroy at some point, which would pass this test, but not enforce the desired result, right?","commit_id":"fdee51aa98bf2beb7b28722c724c727fcc16e536"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"ac674803c3dcb08ff6d15ecd95e49f7f93f13600","unresolved":false,"context_lines":[{"line_number":3859,"context_line":""},{"line_number":3860,"context_line":"        self.compute._report_driver_status(fake_context)"},{"line_number":3861,"context_line":"        self.compute.publish_service_capabilities(fake_context)"},{"line_number":3862,"context_line":""},{"line_number":3863,"context_line":"        self.mox.ReplayAll()"},{"line_number":3864,"context_line":"        self.compute.init_host()"},{"line_number":3865,"context_line":"        # tearDown() uses context.get_admin_context(), so we have"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOH%2F%2FwYM%3D","line":3862,"in_reply_to":"AAAAOH%2F%2FwwU%3D","updated":"2013-03-28 21:29:38.000000000","message":"Gah! Thanks for spotting that. Will fix shortly.","commit_id":"fdee51aa98bf2beb7b28722c724c727fcc16e536"}]}
