)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"1ad2815166abe59722a41aa6aa19089b35dc7e0f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Refactor codes, remove unused variables. This patch is the first step."},{"line_number":10,"context_line":"F841 check in tox.ini will be enabled to make sure that there are no"},{"line_number":11,"context_line":"userd variables in project anymore."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I3d49cd87353cfffbe0132aa65b2be8dffd1828bc"},{"line_number":14,"context_line":"Partial-Bug: #1268062"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUH%2F%2FZas%3D","line":11,"updated":"2014-01-14 07:24:38.000000000","message":"s/userd/unused/","commit_id":"7cba3d577a3e593b189f268a14b34b364b7e7eaf"}],"cinder/brick/exception.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a19a18842aedd44e31c53d124375dec4965b14c1","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                # kwargs doesn\u0027t match a variable in the message"},{"line_number":51,"context_line":"                # log the issue and the kwargs"},{"line_number":52,"context_line":"                msg \u003d (_(\"Exception in string format operation.  msg\u003d\u0027%s\u0027\")"},{"line_number":53,"context_line":"                       % self.msg_fmt)"},{"line_number":54,"context_line":"                LOG.exception(msg)"},{"line_number":55,"context_line":"                for name, value in kwargs.iteritems():"},{"line_number":56,"context_line":"                    LOG.error(\"%s: %s\" % (name, value))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FeIQ%3D","line":53,"updated":"2014-01-13 15:41:30.000000000","message":"I think this might be an actual bug indicating the comment saying \"log the issue\" and this doesn\u0027t appear to do that.\n\nI suspect something from exc_info was supposed to get logged here.","commit_id":"64dfa84b5e45a2dc59efa5637cb6c56be078618b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"709e604e145b9d32fd52a9aed4e495a7b3c917b9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                # kwargs doesn\u0027t match a variable in the message"},{"line_number":51,"context_line":"                # log the issue and the kwargs"},{"line_number":52,"context_line":"                msg \u003d (_(\"Exception in string format operation.  msg\u003d\u0027%s\u0027\")"},{"line_number":53,"context_line":"                       % self.msg_fmt)"},{"line_number":54,"context_line":"                LOG.exception(msg)"},{"line_number":55,"context_line":"                for name, value in kwargs.iteritems():"},{"line_number":56,"context_line":"                    LOG.error(\"%s: %s\" % (name, value))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FbxQ%3D","line":53,"in_reply_to":"AAAAUH%2F%2FeIQ%3D","updated":"2014-01-13 22:12:15.000000000","message":"Never mind, this should be ok since it has LOG.exception.  Agree w/ remove.","commit_id":"64dfa84b5e45a2dc59efa5637cb6c56be078618b"}],"cinder/tests/api/contrib/test_admin_actions.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a19a18842aedd44e31c53d124375dec4965b14c1","unresolved":false,"context_lines":[{"line_number":675,"context_line":"        new_volume \u003d db.volume_create(admin_ctx, {\u0027id\u0027: \u0027fake2\u0027})"},{"line_number":676,"context_line":"        expected_status \u003d 403"},{"line_number":677,"context_line":"        expected_id \u003d None"},{"line_number":678,"context_line":"        ctx \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":679,"context_line":"        volume \u003d self._migrate_volume_comp_exec(ctx, volume, new_volume, False,"},{"line_number":680,"context_line":"                                                expected_status, expected_id)"},{"line_number":681,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FeH0%3D","line":678,"updated":"2014-01-13 15:41:30.000000000","message":"Same issue here as below?","commit_id":"64dfa84b5e45a2dc59efa5637cb6c56be078618b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a19a18842aedd44e31c53d124375dec4965b14c1","unresolved":false,"context_lines":[{"line_number":723,"context_line":"                                       \u0027attach_status\u0027: \u0027detached\u0027})"},{"line_number":724,"context_line":"        expected_status \u003d 200"},{"line_number":725,"context_line":"        expected_id \u003d \u0027fake2\u0027"},{"line_number":726,"context_line":"        ctx \u003d context.RequestContext(\u0027admin\u0027, \u0027fake\u0027, True)"},{"line_number":727,"context_line":"        volume \u003d self._migrate_volume_comp_exec(ctx, volume, new_volume, False,"},{"line_number":728,"context_line":"                                                expected_status, expected_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FeHs%3D","line":726,"updated":"2014-01-13 15:41:30.000000000","message":"And here?","commit_id":"64dfa84b5e45a2dc59efa5637cb6c56be078618b"}],"cinder/tests/api/fakes.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a19a18842aedd44e31c53d124375dec4965b14c1","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    return mapper"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def stub_out_rate_limiting(stubs):"},{"line_number":86,"context_line":"    pass"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FeGw%3D","line":85,"updated":"2014-01-13 15:41:30.000000000","message":"Looks like this function can be removed?","commit_id":"64dfa84b5e45a2dc59efa5637cb6c56be078618b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a19a18842aedd44e31c53d124375dec4965b14c1","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"def stub_out_key_pair_funcs(stubs, have_key_pair\u003dTrue):"},{"line_number":90,"context_line":"    pass"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class FakeToken(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FeGo%3D","line":90,"updated":"2014-01-13 15:41:30.000000000","message":"It looks to me like this means that SnapshotMetaDataTest\u0027s setUp() isn\u0027t doing what it thinks it is.","commit_id":"64dfa84b5e45a2dc59efa5637cb6c56be078618b"}],"cinder/tests/api/v1/test_volumes.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a19a18842aedd44e31c53d124375dec4965b14c1","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        # Use correct volume type name"},{"line_number":118,"context_line":"        vol.update(dict(volume_type\u003dCONF.default_volume_type))"},{"line_number":119,"context_line":"        body.update(dict(volume\u003dvol))"},{"line_number":120,"context_line":"        res_dict \u003d self.controller.create(req, body)"},{"line_number":121,"context_line":"        self.assertEqual(len(res_dict), 1)"},{"line_number":122,"context_line":"        self.assertEqual(res_dict[\u0027volume\u0027][\u0027volume_type\u0027],"},{"line_number":123,"context_line":"                         db_vol_type[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FeFU%3D","line":120,"updated":"2014-01-13 15:41:30.000000000","message":"Removing these lines changes the behavior of these tests.  I think they need to be replaced with something asserting that \u0027id\u0027 exists in res_dict[\u0027volume\u0027] as they will currently fail with a KeyError if it does not.","commit_id":"64dfa84b5e45a2dc59efa5637cb6c56be078618b"}],"cinder/tests/test_db_api.py":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"a646aff6668b10aeaab97b9ab05285e77a069cc8","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def test_service_get(self):"},{"line_number":152,"context_line":"        service1 \u003d self._create_service({})"},{"line_number":153,"context_line":"        self._create_service({\u0027host\u0027: \u0027some_other_fake_host\u0027})"},{"line_number":154,"context_line":"        real_service1 \u003d db.service_get(self.ctxt, service1[\u0027id\u0027])"},{"line_number":155,"context_line":"        self._assertEqualObjects(service1, real_service1)"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FMS4%3D","line":153,"updated":"2014-01-16 15:50:02.000000000","message":"Disagree that this improves the code... since this is a test the variable happens to be unused, but I think that is better than not storing the return value of a function that ordinarily you\u0027d want to.... \n\nThe tests should indicate the use of the API... passing pylint is secondary to this.","commit_id":"3869ccaf747fb5dc57b53c182e816892333bfb19"},{"author":{"_account_id":6282,"name":"Wu Wenxiang","email":"wu.wenxiang@algoblu.com","username":"wu-wenxiang"},"change_message_id":"4d683c7478a4ce955f65799795faec5635dda715","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def test_service_get(self):"},{"line_number":152,"context_line":"        service1 \u003d self._create_service({})"},{"line_number":153,"context_line":"        self._create_service({\u0027host\u0027: \u0027some_other_fake_host\u0027})"},{"line_number":154,"context_line":"        real_service1 \u003d db.service_get(self.ctxt, service1[\u0027id\u0027])"},{"line_number":155,"context_line":"        self._assertEqualObjects(service1, real_service1)"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FLkw%3D","line":153,"in_reply_to":"AAAAUH%2F%2FMS4%3D","updated":"2014-01-16 17:33:07.000000000","message":"Hello, Duncan Thomas\n\n1. Agree with you that test case should indicate the use of API.\n\n2. I think the API function\u0027s name and arguments both indicate what is and how to use the API. And the return value (be used) also indicate how to use the API. But the unused return value mean less since it was just a symbol, we couldn\u0027t know why return this value, what is this value exactly, and how to use this return value.","commit_id":"3869ccaf747fb5dc57b53c182e816892333bfb19"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"a646aff6668b10aeaab97b9ab05285e77a069cc8","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_service_get_by_host_and_topic(self):"},{"line_number":162,"context_line":"        service1 \u003d self._create_service({\u0027host\u0027: \u0027host1\u0027, \u0027topic\u0027: \u0027topic1\u0027})"},{"line_number":163,"context_line":"        self._create_service({\u0027host\u0027: \u0027host2\u0027, \u0027topic\u0027: \u0027topic2\u0027})"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        real_service1 \u003d db.service_get_by_host_and_topic(self.ctxt,"},{"line_number":166,"context_line":"                                                         host\u003d\u0027host1\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FMSc%3D","line":163,"updated":"2014-01-16 15:50:02.000000000","message":"See above","commit_id":"3869ccaf747fb5dc57b53c182e816892333bfb19"},{"author":{"_account_id":6282,"name":"Wu Wenxiang","email":"wu.wenxiang@algoblu.com","username":"wu-wenxiang"},"change_message_id":"4d683c7478a4ce955f65799795faec5635dda715","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_service_get_by_host_and_topic(self):"},{"line_number":162,"context_line":"        service1 \u003d self._create_service({\u0027host\u0027: \u0027host1\u0027, \u0027topic\u0027: \u0027topic1\u0027})"},{"line_number":163,"context_line":"        self._create_service({\u0027host\u0027: \u0027host2\u0027, \u0027topic\u0027: \u0027topic2\u0027})"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        real_service1 \u003d db.service_get_by_host_and_topic(self.ctxt,"},{"line_number":166,"context_line":"                                                         host\u003d\u0027host1\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FLjI%3D","line":163,"in_reply_to":"AAAAUH%2F%2FMSc%3D","updated":"2014-01-16 17:33:07.000000000","message":"Done","commit_id":"3869ccaf747fb5dc57b53c182e816892333bfb19"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"a646aff6668b10aeaab97b9ab05285e77a069cc8","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def test_volume_get_iscsi_target_num(self):"},{"line_number":414,"context_line":"        db.iscsi_target_create_safe(self.ctxt, {\u0027volume_id\u0027: 42,"},{"line_number":415,"context_line":"                                                \u0027target_num\u0027: 43})"},{"line_number":416,"context_line":"        self.assertEqual(43, db.volume_get_iscsi_target_num(self.ctxt, 42))"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def test_volume_get_iscsi_target_num_nonexistent(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FMSQ%3D","line":415,"updated":"2014-01-16 15:50:02.000000000","message":"See above","commit_id":"3869ccaf747fb5dc57b53c182e816892333bfb19"},{"author":{"_account_id":6282,"name":"Wu Wenxiang","email":"wu.wenxiang@algoblu.com","username":"wu-wenxiang"},"change_message_id":"4d683c7478a4ce955f65799795faec5635dda715","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    def test_volume_get_iscsi_target_num(self):"},{"line_number":414,"context_line":"        db.iscsi_target_create_safe(self.ctxt, {\u0027volume_id\u0027: 42,"},{"line_number":415,"context_line":"                                                \u0027target_num\u0027: 43})"},{"line_number":416,"context_line":"        self.assertEqual(43, db.volume_get_iscsi_target_num(self.ctxt, 42))"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def test_volume_get_iscsi_target_num_nonexistent(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FLjE%3D","line":415,"in_reply_to":"AAAAUH%2F%2FMSQ%3D","updated":"2014-01-16 17:33:07.000000000","message":"Done","commit_id":"3869ccaf747fb5dc57b53c182e816892333bfb19"}],"cinder/tests/test_hp3par.py":[{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"21765792e8221542aed0fc7046f5d03207b85e39","unresolved":false,"context_lines":[{"line_number":458,"context_line":""},{"line_number":459,"context_line":"    def fake_extend_volume(self, volume, new_size):"},{"line_number":460,"context_line":"        vol \u003d self.driver.common.client.getVolume(volume[\u0027name\u0027])"},{"line_number":461,"context_line":"        old_size \u003d vol[\u0027sizeMiB\u0027]"},{"line_number":462,"context_line":"        option \u003d {\u0027comment\u0027: vol[\u0027comment\u0027], \u0027snapCPG\u0027: vol[\u0027snapCPG\u0027]}"},{"line_number":463,"context_line":"        self.driver.common.client.deleteVolume(volume[\u0027name\u0027])"},{"line_number":464,"context_line":"        self.driver.common.client.createVolume(vol[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2Fdnc%3D","side":"PARENT","line":461,"updated":"2014-01-13 16:34:12.000000000","message":"Agree with Eric, What is the replacement for this?","commit_id":"dc79d39b03643531c559dd9352c621d95c5c6057"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"a19a18842aedd44e31c53d124375dec4965b14c1","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        return HP3PAR_DOMAIN"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"    def fake_extend_volume(self, volume, new_size):"},{"line_number":460,"context_line":"        vol \u003d self.driver.common.client.getVolume(volume[\u0027name\u0027])"},{"line_number":461,"context_line":"        option \u003d {\u0027comment\u0027: vol[\u0027comment\u0027], \u0027snapCPG\u0027: vol[\u0027snapCPG\u0027]}"},{"line_number":462,"context_line":"        self.driver.common.client.deleteVolume(volume[\u0027name\u0027])"},{"line_number":463,"context_line":"        self.driver.common.client.createVolume(vol[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2Fd%2BM%3D","line":460,"updated":"2014-01-13 15:41:30.000000000","message":"This changes the behavior of this test.  Needs to be replaced with something that asserts that sizeMiB is in vol.","commit_id":"64dfa84b5e45a2dc59efa5637cb6c56be078618b"}],"cinder/volume/drivers/hds/hds.py":[{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"3709b69e486b5292ea9d30a882e859e3d0f0725d","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        name \u003d self.hus_name"},{"line_number":395,"context_line":"        LOG.debug(_(\"delete lun %(lun)s on %(name)s\")"},{"line_number":396,"context_line":"                  % {\u0027lun\u0027: lun,"},{"line_number":397,"context_line":"                     \u0027name\u0027: name})"},{"line_number":398,"context_line":"        _out \u003d self.bend.delete_lu(self.config[\u0027hus_cmd\u0027],"},{"line_number":399,"context_line":"                                   HDS_VERSION,"},{"line_number":400,"context_line":"                                   self.config[\u0027mgmt_ip0\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FgZ8%3D","line":397,"updated":"2014-01-13 07:55:28.000000000","message":"what about this variable?","commit_id":"b5360ee6068c7deb1d93f53d9b26c335e5dddc3d"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"3709b69e486b5292ea9d30a882e859e3d0f0725d","unresolved":false,"context_lines":[{"line_number":447,"context_line":"            return"},{"line_number":448,"context_line":"        (arid, lun) \u003d info[\u0027id_lu\u0027]"},{"line_number":449,"context_line":"        (_portal, iqn, loc, ctl, port) \u003d info[\u0027tgt\u0027]"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        _out \u003d self.bend.del_iscsi_conn(self.config[\u0027hus_cmd\u0027],"},{"line_number":452,"context_line":"                                        HDS_VERSION,"},{"line_number":453,"context_line":"                                        self.config[\u0027mgmt_ip0\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FgZ4%3D","line":450,"updated":"2014-01-13 07:55:28.000000000","message":"... and this","commit_id":"b5360ee6068c7deb1d93f53d9b26c335e5dddc3d"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"3709b69e486b5292ea9d30a882e859e3d0f0725d","unresolved":false,"context_lines":[{"line_number":511,"context_line":"        loc \u003d snapshot[\u0027provider_location\u0027]"},{"line_number":512,"context_line":"        if loc is None:         # to take care of spurious input"},{"line_number":513,"context_line":"            return              # which could cause exception."},{"line_number":514,"context_line":"        (arid, lun) \u003d loc.split(\u0027.\u0027)"},{"line_number":515,"context_line":"        _out \u003d self.bend.delete_lu(self.config[\u0027hus_cmd\u0027],"},{"line_number":516,"context_line":"                                   HDS_VERSION,"},{"line_number":517,"context_line":"                                   self.config[\u0027mgmt_ip0\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FgZw%3D","line":514,"updated":"2014-01-13 07:55:28.000000000","message":"... and this","commit_id":"b5360ee6068c7deb1d93f53d9b26c335e5dddc3d"}]}
