)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"b7ecdbafb06f820fa896c205c7f746fae0053bc4","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-12-24 17:42:03 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"volume create with unicode name results in HTTP 500 fix"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ic3d55cc5270ece7f625b6bc5ded3f48494b29799"},{"line_number":10,"context_line":"Closes-bug: #1393871"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a7b0d38_12baf3c0","line":8,"updated":"2015-12-24 17:31:53.000000000","message":"Add APIImpact keyword in the commit message","commit_id":"a8229bf4a8b1774334679268b21ca4fee2fe537c"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2015-12-24 17:37:13 +0530"},{"line_number":4,"context_line":"Commit:     Mannu \u003cmannu.kumar@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-29 14:00:24 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"volume create with unicode name results in HTTP 500 fix"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ic3d55cc5270ece7f625b6bc5ded3f48494b29799"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_ff565205","line":6,"updated":"2015-12-30 11:24:56.000000000","message":"Add description for unicode types which will create impact - unicode 3 or unicode 4 or both. \nNew error message can also be added here for 4 bit unicode characters used for volume and snapshot create commands.","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"aebce832ac1b0c315d31ab865a0b0040e1d229bc","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2015-12-24 17:37:13 +0530"},{"line_number":4,"context_line":"Commit:     Mannu \u003cmannu.kumar@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-29 14:00:24 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"volume create with unicode name results in HTTP 500 fix"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ic3d55cc5270ece7f625b6bc5ded3f48494b29799"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_13da88e8","line":6,"in_reply_to":"fa69d971_cc08d8dc","updated":"2016-01-06 13:02:41.000000000","message":"It\u0027s still good to put it in the commit message - having to go chase around launchpad for details of a commit is far slower than just reading the commit message.","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"bb4c1dcbddfb95a609232f80584ddab548282680","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2015-12-24 17:37:13 +0530"},{"line_number":4,"context_line":"Commit:     Mannu \u003cmannu.kumar@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-29 14:00:24 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"volume create with unicode name results in HTTP 500 fix"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ic3d55cc5270ece7f625b6bc5ded3f48494b29799"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_1a6b2920","line":6,"in_reply_to":"fa69d971_ff565205","updated":"2015-12-30 16:42:36.000000000","message":"comment updated:\nAdd description for unicode types which is targeted in this fix - 3 byte unicode or 4 byte unicode or both.","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":17017,"name":"Mannu","username":"mannuk","inactive":true},"change_message_id":"541e74aad584000c4ad99e2a2598294b4c1c0227","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2015-12-24 17:37:13 +0530"},{"line_number":4,"context_line":"Commit:     Mannu \u003cmannu.kumar@nectechnologies.in\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-29 14:00:24 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"volume create with unicode name results in HTTP 500 fix"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ic3d55cc5270ece7f625b6bc5ded3f48494b29799"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_cc08d8dc","line":6,"in_reply_to":"fa69d971_ff565205","updated":"2016-01-06 10:22:20.000000000","message":"the description is already in the bug,","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"e79d82a51da406f8820ba28dee5a7ef79a16ed81","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"volume create with unicode name results in HTTP 500 fix"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"incorporating review comment for patch set 4"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"APIImpact"},{"line_number":12,"context_line":"Change-Id: Ic3d55cc5270ece7f625b6bc5ded3f48494b29799"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa69d971_537bee29","line":9,"range":{"start_line":9,"start_character":1,"end_line":9,"end_character":44},"updated":"2016-01-07 11:30:31.000000000","message":"This information is not necessary here.","commit_id":"dc3c7ac184141fb0177a608678a8065b41cdb1bc"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"1998f74daf8ed04dda3af578ec695904e521255a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     mannuray \u003cmannu.ray@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-11 21:04:32 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"volume create with unicode name results in HTTP 500 fix"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"incorporating review comment for patch set 3"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba63e191_66938750","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":6},"updated":"2016-01-19 20:01:47.000000000","message":"volume -\u003e Volume","commit_id":"9947099aaba3d65acf81b216d4bb618080945745"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"1998f74daf8ed04dda3af578ec695904e521255a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"volume create with unicode name results in HTTP 500 fix"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"incorporating review comment for patch set 3"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Below operations are getting failed with (HTTP 500) in case unicode 4 byte characters are used:"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba63e191_06b16be1","line":9,"range":{"start_line":9,"start_character":2,"end_line":9,"end_character":44},"updated":"2016-01-19 20:01:47.000000000","message":"I don\u0027t think it is necessary to have the note which patch set you added the body to the commit message in.","commit_id":"9947099aaba3d65acf81b216d4bb618080945745"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"1998f74daf8ed04dda3af578ec695904e521255a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"8. type-create Creates a volume type."},{"line_number":21,"context_line":"9. update/edit of entities mentioned in step1-8 update/edit name."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"this patch resolve these issues"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"APIImpact"},{"line_number":26,"context_line":"Change-Id: Ic3d55cc5270ece7f625b6bc5ded3f48494b29799"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba63e191_06ff2b68","line":23,"range":{"start_line":23,"start_character":11,"end_line":23,"end_character":18},"updated":"2016-01-19 20:01:47.000000000","message":"resolve -\u003e resolves","commit_id":"9947099aaba3d65acf81b216d4bb618080945745"}],"cinder/api/v2/snapshots.py":[{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"a3b1354d22b9c541ee247ce5883f83de793b1414","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            msg \u003d _(\"Invalid value for \u0027force\u0027: \u0027%s\u0027\") % error.message"},{"line_number":181,"context_line":"            raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        try:"},{"line_number":184,"context_line":"            if force:"},{"line_number":185,"context_line":"                new_snapshot \u003d self.volume_api.create_snapshot_force("},{"line_number":186,"context_line":"                    context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_4130e656","line":183,"range":{"start_line":183,"start_character":11,"end_line":183,"end_character":12},"updated":"2015-12-30 10:00:23.000000000","message":"IMO there is no need of try catch block as wsgi will convert exception raised from volume_api to HTTPBadRequest and it returns same error message to the user even without this try catch block.","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                    snapshot.get(\u0027display_name\u0027),"},{"line_number":196,"context_line":"                    snapshot.get(\u0027description\u0027),"},{"line_number":197,"context_line":"                    **kwargs)"},{"line_number":198,"context_line":"        except exception.Invalid as error:"},{"line_number":199,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.msg)"},{"line_number":200,"context_line":"        req.cache_db_snapshot(new_snapshot)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_7fe7c240","line":198,"updated":"2015-12-30 11:24:56.000000000","message":"Use proper exception name for better code clarity, may be you can use \"Invalid-Unicode\" as exception name.","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":17017,"name":"Mannu","username":"mannuk","inactive":true},"change_message_id":"541e74aad584000c4ad99e2a2598294b4c1c0227","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                    snapshot.get(\u0027display_name\u0027),"},{"line_number":196,"context_line":"                    snapshot.get(\u0027description\u0027),"},{"line_number":197,"context_line":"                    **kwargs)"},{"line_number":198,"context_line":"        except exception.Invalid as error:"},{"line_number":199,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.msg)"},{"line_number":200,"context_line":"        req.cache_db_snapshot(new_snapshot)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_ec64bcb9","line":198,"in_reply_to":"fa69d971_7fe7c240","updated":"2016-01-06 10:22:20.000000000","message":"will need to add new exception, I am using the existing one","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"}],"cinder/api/v2/volumes.py":[{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"a3b1354d22b9c541ee247ce5883f83de793b1414","unresolved":false,"context_lines":[{"line_number":410,"context_line":"        multiattach \u003d volume.get(\u0027multiattach\u0027, False)"},{"line_number":411,"context_line":"        kwargs[\u0027multiattach\u0027] \u003d multiattach"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        try:"},{"line_number":414,"context_line":"            new_volume \u003d self.volume_api.create(context,"},{"line_number":415,"context_line":"                                                size,"},{"line_number":416,"context_line":"                                                volume.get(\u0027display_name\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_e1aa3a85","line":413,"range":{"start_line":413,"start_character":11,"end_line":413,"end_character":12},"updated":"2015-12-30 10:00:23.000000000","message":"IMO there is no need of try catch block as wsgi will convert exception raised from volume_api.create method to HTTPBadRequest and it returns same error message to the user even without this try catch block.","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":416,"context_line":"                                                volume.get(\u0027display_name\u0027),"},{"line_number":417,"context_line":"                                                volume.get(\u0027display_description\u0027),"},{"line_number":418,"context_line":"                                                **kwargs)"},{"line_number":419,"context_line":"        except exception.Invalid as error:"},{"line_number":420,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.msg)"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        retval \u003d self._view_builder.detail(req, new_volume)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_5f3c3e93","line":419,"updated":"2015-12-30 11:24:56.000000000","message":"Use proper exception name for better code clarity, may be you can use \"Invalid-Unicode\" as exception name.","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":17017,"name":"Mannu","username":"mannuk","inactive":true},"change_message_id":"541e74aad584000c4ad99e2a2598294b4c1c0227","unresolved":false,"context_lines":[{"line_number":416,"context_line":"                                                volume.get(\u0027display_name\u0027),"},{"line_number":417,"context_line":"                                                volume.get(\u0027display_description\u0027),"},{"line_number":418,"context_line":"                                                **kwargs)"},{"line_number":419,"context_line":"        except exception.Invalid as error:"},{"line_number":420,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.msg)"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        retval \u003d self._view_builder.detail(req, new_volume)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_ac432412","line":419,"in_reply_to":"fa69d971_5f3c3e93","updated":"2016-01-06 10:22:20.000000000","message":"will need to add new exception, I am using the existing one","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":473,"context_line":"            self.volume_api.update(context, volume, update_dict)"},{"line_number":474,"context_line":"        except exception.VolumeNotFound as error:"},{"line_number":475,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":476,"context_line":"        except exception.Invalid as error:"},{"line_number":477,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.msg)"},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"        volume.update(update_dict)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_ff409209","line":476,"updated":"2015-12-30 11:24:56.000000000","message":"same as above.","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":10485,"name":"Ankit Agrawal","email":"ankitagrawal8188@gmail.com","username":"ankitagrawal"},"change_message_id":"a3b1354d22b9c541ee247ce5883f83de793b1414","unresolved":false,"context_lines":[{"line_number":474,"context_line":"        except exception.VolumeNotFound as error:"},{"line_number":475,"context_line":"            raise exc.HTTPNotFound(explanation\u003derror.msg)"},{"line_number":476,"context_line":"        except exception.Invalid as error:"},{"line_number":477,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.msg)"},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"        volume.update(update_dict)"},{"line_number":480,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_a1a3e29d","line":477,"range":{"start_line":477,"start_character":22,"end_line":477,"end_character":36},"updated":"2015-12-30 10:00:23.000000000","message":"IMO there is no need raise HTTPBadRequest explicitly as wsgi will convert exception raised from volume_api.create method to HTTPBadRequest and it returns same error message to the user even without this exception block.","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"}],"cinder/tests/unit/test_volume.py":[{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"b7ecdbafb06f820fa896c205c7f746fae0053bc4","unresolved":false,"context_lines":[{"line_number":630,"context_line":"        \u0027\u0027\u0027"},{"line_number":631,"context_line":"        try:"},{"line_number":632,"context_line":"            print \u0027runnig bad name \u0027"},{"line_number":633,"context_line":"            volume_api.create( self.context, 1, u\u0027A name with forbidden symbol \\U0001f62a\u0027, \u0027description\u0027, None, None, None, test_meta)"},{"line_number":634,"context_line":"            print \u0027end runnig bad name \u0027"},{"line_number":635,"context_line":"        except Exception as error:"},{"line_number":636,"context_line":"            print \u0027type is \u0027, type(error)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_727d771b","line":633,"updated":"2015-12-24 17:31:53.000000000","message":"Could you please wrap this line?","commit_id":"a8229bf4a8b1774334679268b21ca4fee2fe537c"},{"author":{"_account_id":14274,"name":"XinXiaohui","email":"xiaohui.xin@intel.com","username":"XinXiaohui"},"change_message_id":"0798ee9dee2fafefc9a245a199d3348cfd4df8b2","unresolved":false,"context_lines":[{"line_number":3150,"context_line":"                          \u0027fake_name\u0027,"},{"line_number":3151,"context_line":"                          \u0027fake_description\u0027)"},{"line_number":3152,"context_line":""},{"line_number":3153,"context_line":"    def test_create_snapshot_failed_bad_name_snapshot(self, mock_snapshot):"},{"line_number":3154,"context_line":"        \"\"\"Test exception handling when create snapshot in db failed.\"\"\""},{"line_number":3155,"context_line":"        test_volume \u003d tests_utils.create_volume("},{"line_number":3156,"context_line":"            self.context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_5bac0fed","line":3153,"range":{"start_line":3153,"start_character":8,"end_line":3153,"end_character":53},"updated":"2015-12-25 06:59:42.000000000","message":"-1:Please specify where is your mock_snapshot function from, otherwise the py27/py34 cannot pass.","commit_id":"a8229bf4a8b1774334679268b21ca4fee2fe537c"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        \"\"\"Test volume create with too much metadata fails.\"\"\""},{"line_number":628,"context_line":"        volume_api \u003d cinder.volume.api.API()"},{"line_number":629,"context_line":"        test_meta \u003d {\u0027fake_key\u0027: \u0027256\u0027}"},{"line_number":630,"context_line":"        \u0027\u0027\u0027"},{"line_number":631,"context_line":"        try:"},{"line_number":632,"context_line":"            print \u0027runnig bad name \u0027"},{"line_number":633,"context_line":"            volume_api.create( self.context, 1, u\u0027A name with forbidden symbol \\U0001f62a\u0027, \u0027description\u0027, None, None, None, test_meta)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_9f69568e","line":630,"updated":"2015-12-30 11:24:56.000000000","message":"Better to remove these comment lines if not required instead of keeping them under comment section..","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":3158,"context_line":"        self.volume.create_volume(self.context, test_volume[\u0027id\u0027])"},{"line_number":3159,"context_line":"        test_volume[\u0027status\u0027] \u003d \u0027available\u0027"},{"line_number":3160,"context_line":"        volume_api \u003d cinder.volume.api.API()"},{"line_number":3161,"context_line":"        self.assertRaises(exception.Invalid,"},{"line_number":3162,"context_line":"                          volume_api.create_snapshot,"},{"line_number":3163,"context_line":"                          self.context,"},{"line_number":3164,"context_line":"                          test_volume,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_7f1a6219","line":3161,"updated":"2015-12-30 11:24:56.000000000","message":"I would suggest to use some descriptive exception name for better clarity. \nMay be you can use \"Invalid-Unicode\" as exception name instead of \"except exception.Invalid\".","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":17017,"name":"Mannu","username":"mannuk","inactive":true},"change_message_id":"541e74aad584000c4ad99e2a2598294b4c1c0227","unresolved":false,"context_lines":[{"line_number":3158,"context_line":"        self.volume.create_volume(self.context, test_volume[\u0027id\u0027])"},{"line_number":3159,"context_line":"        test_volume[\u0027status\u0027] \u003d \u0027available\u0027"},{"line_number":3160,"context_line":"        volume_api \u003d cinder.volume.api.API()"},{"line_number":3161,"context_line":"        self.assertRaises(exception.Invalid,"},{"line_number":3162,"context_line":"                          volume_api.create_snapshot,"},{"line_number":3163,"context_line":"                          self.context,"},{"line_number":3164,"context_line":"                          test_volume,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_4c9aa8ba","line":3161,"in_reply_to":"fa69d971_7f1a6219","updated":"2016-01-06 10:22:20.000000000","message":"that will require adding new exception","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"e79d82a51da406f8820ba28dee5a7ef79a16ed81","unresolved":false,"context_lines":[{"line_number":3144,"context_line":""},{"line_number":3145,"context_line":"    @mock.patch.object(db, \u0027snapshot_create\u0027,"},{"line_number":3146,"context_line":"                       side_effect\u003dexception.InvalidSnapshot("},{"line_number":3147,"context_line":"                           \u0027Create snapshot failed due to invaled unicode!\u0027))"},{"line_number":3148,"context_line":"    def test_create_snapshot_failed_bad_name_snapshot(self, mock_snapshot):"},{"line_number":3149,"context_line":"        \"\"\"Test exception handling when invaled unicode character given.\"\"\""},{"line_number":3150,"context_line":"        test_volume \u003d tests_utils.create_volume("}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_d34b5e5e","line":3147,"range":{"start_line":3147,"start_character":58,"end_line":3147,"end_character":65},"updated":"2016-01-07 11:30:31.000000000","message":"s/invaled/invalid","commit_id":"dc3c7ac184141fb0177a608678a8065b41cdb1bc"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"e79d82a51da406f8820ba28dee5a7ef79a16ed81","unresolved":false,"context_lines":[{"line_number":3146,"context_line":"                       side_effect\u003dexception.InvalidSnapshot("},{"line_number":3147,"context_line":"                           \u0027Create snapshot failed due to invaled unicode!\u0027))"},{"line_number":3148,"context_line":"    def test_create_snapshot_failed_bad_name_snapshot(self, mock_snapshot):"},{"line_number":3149,"context_line":"        \"\"\"Test exception handling when invaled unicode character given.\"\"\""},{"line_number":3150,"context_line":"        test_volume \u003d tests_utils.create_volume("},{"line_number":3151,"context_line":"            self.context,"},{"line_number":3152,"context_line":"            **self.volume_params)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_733dd2ba","line":3149,"range":{"start_line":3149,"start_character":40,"end_line":3149,"end_character":47},"updated":"2016-01-07 11:30:31.000000000","message":"ditto","commit_id":"dc3c7ac184141fb0177a608678a8065b41cdb1bc"}],"cinder/utils.py":[{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"b7ecdbafb06f820fa896c205c7f746fae0053bc4","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"                    _check_dict(value)"},{"line_number":1023,"context_line":"                else:"},{"line_number":1024,"context_line":"                    if _is_match(key):"},{"line_number":1025,"context_line":"                        msg \u003d _(\"Property names can\u0027t contain 4 byte unicode.\")"},{"line_number":1026,"context_line":"                        raise exception.Invalid(msg)"},{"line_number":1027,"context_line":"                    if _is_match(value):"},{"line_number":1028,"context_line":"                        msg \u003d (_(\"%s can\u0027t contain 4 byte unicode characters.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_32f36fa0","line":1025,"updated":"2015-12-24 17:31:53.000000000","message":"Would it be clearer if you mention name of the key?","commit_id":"a8229bf4a8b1774334679268b21ca4fee2fe537c"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"def no_4byte_params(f):"},{"line_number":1008,"context_line":"    \"\"\""},{"line_number":1009,"context_line":"    Checks that no 4 byte unicode characters are allowed"},{"line_number":1010,"context_line":"    in dicts\u0027 keys/values and string\u0027s parameters"},{"line_number":1011,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_5fbf5ed0","line":1008,"updated":"2015-12-30 11:24:56.000000000","message":"Follow proper doc-string rules http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":1013,"context_line":""},{"line_number":1014,"context_line":"        def _is_match(some_str):"},{"line_number":1015,"context_line":"            return (isinstance(some_str, unicode) and"},{"line_number":1016,"context_line":"                REGEX_4BYTE_UNICODE.findall(some_str) !\u003d [])"},{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":"        def _check_dict(data_dict):"},{"line_number":1019,"context_line":"            # a dict of dicts has to be checked recursively"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_7f9fc25f","line":1016,"updated":"2015-12-30 11:24:56.000000000","message":"use below indentation:\n            return (isinstance(some_str, unicode) and\n                    REGEX_4BYTE_UNICODE.findall(some_str) !\u003d [])","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":1018,"context_line":"        def _check_dict(data_dict):"},{"line_number":1019,"context_line":"            # a dict of dicts has to be checked recursively"},{"line_number":1020,"context_line":"            for key, value in data_dict.iteritems():"},{"line_number":1021,"context_line":"                if isinstance(value, dict):"},{"line_number":1022,"context_line":"                    _check_dict(value)"},{"line_number":1023,"context_line":"                else:"},{"line_number":1024,"context_line":"                    if _is_match(key):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_ff8172fc","line":1021,"updated":"2015-12-30 11:24:56.000000000","message":"Same as above for \n           if isinstance(value, dict):\n                    _check_dict(value)","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":1023,"context_line":"                else:"},{"line_number":1024,"context_line":"                    if _is_match(key):"},{"line_number":1025,"context_line":"                        msg \u003d _(\"Property names can\u0027t contain 4 byte unicode.\")"},{"line_number":1026,"context_line":"                        raise exception.Invalid(msg)"},{"line_number":1027,"context_line":"                    if _is_match(value):"},{"line_number":1028,"context_line":"                        msg \u003d (_(\"%s can\u0027t contain 4 byte unicode characters.\")"},{"line_number":1029,"context_line":"                            % key.title())"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_ff98926c","line":1026,"updated":"2015-12-30 11:24:56.000000000","message":"Update to exception name for better understanding about exception being raised.","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"93840319392c61e9fea342100818d9d1a223c4ae","unresolved":false,"context_lines":[{"line_number":1027,"context_line":"                    if _is_match(value):"},{"line_number":1028,"context_line":"                        msg \u003d (_(\"%s can\u0027t contain 4 byte unicode characters.\")"},{"line_number":1029,"context_line":"                            % key.title())"},{"line_number":1030,"context_line":"                        raise exception.Invalid(msg)"},{"line_number":1031,"context_line":""},{"line_number":1032,"context_line":"        for data_dict in [arg for arg in args if isinstance(arg, dict)]:"},{"line_number":1033,"context_line":"            _check_dict(data_dict)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_dfc7ce43","line":1030,"updated":"2015-12-30 11:24:56.000000000","message":"same as above","commit_id":"4e13320539a424ef4aff2f6c89b74b35f529b447"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"e8715c3d1c864319503413090078d7c283188182","unresolved":false,"context_lines":[{"line_number":1012,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":1013,"context_line":""},{"line_number":1014,"context_line":"        def _is_match(some_str):"},{"line_number":1015,"context_line":"            return (isinstance(some_str, unicode) and"},{"line_number":1016,"context_line":"                    REGEX_4BYTE_UNICODE.findall(some_str) !\u003d [])"},{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":"        def _check_dict(data_dict):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_419ed8b9","line":1015,"range":{"start_line":1015,"start_character":41,"end_line":1015,"end_character":48},"updated":"2016-01-06 19:12:49.000000000","message":"unicode is not Python3.4 compatible. This will fail when the below issue is resolved.\n\nUsing six.text_type instead will work. https://pythonhosted.org/six/#six.text_type","commit_id":"87efd2a2ee78a6bd34560834fd650620dc5bf1d4"},{"author":{"_account_id":17017,"name":"Mannu","username":"mannuk","inactive":true},"change_message_id":"4400043fe41da343af3548ec3d5d08dc7f5801bb","unresolved":false,"context_lines":[{"line_number":1012,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":1013,"context_line":""},{"line_number":1014,"context_line":"        def _is_match(some_str):"},{"line_number":1015,"context_line":"            return (isinstance(some_str, unicode) and"},{"line_number":1016,"context_line":"                    REGEX_4BYTE_UNICODE.findall(some_str) !\u003d [])"},{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":"        def _check_dict(data_dict):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_ad5d297b","line":1015,"range":{"start_line":1015,"start_character":41,"end_line":1015,"end_character":48},"in_reply_to":"fa69d971_419ed8b9","updated":"2016-01-07 10:40:16.000000000","message":"Done","commit_id":"87efd2a2ee78a6bd34560834fd650620dc5bf1d4"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"e8715c3d1c864319503413090078d7c283188182","unresolved":false,"context_lines":[{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":"        def _check_dict(data_dict):"},{"line_number":1019,"context_line":"            # a dict of dicts has to be checked recursively"},{"line_number":1020,"context_line":"            for key, value in data_dict.iteritems():"},{"line_number":1021,"context_line":"                if isinstance(value, dict):"},{"line_number":1022,"context_line":"                    _check_dict(value)"},{"line_number":1023,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_3e63c543","line":1020,"range":{"start_line":1020,"start_character":30,"end_line":1020,"end_character":51},"updated":"2016-01-06 19:12:49.000000000","message":"Python3.4 does not support iteritems(). It expects items().","commit_id":"87efd2a2ee78a6bd34560834fd650620dc5bf1d4"},{"author":{"_account_id":17017,"name":"Mannu","username":"mannuk","inactive":true},"change_message_id":"4400043fe41da343af3548ec3d5d08dc7f5801bb","unresolved":false,"context_lines":[{"line_number":1017,"context_line":""},{"line_number":1018,"context_line":"        def _check_dict(data_dict):"},{"line_number":1019,"context_line":"            # a dict of dicts has to be checked recursively"},{"line_number":1020,"context_line":"            for key, value in data_dict.iteritems():"},{"line_number":1021,"context_line":"                if isinstance(value, dict):"},{"line_number":1022,"context_line":"                    _check_dict(value)"},{"line_number":1023,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_4d534d6d","line":1020,"range":{"start_line":1020,"start_character":30,"end_line":1020,"end_character":51},"in_reply_to":"fa69d971_3e63c543","updated":"2016-01-07 10:40:16.000000000","message":"Done","commit_id":"87efd2a2ee78a6bd34560834fd650620dc5bf1d4"},{"author":{"_account_id":14865,"name":"Adriano Freires Rosso","email":"adriano.rosso@fit-tecnologia.org.br","username":"adriano_rosso"},"change_message_id":"e79d82a51da406f8820ba28dee5a7ef79a16ed81","unresolved":false,"context_lines":[{"line_number":1022,"context_line":"                    _check_dict(value)"},{"line_number":1023,"context_line":"                else:"},{"line_number":1024,"context_line":"                    if _is_match(key):"},{"line_number":1025,"context_line":"                        msg \u003d (_(\"Property names %s can\u0027t contain 4 byte \\"},{"line_number":1026,"context_line":"                               unicode.\") % key.title())"},{"line_number":1027,"context_line":"                        raise exception.Invalid(msg)"},{"line_number":1028,"context_line":"                    if _is_match(value):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_5353ee6c","line":1025,"range":{"start_line":1025,"start_character":73,"end_line":1025,"end_character":74},"updated":"2016-01-07 11:30:31.000000000","message":"Try to use parentheses to wrap long lines. Don\u0027t use backslashes.","commit_id":"dc3c7ac184141fb0177a608678a8065b41cdb1bc"}]}
