)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"8be25da56c88cd61b5271efb0a948e604c0bae20","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Melanie Witt \u003cmelwitt@yahoo-inc.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-05-23 01:40:51 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"attempts virt driver destroy before network deallocate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The virt driver destroy can be attempted before  releasing"},{"line_number":10,"context_line":"the instance\u0027s ip address so certain destroy failures can"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAPH%2F%2Fv9c%3D","line":7,"updated":"2013-05-23 22:22:43.000000000","message":"commit header could be more clear, eg:\n\n  Call virt.driver.destroy before deallocating network.\n  \n  Call virt driver destroy before releasing the instance\u0027s\n  ip address, so that certain failures can be handled. \n  For instance, if destroy raises InstancePowerOffFailure,\n  do not deallocate network resources.","commit_id":"be9466f98ca0999e46f87e0d6b33580710ac14af"}],"nova/compute/manager.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"2a32abdab32d363118c2b30facc2e0540481a7f6","unresolved":false,"context_lines":[{"line_number":1323,"context_line":"                # volume api calls, preserving current behavior"},{"line_number":1324,"context_line":"                self._try_deallocate_network(context, instance)"},{"line_number":1325,"context_line":""},{"line_number":1326,"context_line":"        self._try_deallocate_network(context, instance)"},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"        for bdm in vol_bdms:"},{"line_number":1329,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2F4fw%3D","line":1326,"updated":"2013-06-06 19:05:35.000000000","message":"So in the case where we get an Exception, we self._try_deallocate_network twice in a row?","commit_id":"4116cc309dc9477b8cbd0bcc06b516299642b037"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c147027a864f86d6ac646eaafaa76dc5f6d003d8","unresolved":false,"context_lines":[{"line_number":1323,"context_line":"                # volume api calls, preserving current behavior"},{"line_number":1324,"context_line":"                self._try_deallocate_network(context, instance)"},{"line_number":1325,"context_line":""},{"line_number":1326,"context_line":"        self._try_deallocate_network(context, instance)"},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"        for bdm in vol_bdms:"},{"line_number":1329,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2F4a0%3D","line":1326,"in_reply_to":"AAAAPX%2F%2F4fw%3D","updated":"2013-06-06 19:55:46.000000000","message":"No because excutils.save_and_reraise_exception will re-raise the exception after self._try_deallocate_network runs in the with block and this line won\u0027t be reached.\n\nhttps://github.com/openstack/nova/blob/master/nova/openstack/common/excutils.py#L31","commit_id":"4116cc309dc9477b8cbd0bcc06b516299642b037"}],"nova/tests/compute/test_compute.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f47d59522fd0129a00e755ae0ca32be4f7d3aaf8","unresolved":false,"context_lines":[{"line_number":2357,"context_line":"        try:"},{"line_number":2358,"context_line":"            self.compute._delete_instance(self.context,"},{"line_number":2359,"context_line":"                    instance\u003djsonutils.to_primitive(instance), bdms\u003d{})"},{"line_number":2360,"context_line":"        except exception.InstancePowerOffFailure:"},{"line_number":2361,"context_line":"            pass"},{"line_number":2362,"context_line":""},{"line_number":2363,"context_line":"        self.assertFalse(called[\u0027_deallocate_network\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2F4Uw%3D","line":2360,"updated":"2013-06-06 20:25:27.000000000","message":"Can you use self.assertRaises() here for consistency with everything else?","commit_id":"4116cc309dc9477b8cbd0bcc06b516299642b037"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f47d59522fd0129a00e755ae0ca32be4f7d3aaf8","unresolved":false,"context_lines":[{"line_number":2360,"context_line":"        except exception.InstancePowerOffFailure:"},{"line_number":2361,"context_line":"            pass"},{"line_number":2362,"context_line":""},{"line_number":2363,"context_line":"        self.assertFalse(called[\u0027_deallocate_network\u0027])"},{"line_number":2364,"context_line":""},{"line_number":2365,"context_line":"    def test_delete_instance_loses_net_on_other_fail(self):"},{"line_number":2366,"context_line":"        called \u003d {\u0027_deallocate_network\u0027: False}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2F4Us%3D","line":2363,"updated":"2013-06-06 20:25:27.000000000","message":"I prefer to see mox used for making sure that things got called in situations like this.","commit_id":"4116cc309dc9477b8cbd0bcc06b516299642b037"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f47d59522fd0129a00e755ae0ca32be4f7d3aaf8","unresolved":false,"context_lines":[{"line_number":2385,"context_line":"        except Exception:"},{"line_number":2386,"context_line":"            pass"},{"line_number":2387,"context_line":""},{"line_number":2388,"context_line":"        self.assertTrue(called[\u0027_deallocate_network\u0027])"},{"line_number":2389,"context_line":""},{"line_number":2390,"context_line":"    def test_delete_instance_deletes_console_auth_tokens(self):"},{"line_number":2391,"context_line":"        instance \u003d self._create_fake_instance()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2F4Uk%3D","line":2388,"updated":"2013-06-06 20:25:27.000000000","message":"Same argument(s) here.","commit_id":"4116cc309dc9477b8cbd0bcc06b516299642b037"}]}
