)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"6f6063659ec4300d48674f4f1517eb40647b15b2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     s iwata \u003cs-iwata@intellilink.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-04-09 17:26:00 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Raise HTTPInternalServerError when boot_from_volume with cinder down"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch changes exception type."},{"line_number":10,"context_line":"Boot_from_volume api raises BlockDeviceMappingIsInvalid exception"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAW3%2F%2F7Y8%3D","line":7,"updated":"2014-04-09 12:45:31.000000000","message":"Why not 503 Service Unavailable? HTTPServiceUnavailable?","commit_id":"c7cc3f7ea18e5cca1e8c5a4e49a34922874f0c7d"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"38a8b9abcd54dbb0bd4cfa7f9f5f4f85a4044923","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     s iwata \u003cs-iwata@intellilink.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-04-09 17:26:00 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Raise HTTPInternalServerError when boot_from_volume with cinder down"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch changes exception type."},{"line_number":10,"context_line":"Boot_from_volume api raises BlockDeviceMappingIsInvalid exception"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAW3%2F%2Fzm8%3D","line":7,"in_reply_to":"AAAAW3%2F%2F1us%3D","updated":"2014-04-10 09:45:06.000000000","message":"I have to agree with garyk here 503 is better - the only reason that GlanceConnectionFailed is returning a generic 500 is because we are not considering it in the API and it is being caught by the middleware.\n\nI think that both of these exceptions are generic enough (a service we rely on is unavailable) to be handled in the FaultWrapper middleware - so maybe that\u0027s the direction we should go maybe?","commit_id":"c7cc3f7ea18e5cca1e8c5a4e49a34922874f0c7d"},{"author":{"_account_id":10663,"name":"s iwata","email":"s-iwata@intellilink.co.jp","username":"s.iwata"},"change_message_id":"80dbb6363fb4555dcd669fc9b9482eab01b499fa","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     s iwata \u003cs-iwata@intellilink.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-04-09 17:26:00 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Raise HTTPInternalServerError when boot_from_volume with cinder down"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch changes exception type."},{"line_number":10,"context_line":"Boot_from_volume api raises BlockDeviceMappingIsInvalid exception"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAW3%2F%2F1us%3D","line":7,"in_reply_to":"AAAAW3%2F%2F7Y8%3D","updated":"2014-04-10 02:27:12.000000000","message":"Thank you for your review.\n\nHowever, I think it response code should be 500.\nLike Glance down.\n\n(nova/exception.py)\nclass GlanceConnectionFailed(NovaException):\n    msg_fmt \u003d _(\"Connection to glance host %(host)s:%(port)s failed: \"\n        \"%(reason)s\")","commit_id":"c7cc3f7ea18e5cca1e8c5a4e49a34922874f0c7d"},{"author":{"_account_id":10663,"name":"s iwata","email":"s-iwata@intellilink.co.jp","username":"s.iwata"},"change_message_id":"08692c208957fe9f4722f3428fea9e1ea3c8878f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     s iwata \u003cs-iwata@intellilink.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-04-09 17:26:00 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Raise HTTPInternalServerError when boot_from_volume with cinder down"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch changes exception type."},{"line_number":10,"context_line":"Boot_from_volume api raises BlockDeviceMappingIsInvalid exception"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAW3%2F%2FXfo%3D","line":7,"in_reply_to":"AAAAW3%2F%2Fzm8%3D","updated":"2014-04-15 05:42:08.000000000","message":"Thank you for your comment. \nI will fix this response code.","commit_id":"c7cc3f7ea18e5cca1e8c5a4e49a34922874f0c7d"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"ff518cc61f33c4cf0ac9b78353c622fdad36a5fb","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Also it returns response code 400."},{"line_number":13,"context_line":"It is not exact. Because request is valid."},{"line_number":14,"context_line":"Exception was changed to raise HTTPServiceUnavailable and"},{"line_number":15,"context_line":"return a 503 error."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: #1239952"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAXH%2F%2FqYE%3D","line":15,"updated":"2014-04-18 13:00:10.000000000","message":"Can we mention that this will now be true for Glance errors as well? Other than that this looks pretty good!","commit_id":"89184c61298dbd3fed08d803b6128e32f874dab6"},{"author":{"_account_id":10663,"name":"s iwata","email":"s-iwata@intellilink.co.jp","username":"s.iwata"},"change_message_id":"23dbf59bc3e76d7512c3409500ce8ea3c82bc92e","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Also it returns response code 400."},{"line_number":13,"context_line":"It is not exact. Because request is valid."},{"line_number":14,"context_line":"Exception was changed to raise HTTPServiceUnavailable and"},{"line_number":15,"context_line":"return a 503 error."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Closes-Bug: #1239952"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAXH%2F%2FgtY%3D","line":15,"in_reply_to":"AAAAXH%2F%2FqYE%3D","updated":"2014-04-21 01:45:33.000000000","message":"Thank you for your comment!\nHowever, I get another comment from Matt\n\u003eI think the change for the glance connection exception should be handled separately, probably with bug 1294973.\n\nI agree with that so I have to restore the glance exception.\nso... need not change this Message?","commit_id":"89184c61298dbd3fed08d803b6128e32f874dab6"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"6975ef9d929fc7d4201678ec787ce9901777e45a","unresolved":false,"context_lines":[{"line_number":962,"context_line":"        except exception.InvalidMetadataSize as error:"},{"line_number":963,"context_line":"            raise exc.HTTPRequestEntityTooLarge("},{"line_number":964,"context_line":"                explanation\u003derror.format_message())"},{"line_number":965,"context_line":"        except exception.CinderConnectionFailed as error:"},{"line_number":966,"context_line":"            raise exc.HTTPServiceUnavailable("},{"line_number":967,"context_line":"                explanation\u003derror.format_message())"},{"line_number":968,"context_line":"        except exception.ImageNotFound as error:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FUJk%3D","line":965,"updated":"2014-04-15 12:21:12.000000000","message":"As discussed on patch - I don\u0027t think this should be caught here. My suggestion was not to leave the 500 error, but to make sure that both ConderConnFailed and GlanceConnFailed result in 503, and I suggested that they are general enough errors for us to deal with them in nova.api.openstack.FaultWrapper class instead of here.","commit_id":"6a7456b224dc42239b24339e83b741c81805ec68"},{"author":{"_account_id":10663,"name":"s iwata","email":"s-iwata@intellilink.co.jp","username":"s.iwata"},"change_message_id":"f1069d3e6d5421b72459a235cf857503e37b05be","unresolved":false,"context_lines":[{"line_number":962,"context_line":"        except exception.InvalidMetadataSize as error:"},{"line_number":963,"context_line":"            raise exc.HTTPRequestEntityTooLarge("},{"line_number":964,"context_line":"                explanation\u003derror.format_message())"},{"line_number":965,"context_line":"        except exception.CinderConnectionFailed as error:"},{"line_number":966,"context_line":"            raise exc.HTTPServiceUnavailable("},{"line_number":967,"context_line":"                explanation\u003derror.format_message())"},{"line_number":968,"context_line":"        except exception.ImageNotFound as error:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXH%2F%2F9i0%3D","line":965,"in_reply_to":"AAAAW3%2F%2FUJk%3D","updated":"2014-04-16 08:42:24.000000000","message":"Thank you for your helpful advice.\n\nI’m sorry that I couldn\u0027t understand your suggestion.\n\nI\u0027ll delete this exception of here and add code\u0027503\u0027 of GlanceConnectionFailed(nova/exception)","commit_id":"6a7456b224dc42239b24339e83b741c81805ec68"},{"author":{"_account_id":10663,"name":"s iwata","email":"s-iwata@intellilink.co.jp","username":"s.iwata"},"change_message_id":"fcacf8477c9354f01a593b45999dce17335cab02","unresolved":false,"context_lines":[{"line_number":962,"context_line":"        except exception.InvalidMetadataSize as error:"},{"line_number":963,"context_line":"            raise exc.HTTPRequestEntityTooLarge("},{"line_number":964,"context_line":"                explanation\u003derror.format_message())"},{"line_number":965,"context_line":"        except exception.CinderConnectionFailed as error:"},{"line_number":966,"context_line":"            raise exc.HTTPServiceUnavailable("},{"line_number":967,"context_line":"                explanation\u003derror.format_message())"},{"line_number":968,"context_line":"        except exception.ImageNotFound as error:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXH%2F%2Fz8U%3D","line":965,"in_reply_to":"AAAAXH%2F%2F0ac%3D","updated":"2014-04-17 09:16:10.000000000","message":"Thank you soo much for everything !.\nI’m really sorry for the inconvenience.","commit_id":"6a7456b224dc42239b24339e83b741c81805ec68"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"406b4a689f5706a07af8debe079bd6d1bc5dfe52","unresolved":false,"context_lines":[{"line_number":962,"context_line":"        except exception.InvalidMetadataSize as error:"},{"line_number":963,"context_line":"            raise exc.HTTPRequestEntityTooLarge("},{"line_number":964,"context_line":"                explanation\u003derror.format_message())"},{"line_number":965,"context_line":"        except exception.CinderConnectionFailed as error:"},{"line_number":966,"context_line":"            raise exc.HTTPServiceUnavailable("},{"line_number":967,"context_line":"                explanation\u003derror.format_message())"},{"line_number":968,"context_line":"        except exception.ImageNotFound as error:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXH%2F%2F0ac%3D","line":965,"in_reply_to":"AAAAXH%2F%2F9i0%3D","updated":"2014-04-17 07:42:12.000000000","message":"That\u0027s not exactly what I was thinking... let me upload a simple example patch and I\u0027ll link it here in the next day or 2, and then you can take it and incorporate it into this patch :).","commit_id":"6a7456b224dc42239b24339e83b741c81805ec68"}],"nova/exception.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0e540950c69b2e482c5510217b7722c2881bd122","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"class CinderConnectionFailed(NovaException):"},{"line_number":165,"context_line":"    msg_fmt \u003d _(\"Connection to cinder host failed: %(reason)s\")"},{"line_number":166,"context_line":"    code \u003d 503"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"class NotAuthorized(NovaException):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ad9bd40_ae05bec3","line":166,"updated":"2014-05-01 13:39:35.000000000","message":"I would expect this to be a 500 error.  In my opinion 503 would be appropriate if Nova was unavailable but Cinder being unavailable would be a 500 from a Nova point of view.","commit_id":"59c16d8b6a3430e8c364de70a30226957dc8435f"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"56ea1b88ac4fa82932d2cc90c2f190db979cf283","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"class CinderConnectionFailed(NovaException):"},{"line_number":165,"context_line":"    msg_fmt \u003d _(\"Connection to cinder host failed: %(reason)s\")"},{"line_number":166,"context_line":"    code \u003d 503"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"class NotAuthorized(NovaException):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ad9bd40_000f442f","line":166,"in_reply_to":"9ad9bd40_ae05bec3","updated":"2014-05-02 09:19:49.000000000","message":"as stated on the ML, I sympathize with the desire to say something more nuanced here since we know roughly what\u0027s going on. The 504 error is occasionally used when the service raising the error is acting as a proxy and can\u0027t fulfill the request because some 3rd party service is down. In the examples DNS is down and we can\u0027t finish. Cinder being down forcing Nova to error is a close analogy but not perfect.\n\nIn general though, it would be unsurprising to see a 500 here so I wouldn\u0027t object to seeing that. 503 is definitely not right.","commit_id":"59c16d8b6a3430e8c364de70a30226957dc8435f"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ed6a362c26b820837c15fc7ef48af60849f32b55","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"class CinderConnectionFailed(NovaException):"},{"line_number":165,"context_line":"    msg_fmt \u003d _(\"Connection to cinder host failed: %(reason)s\")"},{"line_number":166,"context_line":"    code \u003d 500"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"class Forbidden(NovaException):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_dfcab8a0","line":166,"updated":"2014-05-08 18:56:03.000000000","message":"Just FYI, the code set on class NovaException is 500 so this isn\u0027t strictly necessary.","commit_id":"838c4149ef7d79ee3684110254558dfdaef13e12"},{"author":{"_account_id":10663,"name":"s iwata","email":"s-iwata@intellilink.co.jp","username":"s.iwata"},"change_message_id":"a041c5b0916361f37541af654e723907dcce7f67","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"class CinderConnectionFailed(NovaException):"},{"line_number":165,"context_line":"    msg_fmt \u003d _(\"Connection to cinder host failed: %(reason)s\")"},{"line_number":166,"context_line":"    code \u003d 500"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"class Forbidden(NovaException):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_f6a7964d","line":166,"in_reply_to":"7adec928_dfcab8a0","updated":"2014-05-09 01:55:38.000000000","message":"Thank you for information.\nI wasn\u0027t aware of that!\nI\u0027ll fix it.","commit_id":"838c4149ef7d79ee3684110254558dfdaef13e12"}],"nova/tests/compute/test_compute_api.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"ca6b841f579146e85a2adfb62a99069fdd6fb9da","unresolved":false,"context_lines":[{"line_number":1871,"context_line":"                          self.context, instance,"},{"line_number":1872,"context_line":"                          volume_id, new_volume_id)"},{"line_number":1873,"context_line":""},{"line_number":1874,"context_line":"    def test_get_bdm_image_metadata_with_cinder_down(self):"},{"line_number":1875,"context_line":"        bdms \u003d [block_device_obj.BlockDeviceMapping("},{"line_number":1876,"context_line":"                **fake_block_device.FakeDbBlockDeviceDict("},{"line_number":1877,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXX%2F%2F9UY%3D","line":1874,"updated":"2014-04-25 02:06:35.000000000","message":"Would be nice to have most of these test cases using mock.","commit_id":"134055ca904799d78a6375e636ca717dcd12b147"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"ca6b841f579146e85a2adfb62a99069fdd6fb9da","unresolved":false,"context_lines":[{"line_number":1963,"context_line":"                 }))]"},{"line_number":1964,"context_line":"        fake_volume_id \u003d \u00271\u0027"},{"line_number":1965,"context_line":"        self.mox.StubOutWithMock(self.compute_api.volume_api, \u0027get\u0027)"},{"line_number":1966,"context_line":"        self.mox.StubOutWithMock(self.compute_api, "},{"line_number":1967,"context_line":"                \u0027_populate_instance_for_create\u0027)"},{"line_number":1968,"context_line":"        self.mox.StubOutWithMock(self.compute_api, \u0027_populate_instance_names\u0027)"},{"line_number":1969,"context_line":"        self.mox.StubOutWithMock(self.compute_api,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAXX%2F%2F9VY%3D","line":1966,"updated":"2014-04-25 02:06:35.000000000","message":"Whitespace","commit_id":"134055ca904799d78a6375e636ca717dcd12b147"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"ca6b841f579146e85a2adfb62a99069fdd6fb9da","unresolved":false,"context_lines":[{"line_number":1872,"context_line":"                          self.context, instance,"},{"line_number":1873,"context_line":"                          volume_id, new_volume_id)"},{"line_number":1874,"context_line":""},{"line_number":1875,"context_line":"    def test_get_bdm_image_metadata_with_cinder_down(self):"},{"line_number":1876,"context_line":"        bdms \u003d [block_device_obj.BlockDeviceMapping("},{"line_number":1877,"context_line":"                **fake_block_device.FakeDbBlockDeviceDict("},{"line_number":1878,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXX%2F%2F9TI%3D","line":1875,"updated":"2014-04-25 02:09:40.000000000","message":"Would be nice to have these test cases created using mock.","commit_id":"cc9ada4681944303ef9137dd121c294a68499b48"},{"author":{"_account_id":10663,"name":"s iwata","email":"s-iwata@intellilink.co.jp","username":"s.iwata"},"change_message_id":"e914665bcdf7cab943c568e6925577a304769331","unresolved":false,"context_lines":[{"line_number":1872,"context_line":"                          self.context, instance,"},{"line_number":1873,"context_line":"                          volume_id, new_volume_id)"},{"line_number":1874,"context_line":""},{"line_number":1875,"context_line":"    def test_get_bdm_image_metadata_with_cinder_down(self):"},{"line_number":1876,"context_line":"        bdms \u003d [block_device_obj.BlockDeviceMapping("},{"line_number":1877,"context_line":"                **fake_block_device.FakeDbBlockDeviceDict("},{"line_number":1878,"context_line":"                {"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAXX%2F%2F81k%3D","line":1875,"in_reply_to":"AAAAXX%2F%2F9TI%3D","updated":"2014-04-25 04:36:19.000000000","message":"Thank you for your review.\nI will fix it.","commit_id":"cc9ada4681944303ef9137dd121c294a68499b48"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0e540950c69b2e482c5510217b7722c2881bd122","unresolved":false,"context_lines":[{"line_number":1944,"context_line":"        class FakeSecurityGroupDriver(object):"},{"line_number":1945,"context_line":"            def ensure_default(self, context):"},{"line_number":1946,"context_line":"                pass"},{"line_number":1947,"context_line":"        self.compute_api.security_group_api \u003d FakeSecurityGroupDriver()"},{"line_number":1948,"context_line":"        instance \u003d self._create_instance_obj()"},{"line_number":1949,"context_line":"        instance[\u0027display_name\u0027] \u003d \u0027FAKE_DISPLAY_NAME\u0027"},{"line_number":1950,"context_line":"        instance[\u0027shutdown_terminate\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ad9bd40_ae377eaf","line":1947,"updated":"2014-05-01 13:39:35.000000000","message":"Using mock to stub out the security_group_api and instance.create method would be preferred.","commit_id":"59c16d8b6a3430e8c364de70a30226957dc8435f"},{"author":{"_account_id":10663,"name":"s iwata","email":"s-iwata@intellilink.co.jp","username":"s.iwata"},"change_message_id":"6f06653ddd097f2b3a595260a90261161c8dd008","unresolved":false,"context_lines":[{"line_number":1944,"context_line":"        class FakeSecurityGroupDriver(object):"},{"line_number":1945,"context_line":"            def ensure_default(self, context):"},{"line_number":1946,"context_line":"                pass"},{"line_number":1947,"context_line":"        self.compute_api.security_group_api \u003d FakeSecurityGroupDriver()"},{"line_number":1948,"context_line":"        instance \u003d self._create_instance_obj()"},{"line_number":1949,"context_line":"        instance[\u0027display_name\u0027] \u003d \u0027FAKE_DISPLAY_NAME\u0027"},{"line_number":1950,"context_line":"        instance[\u0027shutdown_terminate\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ad9bd40_00f4a485","line":1947,"in_reply_to":"9ad9bd40_ae377eaf","updated":"2014-05-02 10:04:57.000000000","message":"Tank you for your review.\nSorry...I have no idea what should i do.\nWould you be so kind as to teach the way of using mock(security_group_api and instance.create) for me?","commit_id":"59c16d8b6a3430e8c364de70a30226957dc8435f"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0e540950c69b2e482c5510217b7722c2881bd122","unresolved":false,"context_lines":[{"line_number":1979,"context_line":"                          bdm,"},{"line_number":1980,"context_line":"                          fake_num_instances,"},{"line_number":1981,"context_line":"                          fake_index)"},{"line_number":1982,"context_line":""},{"line_number":1983,"context_line":""},{"line_number":1984,"context_line":"class ComputeAPIUnitTestCase(_ComputeAPIUnitTestMixIn, test.NoDBTestCase):"},{"line_number":1985,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ad9bd40_0e478a20","line":1982,"updated":"2014-05-01 13:39:35.000000000","message":"You should add a check that instance.destroy() was called since it\u0027s important that it\u0027s called.","commit_id":"59c16d8b6a3430e8c364de70a30226957dc8435f"},{"author":{"_account_id":10663,"name":"s iwata","email":"s-iwata@intellilink.co.jp","username":"s.iwata"},"change_message_id":"6f06653ddd097f2b3a595260a90261161c8dd008","unresolved":false,"context_lines":[{"line_number":1979,"context_line":"                          bdm,"},{"line_number":1980,"context_line":"                          fake_num_instances,"},{"line_number":1981,"context_line":"                          fake_index)"},{"line_number":1982,"context_line":""},{"line_number":1983,"context_line":""},{"line_number":1984,"context_line":"class ComputeAPIUnitTestCase(_ComputeAPIUnitTestMixIn, test.NoDBTestCase):"},{"line_number":1985,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ad9bd40_20f3689f","line":1982,"in_reply_to":"9ad9bd40_0e478a20","updated":"2014-05-02 10:04:57.000000000","message":"Thank you for your review.\nI\u0027ll fix it!","commit_id":"59c16d8b6a3430e8c364de70a30226957dc8435f"}],"nova/volume/cinder.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"38a8b9abcd54dbb0bd4cfa7f9f5f4f85a4044923","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    def get(self, context, volume_id):"},{"line_number":206,"context_line":"        try:"},{"line_number":207,"context_line":"            item \u003d cinderclient(context).volumes.get(volume_id)"},{"line_number":208,"context_line":"        except cinder_exception.ConnectionError as e:"},{"line_number":209,"context_line":"            raise exception.CinderConnectionFailed("},{"line_number":210,"context_line":"                             reason\u003dunicode(e))"},{"line_number":211,"context_line":"        return _untranslate_volume_summary_view(context, item)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2FzuM%3D","line":208,"updated":"2014-04-10 09:45:06.000000000","message":"How about doing this in the translate _volume_exception decorator... not sure it would be a massive win but it would be a bit less code I think.","commit_id":"c7cc3f7ea18e5cca1e8c5a4e49a34922874f0c7d"},{"author":{"_account_id":10663,"name":"s iwata","email":"s-iwata@intellilink.co.jp","username":"s.iwata"},"change_message_id":"08692c208957fe9f4722f3428fea9e1ea3c8878f","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    def get(self, context, volume_id):"},{"line_number":206,"context_line":"        try:"},{"line_number":207,"context_line":"            item \u003d cinderclient(context).volumes.get(volume_id)"},{"line_number":208,"context_line":"        except cinder_exception.ConnectionError as e:"},{"line_number":209,"context_line":"            raise exception.CinderConnectionFailed("},{"line_number":210,"context_line":"                             reason\u003dunicode(e))"},{"line_number":211,"context_line":"        return _untranslate_volume_summary_view(context, item)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAW3%2F%2FXgY%3D","line":208,"in_reply_to":"AAAAW3%2F%2FzuM%3D","updated":"2014-04-15 05:42:08.000000000","message":"Thank you for your comment. I will fix it.","commit_id":"c7cc3f7ea18e5cca1e8c5a4e49a34922874f0c7d"}]}
