)]}'
{"nova/api/openstack/compute/contrib/volumes.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"516c5399e9cf9ff27381fa1c7fa09f0a83d8f36a","unresolved":false,"context_lines":[{"line_number":393,"context_line":""},{"line_number":394,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"\ttry:"},{"line_number":397,"context_line":"            volume \u003d self.volume_api.get(context, volume_id)"},{"line_number":398,"context_line":"        except exception.VolumeNotFound as e:"},{"line_number":399,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_3e853407","line":396,"updated":"2015-03-18 15:28:03.000000000","message":"Please fix the pep8 errors in this file:\n\n2015-03-17 23:11:13.308 | ./nova/api/openstack/compute/contrib/volumes.py:396:1: E101 indentation contains mixed spaces and tabs\n2015-03-17 23:11:13.308 | ./nova/api/openstack/compute/contrib/volumes.py:396:1: W191 indentation contains tabs\n2015-03-17 23:11:13.309 | ./nova/api/openstack/compute/contrib/volumes.py:397:1: E101 indentation contains mixed spaces and tabs","commit_id":"7bb9cb201e1cfa934146263cf17e4b11527d432c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a44093091120002416573c1262e36e2d8af2c92","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        snapshot_id \u003d vol.get(\u0027snapshot_id\u0027)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        if snapshot_id is not None:"},{"line_number":155,"context_line":"            snapshot \u003d self.volume_api.get_snapshot(context, snapshot_id)"},{"line_number":156,"context_line":"        else:"},{"line_number":157,"context_line":"            snapshot \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_6a581ffb","line":154,"updated":"2015-04-20 16:31:01.000000000","message":"We could also get SnapshotNotFound here, this is also missing a check in the v3 API:\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/compute/plugins/v3/volumes.py#n148\n\nThat\u0027s a separate bug/change though.","commit_id":"815b4171ecb51bbba6c16067dfa272ac5d4949ef"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a44093091120002416573c1262e36e2d8af2c92","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        old_volume_id \u003d id"},{"line_number":345,"context_line":"        try:"},{"line_number":346,"context_line":"            old_volume \u003d self.volume_api.get(context, old_volume_id)"},{"line_number":347,"context_line":"        except exception.NotFound as e:"},{"line_number":348,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_4af8bbe5","line":347,"updated":"2015-04-20 16:31:01.000000000","message":"Let\u0027s use VolumeNotFound like in the v3 API.","commit_id":"815b4171ecb51bbba6c16067dfa272ac5d4949ef"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a44093091120002416573c1262e36e2d8af2c92","unresolved":false,"context_lines":[{"line_number":353,"context_line":"            msg \u003d _(\"volumeId must be specified.\")"},{"line_number":354,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":355,"context_line":"        self._validate_volume_id(new_volume_id)"},{"line_number":356,"context_line":"        new_volume \u003d self.volume_api.get(context, new_volume_id)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id)"},{"line_number":359,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_2ac5878d","line":356,"updated":"2015-04-20 16:31:01.000000000","message":"You can also hit it here, which is handled in the v3 API:\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/compute/plugins/v3/volumes.py#n321","commit_id":"815b4171ecb51bbba6c16067dfa272ac5d4949ef"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"75021d664b5f584f1dc67087df9010ab312343c1","unresolved":false,"context_lines":[{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        try:"},{"line_number":403,"context_line":"            volume \u003d self.volume_api.get(context, volume_id)"},{"line_number":404,"context_line":"        except exception.VolumeNotFound as e:"},{"line_number":405,"context_line":"            raise exc.HTTPNotFound(explanation\u003de.format_message())"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        bdms \u003d objects.BlockDeviceMappingList.get_by_instance_uuid("}],"source_content_type":"text/x-python","patch_set":6,"id":"bab921fb_0dc94526","line":404,"updated":"2015-04-25 12:13:23.000000000","message":"In the v2 API, this exception will be translate to 404 in wsgi layer. I think the bug report is not the true.\n\nAnd I test again, I get 404 when I delete a invalid volume","commit_id":"1ba3c84120dfac4c8e3229ab76f23830032abeb8"}],"nova/tests/unit/api/openstack/compute/contrib/test_volumes.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"516c5399e9cf9ff27381fa1c7fa09f0a83d8f36a","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                          req,"},{"line_number":456,"context_line":"                          FAKE_UUID,"},{"line_number":457,"context_line":"                          FAKE_UUID_C)"},{"line_number":458,"context_line":"\t# scenario where volume_api.get raise NotFound"},{"line_number":459,"context_line":"\t# error"},{"line_number":460,"context_line":"\tself.stubs.Set(cinder.API, \"get\", fakes.stub_volume_notfound)"},{"line_number":461,"context_line":"        self.assertRaises(exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_7e76cc40","line":458,"updated":"2015-03-18 15:28:03.000000000","message":"Ditto -\n\n2015-03-17 23:11:14.062 | ./nova/tests/unit/api/openstack/compute/contrib/test_volumes.py:458:1: E101 indentation contains mixed spaces and tabs\n2015-03-17 23:11:14.062 | ./nova/tests/unit/api/openstack/compute/contrib/test_volumes.py:458:1: W191 indentation contains tabs\n2015-03-17 23:11:14.062 | ./nova/tests/unit/api/openstack/compute/contrib/test_volumes.py:459:1: W191 indentation contains tabs\n2015-03-17 23:11:14.062 | ./nova/tests/unit/api/openstack/compute/contrib/test_volumes.py:460:1: W191 indentation contains tabs\n2015-03-17 23:11:14.062 | ./nova/tests/unit/api/openstack/compute/contrib/test_volumes.py:461:1: E101 indentation contains mixed spaces and tabs","commit_id":"7bb9cb201e1cfa934146263cf17e4b11527d432c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a44093091120002416573c1262e36e2d8af2c92","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            raise exception.InvalidInput(reason\u003d\"bad request data\")"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        self.stubs.Set(cinder.API, \"create\", fake_volume_create)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        vol \u003d {\"size\": \u0027#$?\u0027,"},{"line_number":279,"context_line":"               \"display_name\": \"Volume Test Name\","},{"line_number":280,"context_line":"               \"display_description\": \"Volume Test Desc\","}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_2a734782","side":"PARENT","line":277,"updated":"2015-04-20 16:31:01.000000000","message":"Remove the unrelated whitespace change.","commit_id":"ac2b1d1caf8240f01a46e41450f23f5cc9062e57"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a44093091120002416573c1262e36e2d8af2c92","unresolved":false,"context_lines":[{"line_number":280,"context_line":"               \"display_description\": \"Volume Test Desc\","},{"line_number":281,"context_line":"               \"availability_zone\": \"zone1:host1\"}"},{"line_number":282,"context_line":"        body \u003d {\"volume\": vol}"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url_prefix + \u0027/os-volumes\u0027)"},{"line_number":285,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":286,"context_line":"                          volumes.VolumeController().create, req, body\u003dbody)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_ea6c2f9e","side":"PARENT","line":283,"updated":"2015-04-20 16:31:01.000000000","message":"and here","commit_id":"ac2b1d1caf8240f01a46e41450f23f5cc9062e57"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4a44093091120002416573c1262e36e2d8af2c92","unresolved":false,"context_lines":[{"line_number":280,"context_line":"               \"availability_zone\": \"zone1:host1\"}"},{"line_number":281,"context_line":"        body \u003d {\"volume\": vol}"},{"line_number":282,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url_prefix + \u0027/os-volumes\u0027)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        self.assertRaises(webob.exc.HTTPBadRequest,"},{"line_number":285,"context_line":"                          volumes.VolumeController().create, req, body\u003dbody)"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_aa0517c3","line":283,"updated":"2015-04-20 16:31:01.000000000","message":"and here","commit_id":"815b4171ecb51bbba6c16067dfa272ac5d4949ef"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"589e43c51d88b6e798230ae8580200b58e62c9bc","unresolved":false,"context_lines":[{"line_number":645,"context_line":"    def test_swap_volume_not_found(self):"},{"line_number":646,"context_line":"        # scenario where volume_api.get raise NotFound"},{"line_number":647,"context_line":"        # error"},{"line_number":648,"context_line":"        self.stubs.Set(cinder.API, \"get\", fakes.stub_volume_notfound)"},{"line_number":649,"context_line":"        self.assertRaises(exc.HTTPNotFound, self._test_swap,"},{"line_number":650,"context_line":"                          self.attachments)"},{"line_number":651,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dac4157f_c3c150e6","line":648,"updated":"2015-04-20 20:24:33.000000000","message":"use mock please ..","commit_id":"d675eafb44f2f4d34aee299def252de88d241040"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"468dacf9533f1cc92d8f4221cb57b074851bbae2","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                          req,"},{"line_number":456,"context_line":"                          FAKE_UUID,"},{"line_number":457,"context_line":"                          FAKE_UUID_C)"},{"line_number":458,"context_line":"        # scenario where volume_api.get raise NotFound"},{"line_number":459,"context_line":"        # error"},{"line_number":460,"context_line":"        self.stubs.Set(cinder.API, \"get\", fakes.stub_volume_notfound)"},{"line_number":461,"context_line":"        self.assertRaises(exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_c37947fe","line":458,"updated":"2015-04-23 20:03:30.000000000","message":"I\u0027m at a loss to what this is testing that the test isn\u0027t already covering?","commit_id":"60277db6c622c4ec4d12bfdc596c08d23c2f58f7"},{"author":{"_account_id":12994,"name":"Christine Wang","email":"christine911@gmail.com","username":"ijuwang"},"change_message_id":"5cb8abc26dfbca3df378a27cec3cf6ece32201b8","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                          req,"},{"line_number":456,"context_line":"                          FAKE_UUID,"},{"line_number":457,"context_line":"                          FAKE_UUID_C)"},{"line_number":458,"context_line":"        # scenario where volume_api.get raise NotFound"},{"line_number":459,"context_line":"        # error"},{"line_number":460,"context_line":"        self.stubs.Set(cinder.API, \"get\", fakes.stub_volume_notfound)"},{"line_number":461,"context_line":"        self.assertRaises(exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_4e864914","line":458,"in_reply_to":"bab921fb_c37947fe","updated":"2015-04-24 15:58:44.000000000","message":"volume_api.get was stub with fake_get_volume which always returns something.\n self.assertRaises(exc.HTTPNotFound,\n                           self.attachments.delete,\n                           req,\n                           FAKE_UUID,\n                           FAKE_UUID_C)\nwas for bdm check.","commit_id":"60277db6c622c4ec4d12bfdc596c08d23c2f58f7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"468dacf9533f1cc92d8f4221cb57b074851bbae2","unresolved":false,"context_lines":[{"line_number":642,"context_line":"                          self.attachments,"},{"line_number":643,"context_line":"                          body\u003dbody)"},{"line_number":644,"context_line":""},{"line_number":645,"context_line":"    @mock.patch.object(cinder.API, \u0027get\u0027,"},{"line_number":646,"context_line":"        side_effect\u003dexception.VolumeNotFound())"},{"line_number":647,"context_line":"    def test_swap_volume_not_found(self, mock_mr):"},{"line_number":648,"context_line":"        # scenario where volume_api.get raise NotFound"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_26cff157","line":645,"updated":"2015-04-23 20:03:30.000000000","message":"This will hit the first volume_api.get call for the old_volume_id but not the new_volume_id, right?","commit_id":"60277db6c622c4ec4d12bfdc596c08d23c2f58f7"},{"author":{"_account_id":12994,"name":"Christine Wang","email":"christine911@gmail.com","username":"ijuwang"},"change_message_id":"5cb8abc26dfbca3df378a27cec3cf6ece32201b8","unresolved":false,"context_lines":[{"line_number":642,"context_line":"                          self.attachments,"},{"line_number":643,"context_line":"                          body\u003dbody)"},{"line_number":644,"context_line":""},{"line_number":645,"context_line":"    @mock.patch.object(cinder.API, \u0027get\u0027,"},{"line_number":646,"context_line":"        side_effect\u003dexception.VolumeNotFound())"},{"line_number":647,"context_line":"    def test_swap_volume_not_found(self, mock_mr):"},{"line_number":648,"context_line":"        # scenario where volume_api.get raise NotFound"}],"source_content_type":"text/x-python","patch_set":5,"id":"bab921fb_82ed5027","line":645,"in_reply_to":"bab921fb_26cff157","updated":"2015-04-24 15:58:44.000000000","message":"Done","commit_id":"60277db6c622c4ec4d12bfdc596c08d23c2f58f7"}]}
