)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"2e25c55219506c76a4989f1b8346fdac40dc4554","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Violin: resize volume if cloned lun is larger"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"1. In case the new volume is larger than the cloned one,"},{"line_number":10,"context_line":"   resize the cloned volume."},{"line_number":11,"context_line":"2. Add unit test by ddt."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"dab17558_34195123","line":9,"updated":"2016-05-10 08:54:06.000000000","message":"This should say: \"... is larger than the original one\" since the cloned one is the new volume.","commit_id":"7931e8622eb417e46a9747b75ba7b6f504227ccc"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3c2479502f17b93ba754b748f49f8b65e60cdaa1","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Violin: resize volume if cloned lun is larger"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"1. In case the new volume is larger than the cloned one,"},{"line_number":10,"context_line":"   resize the cloned volume."},{"line_number":11,"context_line":"2. Add unit test by ddt."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"dab17558_11aec897","line":9,"in_reply_to":"dab17558_1ed703ee","updated":"2016-05-10 15:30:17.000000000","message":"+1","commit_id":"7931e8622eb417e46a9747b75ba7b6f504227ccc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"34e904b241c65b2ab07707f62b8e6877218cccb7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Violin: resize volume if cloned lun is larger"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"1. In case the new volume is larger than the cloned one,"},{"line_number":10,"context_line":"   resize the cloned volume."},{"line_number":11,"context_line":"2. Add unit test by ddt."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"dab17558_1ed703ee","line":9,"in_reply_to":"dab17558_34195123","updated":"2016-05-10 11:27:08.000000000","message":"Yep, I didn\u0027t register it because in my mind when I read it sounded like \"the copied\" as in the one that was the object of the act of copying (source), in contrast with \"the copy\", the result of the act of copying (new volume).   %-D","commit_id":"7931e8622eb417e46a9747b75ba7b6f504227ccc"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d427e00d4af08e57e1a58f8cdab178a9d86d8dda","unresolved":false,"context_lines":[{"line_number":11,"context_line":"2. Add unit test by ddt."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Iacd9ed354ac927666270cb717722bd14a34ffecd"},{"line_number":14,"context_line":"Closes-Bug: #1554787"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3aaa91ec_b072a547","line":14,"updated":"2016-06-22 19:00:49.000000000","message":"Depends-on: I829c0e6f99fff0ec0bd5366c9d2e79b1b073f0a3\n\nTempest currently does not cover the path touched by this fix. So, we should run this extend test as dependency so we can assure they work for all backends after CIs runs.","commit_id":"e208fc766045121d3c515fbc597bf5e69ab37396"}],"cinder/tests/unit/test_v7000_common.py":[{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"7633fa731458828ac9e64515f96157c54793462e","unresolved":false,"context_lines":[{"line_number":448,"context_line":"        \"\"\"lun full clone to new volume completes successfully.\"\"\""},{"line_number":449,"context_line":"        dest_vol \u003d VOLUME.copy()"},{"line_number":450,"context_line":"        dest_vol[\u0027size\u0027] \u003d 10"},{"line_number":451,"context_line":"        object_id \u003d \u002712345\u0027"},{"line_number":452,"context_line":"        response \u003d {\u0027success\u0027: True,"},{"line_number":453,"context_line":"                    \u0027object_id\u0027: object_id,"},{"line_number":454,"context_line":"                    \u0027msg\u0027: \u0027Copy Snapshot resource successfully\u0027}"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_c6937f4e","line":451,"updated":"2016-03-21 08:31:55.000000000","message":"It is better to use fake_constants.volume_id. Or else it has invalid UUID warnings.\n\nSee https://review.openstack.org/#/c/290541/","commit_id":"048771d9da8c35f5842951322220b04a12c50adb"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"7633fa731458828ac9e64515f96157c54793462e","unresolved":false,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        self.assertIsNone(result)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    def test_create_lun_from_lun_on_a_storage_pool_and_resize(self):"},{"line_number":511,"context_line":"        \"\"\"lun full clone to new volume completes successfully.\"\"\""},{"line_number":512,"context_line":"        dest_vol \u003d VOLUME.copy()"},{"line_number":513,"context_line":"        dest_vol[\u0027size\u0027] \u003d 100"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_0649f78b","line":510,"updated":"2016-03-21 08:31:55.000000000","message":"There are lots of code duplicate in two tests. Can we implement them using ddt?\n\nFor example,\nhttps://github.com/openstack/cinder/blob/master/cinder/tests/unit/api/contrib/test_backups.py#L103","commit_id":"048771d9da8c35f5842951322220b04a12c50adb"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"7633fa731458828ac9e64515f96157c54793462e","unresolved":false,"context_lines":[{"line_number":511,"context_line":"        \"\"\"lun full clone to new volume completes successfully.\"\"\""},{"line_number":512,"context_line":"        dest_vol \u003d VOLUME.copy()"},{"line_number":513,"context_line":"        dest_vol[\u0027size\u0027] \u003d 100"},{"line_number":514,"context_line":"        dest_vol[\u0027volume_type_id\u0027] \u003d \u00271\u0027"},{"line_number":515,"context_line":"        object_id \u003d \u002712345\u0027"},{"line_number":516,"context_line":"        response \u003d {\u0027success\u0027: True,"},{"line_number":517,"context_line":"                    \u0027object_id\u0027: object_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_26351b46","line":514,"updated":"2016-03-21 08:31:55.000000000","message":"Please use fake_constants uuid instead.","commit_id":"048771d9da8c35f5842951322220b04a12c50adb"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"7633fa731458828ac9e64515f96157c54793462e","unresolved":false,"context_lines":[{"line_number":512,"context_line":"        dest_vol \u003d VOLUME.copy()"},{"line_number":513,"context_line":"        dest_vol[\u0027size\u0027] \u003d 100"},{"line_number":514,"context_line":"        dest_vol[\u0027volume_type_id\u0027] \u003d \u00271\u0027"},{"line_number":515,"context_line":"        object_id \u003d \u002712345\u0027"},{"line_number":516,"context_line":"        response \u003d {\u0027success\u0027: True,"},{"line_number":517,"context_line":"                    \u0027object_id\u0027: object_id,"},{"line_number":518,"context_line":"                    \u0027msg\u0027: \u0027Copy Snapshot resource successfully\u0027}"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_46ce4f5b","line":515,"updated":"2016-03-21 08:31:55.000000000","message":"Same above.","commit_id":"048771d9da8c35f5842951322220b04a12c50adb"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"958b7a8e8b12268158c4e3864b4d992773121381","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        self.driver._ensure_snapshot_resource_area \u003d mock.Mock()"},{"line_number":443,"context_line":"        self.driver._wait_for_lun_or_snap_copy \u003d mock.Mock()"},{"line_number":444,"context_line":"        if larger_size_flag:"},{"line_number":445,"context_line":"            self.driver._extend_lun \u003d mock.Mock()"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        result \u003d self.driver._create_lun_from_lun(SRC_VOL, dest_vol)"},{"line_number":448,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa0719c6_fbdfbd66","line":445,"updated":"2016-03-23 11:30:22.000000000","message":"nit: You should always mock it and then check that it wasn\u0027t called in one case and that the call matches expected as you are doing now.","commit_id":"d748bcfb47ae2c0b33e1fee050fb4a077e57e8a0"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d655e9e56c4feb98bfdcb259dac1d264e0242096","unresolved":false,"context_lines":[{"line_number":456,"context_line":"            self.driver._extend_lun.assert_called_with("},{"line_number":457,"context_line":"                dest_vol, dest_vol[\u0027size\u0027])"},{"line_number":458,"context_line":"        else:"},{"line_number":459,"context_line":"            assert not self.driver._extend_lun.called"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"        self.assertIsNone(result)"},{"line_number":462,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_44c215ea","line":459,"updated":"2016-05-11 14:33:23.000000000","message":"Should use self.assertFalse() here to match our usual test conventions.","commit_id":"ceacf09996b87115a2b888e126d3819badacc59b"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6d3cfc5d8cbc83a655f2c51843e8b0bd15bca5fb","unresolved":false,"context_lines":[{"line_number":456,"context_line":"            self.driver._extend_lun.assert_called_with("},{"line_number":457,"context_line":"                dest_vol, dest_vol[\u0027size\u0027])"},{"line_number":458,"context_line":"        else:"},{"line_number":459,"context_line":"            assert not self.driver._extend_lun.called"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"        self.assertIsNone(result)"},{"line_number":462,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_05dd7614","line":459,"in_reply_to":"dab17558_44c215ea","updated":"2016-05-18 09:44:41.000000000","message":"Ooops, I should have caught that.  :-(","commit_id":"ceacf09996b87115a2b888e126d3819badacc59b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d655e9e56c4feb98bfdcb259dac1d264e0242096","unresolved":false,"context_lines":[{"line_number":499,"context_line":"            self.driver._extend_lun.assert_called_with("},{"line_number":500,"context_line":"                dest_vol, dest_vol[\u0027size\u0027])"},{"line_number":501,"context_line":"        else:"},{"line_number":502,"context_line":"            assert not self.driver._extend_lun.called"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        self.assertIsNone(result)"},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_84b87d76","line":502,"updated":"2016-05-11 14:33:23.000000000","message":"Should use self.assertFalse() here.","commit_id":"ceacf09996b87115a2b888e126d3819badacc59b"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"5c6b849602a7f1331641a30ebb60e7aaab700275","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        self.driver._wait_for_lun_or_snap_copy.assert_called_with("},{"line_number":454,"context_line":"            SRC_VOL[\u0027id\u0027], dest_obj_id\u003dobject_id)"},{"line_number":455,"context_line":"        if larger_size_flag:"},{"line_number":456,"context_line":"            self.driver._extend_lun.assert_called_with("},{"line_number":457,"context_line":"                dest_vol, dest_vol[\u0027size\u0027])"},{"line_number":458,"context_line":"        else:"},{"line_number":459,"context_line":"            self.assertFalse(self.driver._extend_lun.called)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_f6cf46b1","line":456,"range":{"start_line":456,"start_character":36,"end_line":456,"end_character":54},"updated":"2016-05-18 10:26:32.000000000","message":"It is better to use assert_called_once_with here.","commit_id":"e208fc766045121d3c515fbc597bf5e69ab37396"}],"cinder/volume/drivers/violin/v7000_common.py":[{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"7633fa731458828ac9e64515f96157c54793462e","unresolved":false,"context_lines":[{"line_number":415,"context_line":"                LOG.exception(_LE(\u0027failes to extend copied lun %s, \u0027"},{"line_number":416,"context_line":"                                  \u0027reverting clone operation\u0027), dest_vol[\u0027id\u0027])"},{"line_number":417,"context_line":"                # remove the copied lun in case resize failed"},{"line_number":418,"context_line":"                self._delete_lun(dest_vol)"},{"line_number":419,"context_line":"                raise"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    def _send_cmd(self, request_func, success_msgs, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_26587bfa","line":418,"updated":"2016-03-21 08:31:55.000000000","message":"I don\u0027t think it is good to delete the lun. Compared with implementations in other drivers, we leave it, and set status of the volume as error.","commit_id":"048771d9da8c35f5842951322220b04a12c50adb"}]}
