)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14532,"name":"Gerald McBrearty","email":"gfm@us.ibm.com","username":"gfm"},"change_message_id":"a201b4f4fb1070598c9b592a706b7ecf6946f802","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Carl Pecinovsky \u003ccsky@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-01-15 13:15:08 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Use passed volume names for storwize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"For the storwize driver, update_migrated_volume() impl, the"},{"line_number":10,"context_line":"original and temporary volume names were generated from a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f96bb07_8fe2b000","line":7,"updated":"2018-01-15 21:28:19.000000000","message":"Please put the driver at the beginning of the title.\n\n\"Storwize: Use passed in volume names\"","commit_id":"f065c52100ff594dfd0f7574e4b2d9b0b6051c78"}],"cinder/tests/unit/volume/drivers/ibm/test_storwize_svc.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"f841aff13fb1200cfd30854e5f4a9ae8344f02fc","unresolved":false,"context_lines":[{"line_number":5927,"context_line":"        rename_vdisk.reset_mock()"},{"line_number":5928,"context_line":"        rename_vdisk.side_effect \u003d None"},{"line_number":5929,"context_line":""},{"line_number":5930,"context_line":"        class MockVol(dict):"},{"line_number":5931,"context_line":"            def __getattr__(self, attr):"},{"line_number":5932,"context_line":"                return self.get(attr, None)"},{"line_number":5933,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_97e0c998","line":5930,"updated":"2018-01-22 13:57:56.000000000","message":"Please, use collections.defaultdict instead of the custom object.","commit_id":"22b73784ae4463b335456902c3cbf40acdc6e263"},{"author":{"_account_id":12802,"name":"Carl Pecinovsky","email":"csky@us.ibm.com","username":"carl-sky"},"change_message_id":"44eb78460914dbd8b1433c5c5eba457bf8f715a5","unresolved":false,"context_lines":[{"line_number":5927,"context_line":"        rename_vdisk.reset_mock()"},{"line_number":5928,"context_line":"        rename_vdisk.side_effect \u003d None"},{"line_number":5929,"context_line":""},{"line_number":5930,"context_line":"        class MockVol(dict):"},{"line_number":5931,"context_line":"            def __getattr__(self, attr):"},{"line_number":5932,"context_line":"                return self.get(attr, None)"},{"line_number":5933,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_eb133265","line":5930,"in_reply_to":"7f96bb07_97e0c998","updated":"2018-01-23 21:28:46.000000000","message":"The problem with defaultdict is that it does not allow dot (.id) notation like this does. The problem with MagicMock is that won\u0027t allow \u0027id\u0027 to be overridden.\nI could have MockVol inherit from defaultdict rather than dict  so that it has default values. And construct like:\n\nvol1 \u003d MockVol(lambda: MagicMock())\nvol1[\u0027name\u0027] \u003d \u0027new-vol-name\u0027","commit_id":"22b73784ae4463b335456902c3cbf40acdc6e263"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"e4c911a9b4954ea7847e4481606aa1a14af08c18","unresolved":false,"context_lines":[{"line_number":5927,"context_line":"        rename_vdisk.reset_mock()"},{"line_number":5928,"context_line":"        rename_vdisk.side_effect \u003d None"},{"line_number":5929,"context_line":""},{"line_number":5930,"context_line":"        class MockVol(dict):"},{"line_number":5931,"context_line":"            def __getattr__(self, attr):"},{"line_number":5932,"context_line":"                return self.get(attr, None)"},{"line_number":5933,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_feefb484","line":5930,"in_reply_to":"7f96bb07_eb133265","updated":"2018-01-25 19:41:02.000000000","message":"I just wrote something similar for another test to solve the same problem.  It would be nice to come up with a standard way to do this and add it to cinder/test.py.\n\n    https://git.openstack.org/cgit/openstack/cinder/tree/cinder/tests/unit/volume/drivers/test_rbd.py?id\u003dfcb45b439ba#n2039","commit_id":"22b73784ae4463b335456902c3cbf40acdc6e263"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py":[{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"afca0da5b611cc130009c52abbffe74df68454cd","unresolved":false,"context_lines":[{"line_number":4538,"context_line":"        :param original_volume_status: The status of the original volume"},{"line_number":4539,"context_line":"        :returns: model_update to update DB with any needed changes"},{"line_number":4540,"context_line":"        \"\"\""},{"line_number":4541,"context_line":"        current_name \u003d new_volume[\u0027name\u0027]"},{"line_number":4542,"context_line":"        original_volume_name \u003d volume[\u0027name\u0027]"},{"line_number":4543,"context_line":"        LOG.debug(\"Attempt rename of %(cur)s to original name %(orig)s\","},{"line_number":4544,"context_line":"                  dict(cur\u003dcurrent_name, orig\u003doriginal_volume_name))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_d94c02a0","line":4541,"range":{"start_line":4541,"start_character":23,"end_line":4541,"end_character":41},"updated":"2018-01-16 02:10:13.000000000","message":"new_volume[\u0027name\u0027] -\u003e new_volume.name","commit_id":"f065c52100ff594dfd0f7574e4b2d9b0b6051c78"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"afca0da5b611cc130009c52abbffe74df68454cd","unresolved":false,"context_lines":[{"line_number":4539,"context_line":"        :returns: model_update to update DB with any needed changes"},{"line_number":4540,"context_line":"        \"\"\""},{"line_number":4541,"context_line":"        current_name \u003d new_volume[\u0027name\u0027]"},{"line_number":4542,"context_line":"        original_volume_name \u003d volume[\u0027name\u0027]"},{"line_number":4543,"context_line":"        LOG.debug(\"Attempt rename of %(cur)s to original name %(orig)s\","},{"line_number":4544,"context_line":"                  dict(cur\u003dcurrent_name, orig\u003doriginal_volume_name))"},{"line_number":4545,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_996d1a06","line":4542,"range":{"start_line":4542,"start_character":8,"end_line":4542,"end_character":45},"updated":"2018-01-16 02:10:13.000000000","message":"volume[\u0027name\u0027] -\u003e volume.name","commit_id":"f065c52100ff594dfd0f7574e4b2d9b0b6051c78"}]}
