)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10213,"name":"Alon Marx","email":"alonma@il.ibm.com","username":"alonmarx"},"change_message_id":"234f3ea3b8d238d2c1891ec63f2880f90eb1862d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Remove the DB access in all CG related operations for"},{"line_number":10,"context_line":"IBM Storwize driver. Input parameters of volumes and"},{"line_number":11,"context_line":"snapshots cannot be assigned to model_update directly."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ifd6b49aa3df39ee8d0175374c6f90ea9a821ed95"},{"line_number":14,"context_line":"Closes-Bug: 1560855"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"dab17558_5a9b9b72","line":11,"range":{"start_line":11,"start_character":10,"end_line":11,"end_character":53},"updated":"2016-05-09 05:38:43.000000000","message":"how about \"are provided to functions from manager\"?","commit_id":"2af2c9764884ff2a62d464f5d7450321a5fc7f82"}],"cinder/tests/unit/test_storwize_svc.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3a1690df7021ffa40ff54c24d02858a47b458407","unresolved":false,"context_lines":[{"line_number":4064,"context_line":"                         model_update[\u0027status\u0027],"},{"line_number":4065,"context_line":"                         \"CG created failed\")"},{"line_number":4066,"context_line":""},{"line_number":4067,"context_line":"        volumes \u003d []"},{"line_number":4068,"context_line":"        # Add volumes to CG"},{"line_number":4069,"context_line":"        volumes.append(self._create_volume(volume_type_id\u003dcg_type[\u0027id\u0027],"},{"line_number":4070,"context_line":"                                           consistencygroup_id\u003dcg[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_ea365c4f","line":4067,"updated":"2016-04-21 09:36:38.000000000","message":"nit: You could just do:\n\n volumes \u003d [\n     self._create_volume(volume_type_id\u003dcg_type[\u0027id\u0027],\n                         consistencygroup_id\u003dcg[\u0027id\u0027])\n     self._create_volume(volume_type_id\u003dcg_type[\u0027id\u0027],\n                         consistencygroup_id\u003dcg[\u0027id\u0027])\n     self._create_volume(volume_type_id\u003dcg_type[\u0027id\u0027],\n                         consistencygroup_id\u003dcg[\u0027id\u0027])\n ]","commit_id":"95f5b6ae22eb1e8125efe226fa9991baccb64303"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"b6f730057e716bf91c02c902a8f9d12c0be4dbf7","unresolved":false,"context_lines":[{"line_number":4064,"context_line":"                         model_update[\u0027status\u0027],"},{"line_number":4065,"context_line":"                         \"CG created failed\")"},{"line_number":4066,"context_line":""},{"line_number":4067,"context_line":"        volumes \u003d []"},{"line_number":4068,"context_line":"        # Add volumes to CG"},{"line_number":4069,"context_line":"        volumes.append(self._create_volume(volume_type_id\u003dcg_type[\u0027id\u0027],"},{"line_number":4070,"context_line":"                                           consistencygroup_id\u003dcg[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_4712de59","line":4067,"in_reply_to":"1a122d0e_ea365c4f","updated":"2016-04-21 13:10:58.000000000","message":"Thanks a lot for your review. It is addressed in patch 5.","commit_id":"95f5b6ae22eb1e8125efe226fa9991baccb64303"}],"cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"5b25d7fcf6f5781f82cf308dfe37ac15966e71f5","unresolved":false,"context_lines":[{"line_number":2902,"context_line":"                self._helpers.delete_vdisk(volume[\u0027name\u0027], True)"},{"line_number":2903,"context_line":"                volume[\u0027status\u0027] \u003d \u0027deleted\u0027"},{"line_number":2904,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":2905,"context_line":"                model_update[\u0027status\u0027] \u003d \\"},{"line_number":2906,"context_line":"                    fields.ConsistencyGroupStatus.ERROR_DELETING"},{"line_number":2907,"context_line":"                LOG.error(_LE(\"Failed to delete the volume %(vol)s of CG. \""},{"line_number":2908,"context_line":"                              \"Exception: %(exception)s.\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_e43eed26","line":2905,"range":{"start_line":2905,"start_character":39,"end_line":2905,"end_character":42},"updated":"2016-03-23 15:00:36.000000000","message":"Can we please use () for the line continuation instead of \\?  Thanks!","commit_id":"9275907044c4dc004b093ae0a5b99a5b075960a8"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"2922c9c0c4093e5802ea8f0947329e6649483e04","unresolved":false,"context_lines":[{"line_number":2902,"context_line":"                self._helpers.delete_vdisk(volume[\u0027name\u0027], True)"},{"line_number":2903,"context_line":"                volume[\u0027status\u0027] \u003d \u0027deleted\u0027"},{"line_number":2904,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":2905,"context_line":"                model_update[\u0027status\u0027] \u003d \\"},{"line_number":2906,"context_line":"                    fields.ConsistencyGroupStatus.ERROR_DELETING"},{"line_number":2907,"context_line":"                LOG.error(_LE(\"Failed to delete the volume %(vol)s of CG. \""},{"line_number":2908,"context_line":"                              \"Exception: %(exception)s.\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_7b637b42","line":2905,"range":{"start_line":2905,"start_character":39,"end_line":2905,"end_character":42},"in_reply_to":"fa0719c6_e43eed26","updated":"2016-03-24 03:26:27.000000000","message":"Thanks a lot. It  is addressed in patch 2.","commit_id":"9275907044c4dc004b093ae0a5b99a5b075960a8"},{"author":{"_account_id":10213,"name":"Alon Marx","email":"alonma@il.ibm.com","username":"alonmarx"},"change_message_id":"1897fa9e02cad269cb2642fa32b4623ed136a810","unresolved":false,"context_lines":[{"line_number":1237,"context_line":"                          \"Exception: %s.\"), err)"},{"line_number":1238,"context_line":"        for snapshot in snapshots:"},{"line_number":1239,"context_line":"            snapshots_model_update.append("},{"line_number":1240,"context_line":"                {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027status\u0027: modelUpdate[\u0027status\u0027]})"},{"line_number":1241,"context_line":""},{"line_number":1242,"context_line":"        return modelUpdate, snapshots_model_update"},{"line_number":1243,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_d4caac6d","line":1240,"range":{"start_line":1240,"start_character":49,"end_line":1240,"end_character":70},"updated":"2016-04-19 04:55:11.000000000","message":"Because model_update uses ConsistencyGroupStatus and this is Volume status (which has no enumeration yet), better use in this case the status string instead of the enumeration","commit_id":"5fe4e8545c5f7209bde3dc58b4d75a1bc3e1c84d"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"1a9b0c678c402412bdf27b1de0d7d52fb3914b72","unresolved":false,"context_lines":[{"line_number":1237,"context_line":"                          \"Exception: %s.\"), err)"},{"line_number":1238,"context_line":"        for snapshot in snapshots:"},{"line_number":1239,"context_line":"            snapshots_model_update.append("},{"line_number":1240,"context_line":"                {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027status\u0027: modelUpdate[\u0027status\u0027]})"},{"line_number":1241,"context_line":""},{"line_number":1242,"context_line":"        return modelUpdate, snapshots_model_update"},{"line_number":1243,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_1a744bfb","line":1240,"range":{"start_line":1240,"start_character":49,"end_line":1240,"end_character":70},"in_reply_to":"1a122d0e_d4caac6d","updated":"2016-04-19 06:42:44.000000000","message":"Hi, Alon, thanks a lot for your review. It is addressed in new patch 3","commit_id":"5fe4e8545c5f7209bde3dc58b4d75a1bc3e1c84d"},{"author":{"_account_id":10213,"name":"Alon Marx","email":"alonma@il.ibm.com","username":"alonmarx"},"change_message_id":"1897fa9e02cad269cb2642fa32b4623ed136a810","unresolved":false,"context_lines":[{"line_number":1243,"context_line":""},{"line_number":1244,"context_line":"    def delete_consistgrp_snapshots(self, fc_consistgrp, snapshots):"},{"line_number":1245,"context_line":"        \"\"\"Delete flashcopy maps and consistent group.\"\"\""},{"line_number":1246,"context_line":"        modelUpdate \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.DELETED}"},{"line_number":1247,"context_line":"        snapshots_model_update \u003d []"},{"line_number":1248,"context_line":""},{"line_number":1249,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_14eee4eb","line":1246,"range":{"start_line":1246,"start_character":8,"end_line":1246,"end_character":19},"updated":"2016-04-19 04:55:11.000000000","message":"A small issue and not related to this specific change, but it would be nice to be consistent with modelUpdate vs. model_update between functions","commit_id":"5fe4e8545c5f7209bde3dc58b4d75a1bc3e1c84d"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"1a9b0c678c402412bdf27b1de0d7d52fb3914b72","unresolved":false,"context_lines":[{"line_number":1243,"context_line":""},{"line_number":1244,"context_line":"    def delete_consistgrp_snapshots(self, fc_consistgrp, snapshots):"},{"line_number":1245,"context_line":"        \"\"\"Delete flashcopy maps and consistent group.\"\"\""},{"line_number":1246,"context_line":"        modelUpdate \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.DELETED}"},{"line_number":1247,"context_line":"        snapshots_model_update \u003d []"},{"line_number":1248,"context_line":""},{"line_number":1249,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_7a61ff38","line":1246,"range":{"start_line":1246,"start_character":8,"end_line":1246,"end_character":19},"in_reply_to":"1a122d0e_14eee4eb","updated":"2016-04-19 06:42:44.000000000","message":"Hi, Alon, thanks a lot for your review. It is addressed in new patch 3.","commit_id":"5fe4e8545c5f7209bde3dc58b4d75a1bc3e1c84d"},{"author":{"_account_id":10213,"name":"Alon Marx","email":"alonma@il.ibm.com","username":"alonmarx"},"change_message_id":"1897fa9e02cad269cb2642fa32b4623ed136a810","unresolved":false,"context_lines":[{"line_number":1258,"context_line":""},{"line_number":1259,"context_line":"        for snapshot in snapshots:"},{"line_number":1260,"context_line":"            snapshots_model_update.append("},{"line_number":1261,"context_line":"                {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027status\u0027: modelUpdate[\u0027status\u0027]})"},{"line_number":1262,"context_line":""},{"line_number":1263,"context_line":"        return modelUpdate, snapshots_model_update"},{"line_number":1264,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_34f320d8","line":1261,"range":{"start_line":1261,"start_character":49,"end_line":1261,"end_character":70},"updated":"2016-04-19 04:55:11.000000000","message":"Because model_update uses ConsistencyGroupStatus and this is Volume status (which has no enumeration yet), better use in this case the status string instead of the enumeration","commit_id":"5fe4e8545c5f7209bde3dc58b4d75a1bc3e1c84d"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"1a9b0c678c402412bdf27b1de0d7d52fb3914b72","unresolved":false,"context_lines":[{"line_number":1258,"context_line":""},{"line_number":1259,"context_line":"        for snapshot in snapshots:"},{"line_number":1260,"context_line":"            snapshots_model_update.append("},{"line_number":1261,"context_line":"                {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027status\u0027: modelUpdate[\u0027status\u0027]})"},{"line_number":1262,"context_line":""},{"line_number":1263,"context_line":"        return modelUpdate, snapshots_model_update"},{"line_number":1264,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_9a5e9b74","line":1261,"range":{"start_line":1261,"start_character":49,"end_line":1261,"end_character":70},"in_reply_to":"1a122d0e_34f320d8","updated":"2016-04-19 06:42:44.000000000","message":"Hi, Alon, thanks a lot for your review. It is addressed in new patch 3.","commit_id":"5fe4e8545c5f7209bde3dc58b4d75a1bc3e1c84d"},{"author":{"_account_id":10213,"name":"Alon Marx","email":"alonma@il.ibm.com","username":"alonmarx"},"change_message_id":"1897fa9e02cad269cb2642fa32b4623ed136a810","unresolved":false,"context_lines":[{"line_number":2908,"context_line":"                              \"Exception: %(exception)s.\"),"},{"line_number":2909,"context_line":"                          {\u0027vol\u0027: volume[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":2910,"context_line":"            volumes_model_update.append("},{"line_number":2911,"context_line":"                {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: model_update[\u0027status\u0027]})"},{"line_number":2912,"context_line":""},{"line_number":2913,"context_line":"        return model_update, volumes_model_update"},{"line_number":2914,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_f44c0844","line":2911,"range":{"start_line":2911,"start_character":47,"end_line":2911,"end_character":71},"updated":"2016-04-19 04:55:11.000000000","message":"Because model_update uses ConsistencyGroupStatus and this is Volume status (which has no enumeration yet), better use in this case the status string instead of the enumeration","commit_id":"5fe4e8545c5f7209bde3dc58b4d75a1bc3e1c84d"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"1a9b0c678c402412bdf27b1de0d7d52fb3914b72","unresolved":false,"context_lines":[{"line_number":2908,"context_line":"                              \"Exception: %(exception)s.\"),"},{"line_number":2909,"context_line":"                          {\u0027vol\u0027: volume[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":2910,"context_line":"            volumes_model_update.append("},{"line_number":2911,"context_line":"                {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: model_update[\u0027status\u0027]})"},{"line_number":2912,"context_line":""},{"line_number":2913,"context_line":"        return model_update, volumes_model_update"},{"line_number":2914,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_9ad5fbba","line":2911,"range":{"start_line":2911,"start_character":47,"end_line":2911,"end_character":71},"in_reply_to":"1a122d0e_f44c0844","updated":"2016-04-19 06:42:44.000000000","message":"Hi, Alon, thanks a lot for your review. It is addressed in new patch 3.","commit_id":"5fe4e8545c5f7209bde3dc58b4d75a1bc3e1c84d"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3a1690df7021ffa40ff54c24d02858a47b458407","unresolved":false,"context_lines":[{"line_number":1237,"context_line":"            self.delete_fc_consistgrp(fc_consistgrp)"},{"line_number":1238,"context_line":"            LOG.error(_LE(\"Failed to create CGSnapshot. \""},{"line_number":1239,"context_line":"                          \"Exception: %s.\"), err)"},{"line_number":1240,"context_line":"            for snapshot in snapshots:"},{"line_number":1241,"context_line":"                snapshots_model_update.append("},{"line_number":1242,"context_line":"                    {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027status\u0027: \u0027error\u0027})"},{"line_number":1243,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_ea83fc00","line":1240,"updated":"2016-04-21 09:36:38.000000000","message":"-1: This doesn\u0027t seem right, as you could be adding multiple updates for the same snapshot model if the error didn\u0027t happen on the first entry.  Shouldn\u0027t you clear the snapshots_model_update?\n\n snapshots_model_update \u003d [{\u0027id\u0027: snap[\u0027id\u0027], \u0027status\u0027: \u0027error\u0027},\n                           for snap in snapshots]","commit_id":"95f5b6ae22eb1e8125efe226fa9991baccb64303"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"3a1690df7021ffa40ff54c24d02858a47b458407","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"                          \"CGSnapshot. Exception: %(exception)s.\"),"},{"line_number":1262,"context_line":"                      {\u0027snap\u0027: snapshot[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"            for snapshot in snapshots:"},{"line_number":1265,"context_line":"                snapshots_model_update.append("},{"line_number":1266,"context_line":"                    {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027status\u0027: \u0027error_deleting\u0027})"},{"line_number":1267,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_8aac088d","line":1264,"updated":"2016-04-21 09:36:38.000000000","message":"-1: ditto","commit_id":"95f5b6ae22eb1e8125efe226fa9991baccb64303"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"b6f730057e716bf91c02c902a8f9d12c0be4dbf7","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"                          \"CGSnapshot. Exception: %(exception)s.\"),"},{"line_number":1262,"context_line":"                      {\u0027snap\u0027: snapshot[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"            for snapshot in snapshots:"},{"line_number":1265,"context_line":"                snapshots_model_update.append("},{"line_number":1266,"context_line":"                    {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027status\u0027: \u0027error_deleting\u0027})"},{"line_number":1267,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_e70cca3d","line":1264,"in_reply_to":"1a122d0e_8aac088d","updated":"2016-04-21 13:10:58.000000000","message":"Thanks a lot for your review. It is addressed in patch 5.","commit_id":"95f5b6ae22eb1e8125efe226fa9991baccb64303"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2f53d528d517f1fc72074b389be62bed4f9ece13","unresolved":false,"context_lines":[{"line_number":1236,"context_line":"            LOG.error(_LE(\"Failed to create CGSnapshot. \""},{"line_number":1237,"context_line":"                          \"Exception: %s.\"), err)"},{"line_number":1238,"context_line":""},{"line_number":1239,"context_line":"        for snapshot in snapshots:"},{"line_number":1240,"context_line":"            snapshots_model_update.append("},{"line_number":1241,"context_line":"                {\u0027id\u0027: snapshot[\u0027id\u0027],"},{"line_number":1242,"context_line":"                 \u0027status\u0027: \u0027available\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_0c51fd62","line":1239,"updated":"2016-04-22 10:22:24.000000000","message":"Nice change!","commit_id":"de0f9dd1ea8ee863d5d11137277ffc5a50782269"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2f53d528d517f1fc72074b389be62bed4f9ece13","unresolved":false,"context_lines":[{"line_number":1239,"context_line":"        for snapshot in snapshots:"},{"line_number":1240,"context_line":"            snapshots_model_update.append("},{"line_number":1241,"context_line":"                {\u0027id\u0027: snapshot[\u0027id\u0027],"},{"line_number":1242,"context_line":"                 \u0027status\u0027: \u0027available\u0027"},{"line_number":1243,"context_line":"                 if model_update[\u0027status\u0027] \u003d\u003d"},{"line_number":1244,"context_line":"                    fields.ConsistencyGroupStatus.AVAILABLE"},{"line_number":1245,"context_line":"                 else \u0027error\u0027})"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_4ce2d5a0","line":1242,"updated":"2016-04-22 10:22:24.000000000","message":"nit: Since the status is going to be the same for all snapshots there\u0027s no real need to do if on each iteration, we could create a status variable before the for loop.  It would also increase the readability.","commit_id":"de0f9dd1ea8ee863d5d11137277ffc5a50782269"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9320f3e3e2f4c26f03aedd13b3e4847367744fde","unresolved":false,"context_lines":[{"line_number":1239,"context_line":"        for snapshot in snapshots:"},{"line_number":1240,"context_line":"            snapshots_model_update.append("},{"line_number":1241,"context_line":"                {\u0027id\u0027: snapshot[\u0027id\u0027],"},{"line_number":1242,"context_line":"                 \u0027status\u0027: \u0027available\u0027"},{"line_number":1243,"context_line":"                 if model_update[\u0027status\u0027] \u003d\u003d"},{"line_number":1244,"context_line":"                    fields.ConsistencyGroupStatus.AVAILABLE"},{"line_number":1245,"context_line":"                 else \u0027error\u0027})"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_a0866eb6","line":1242,"in_reply_to":"1a122d0e_4ce2d5a0","updated":"2016-04-28 15:10:41.000000000","message":"Hi, Gorka Thanks a lot for your review. It is addressed in patch 6.","commit_id":"de0f9dd1ea8ee863d5d11137277ffc5a50782269"},{"author":{"_account_id":10213,"name":"Alon Marx","email":"alonma@il.ibm.com","username":"alonmarx"},"change_message_id":"aeccb632a6ba53783219a8a9e33610465b6f8fa0","unresolved":false,"context_lines":[{"line_number":1265,"context_line":"            snapshots_model_update.append("},{"line_number":1266,"context_line":"                {\u0027id\u0027: snapshot[\u0027id\u0027],"},{"line_number":1267,"context_line":"                 \u0027status\u0027: \u0027deleted\u0027"},{"line_number":1268,"context_line":"                 if model_update[\u0027status\u0027] \u003d\u003d"},{"line_number":1269,"context_line":"                    fields.ConsistencyGroupStatus.DELETED"},{"line_number":1270,"context_line":"                 else \u0027error_deleting\u0027})"},{"line_number":1271,"context_line":""},{"line_number":1272,"context_line":"        return model_update, snapshots_model_update"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_1272af7c","line":1269,"range":{"start_line":1268,"start_character":17,"end_line":1269,"end_character":57},"updated":"2016-04-22 12:49:44.000000000","message":"Same comment Gorka made earlier - no need to check this in a loop, all snapshots will have the same state","commit_id":"de0f9dd1ea8ee863d5d11137277ffc5a50782269"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"9320f3e3e2f4c26f03aedd13b3e4847367744fde","unresolved":false,"context_lines":[{"line_number":1265,"context_line":"            snapshots_model_update.append("},{"line_number":1266,"context_line":"                {\u0027id\u0027: snapshot[\u0027id\u0027],"},{"line_number":1267,"context_line":"                 \u0027status\u0027: \u0027deleted\u0027"},{"line_number":1268,"context_line":"                 if model_update[\u0027status\u0027] \u003d\u003d"},{"line_number":1269,"context_line":"                    fields.ConsistencyGroupStatus.DELETED"},{"line_number":1270,"context_line":"                 else \u0027error_deleting\u0027})"},{"line_number":1271,"context_line":""},{"line_number":1272,"context_line":"        return model_update, snapshots_model_update"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_80b41282","line":1269,"range":{"start_line":1268,"start_character":17,"end_line":1269,"end_character":57},"in_reply_to":"1a122d0e_1272af7c","updated":"2016-04-28 15:10:41.000000000","message":"Hi, Alone, Thanks a lot for your review. It is addressed in patch 6.","commit_id":"de0f9dd1ea8ee863d5d11137277ffc5a50782269"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"daec83dc485d1c3618b58d589e287c6ae00a40dc","unresolved":false,"context_lines":[{"line_number":1236,"context_line":"            LOG.error(_LE(\"Failed to create CGSnapshot. \""},{"line_number":1237,"context_line":"                          \"Exception: %s.\"), err)"},{"line_number":1238,"context_line":""},{"line_number":1239,"context_line":"        snapshot_status \u003d (\u0027available\u0027"},{"line_number":1240,"context_line":"                           if model_update[\u0027status\u0027] \u003d\u003d"},{"line_number":1241,"context_line":"                           fields.ConsistencyGroupStatus.AVAILABLE"},{"line_number":1242,"context_line":"                           else \u0027error\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_3c0eca34","line":1239,"updated":"2016-05-06 11:51:19.000000000","message":"?: Am I mistaken to think that snapshot_status will have the same value as model_update[\u0027status\u0027]?  Because we are setting values on L1215 and L1233 and they cannot have any other value.","commit_id":"a954abf4cbd3527fb6979f9c727aa2c8872478a8"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"1f3d15a77ef3b406d5c9102d1e268dc32a5d5df9","unresolved":false,"context_lines":[{"line_number":1236,"context_line":"            LOG.error(_LE(\"Failed to create CGSnapshot. \""},{"line_number":1237,"context_line":"                          \"Exception: %s.\"), err)"},{"line_number":1238,"context_line":""},{"line_number":1239,"context_line":"        snapshot_status \u003d (\u0027available\u0027"},{"line_number":1240,"context_line":"                           if model_update[\u0027status\u0027] \u003d\u003d"},{"line_number":1241,"context_line":"                           fields.ConsistencyGroupStatus.AVAILABLE"},{"line_number":1242,"context_line":"                           else \u0027error\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_1778ce2a","line":1239,"in_reply_to":"dab17558_1dc2c433","updated":"2016-05-09 04:31:39.000000000","message":"Hi， Gorka and xing Thanks a lot for your review. Yes, the initial change used model_update[\u0027status\u0027] for snapshot_status directly , but some comments was mentioned that model_update is used for CG and this is Volume/Snapshot status, so I change it to this way. I change it back again.","commit_id":"a954abf4cbd3527fb6979f9c727aa2c8872478a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9b3e9c05b2bcfb610d4b59f32e26b5c70889bcda","unresolved":false,"context_lines":[{"line_number":1236,"context_line":"            LOG.error(_LE(\"Failed to create CGSnapshot. \""},{"line_number":1237,"context_line":"                          \"Exception: %s.\"), err)"},{"line_number":1238,"context_line":""},{"line_number":1239,"context_line":"        snapshot_status \u003d (\u0027available\u0027"},{"line_number":1240,"context_line":"                           if model_update[\u0027status\u0027] \u003d\u003d"},{"line_number":1241,"context_line":"                           fields.ConsistencyGroupStatus.AVAILABLE"},{"line_number":1242,"context_line":"                           else \u0027error\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_1dc2c433","line":1239,"in_reply_to":"dab17558_3c0eca34","updated":"2016-05-07 02:57:39.000000000","message":"Gorka is right. Line 1239-1242 can be simplified to:\n\nsnapshot_status \u003d model_update[\u0027status\u0027]","commit_id":"a954abf4cbd3527fb6979f9c727aa2c8872478a8"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"daec83dc485d1c3618b58d589e287c6ae00a40dc","unresolved":false,"context_lines":[{"line_number":1262,"context_line":"                          \"CGSnapshot. Exception: %(exception)s.\"),"},{"line_number":1263,"context_line":"                      {\u0027snap\u0027: snapshot[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":1264,"context_line":""},{"line_number":1265,"context_line":"        snapshot_status \u003d (\u0027deleted\u0027"},{"line_number":1266,"context_line":"                           if model_update[\u0027status\u0027] \u003d\u003d"},{"line_number":1267,"context_line":"                           fields.ConsistencyGroupStatus.DELETED"},{"line_number":1268,"context_line":"                           else \u0027error_deleting\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_fc2a827d","line":1265,"updated":"2016-05-06 11:51:19.000000000","message":"?: Same here","commit_id":"a954abf4cbd3527fb6979f9c727aa2c8872478a8"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"1f3d15a77ef3b406d5c9102d1e268dc32a5d5df9","unresolved":false,"context_lines":[{"line_number":1262,"context_line":"                          \"CGSnapshot. Exception: %(exception)s.\"),"},{"line_number":1263,"context_line":"                      {\u0027snap\u0027: snapshot[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":1264,"context_line":""},{"line_number":1265,"context_line":"        snapshot_status \u003d (\u0027deleted\u0027"},{"line_number":1266,"context_line":"                           if model_update[\u0027status\u0027] \u003d\u003d"},{"line_number":1267,"context_line":"                           fields.ConsistencyGroupStatus.DELETED"},{"line_number":1268,"context_line":"                           else \u0027error_deleting\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_5772564a","line":1265,"in_reply_to":"dab17558_dd3cbc31","updated":"2016-05-09 04:31:39.000000000","message":"Hi， Gorka and xing Thanks a lot for your review. It is addressed in new patch.","commit_id":"a954abf4cbd3527fb6979f9c727aa2c8872478a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9b3e9c05b2bcfb610d4b59f32e26b5c70889bcda","unresolved":false,"context_lines":[{"line_number":1262,"context_line":"                          \"CGSnapshot. Exception: %(exception)s.\"),"},{"line_number":1263,"context_line":"                      {\u0027snap\u0027: snapshot[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":1264,"context_line":""},{"line_number":1265,"context_line":"        snapshot_status \u003d (\u0027deleted\u0027"},{"line_number":1266,"context_line":"                           if model_update[\u0027status\u0027] \u003d\u003d"},{"line_number":1267,"context_line":"                           fields.ConsistencyGroupStatus.DELETED"},{"line_number":1268,"context_line":"                           else \u0027error_deleting\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_dd3cbc31","line":1265,"in_reply_to":"dab17558_fc2a827d","updated":"2016-05-07 02:57:39.000000000","message":"Yes.","commit_id":"a954abf4cbd3527fb6979f9c727aa2c8872478a8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9b3e9c05b2bcfb610d4b59f32e26b5c70889bcda","unresolved":false,"context_lines":[{"line_number":2913,"context_line":"                self._helpers.delete_vdisk(volume[\u0027name\u0027], True)"},{"line_number":2914,"context_line":"                volumes_model_update.append("},{"line_number":2915,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: \u0027deleted\u0027})"},{"line_number":2916,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":2917,"context_line":"                model_update[\u0027status\u0027] \u003d ("},{"line_number":2918,"context_line":"                    fields.ConsistencyGroupStatus.ERROR_DELETING)"},{"line_number":2919,"context_line":"                LOG.error(_LE(\"Failed to delete the volume %(vol)s of CG. \""}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_fd6d4033","line":2916,"updated":"2016-05-07 02:57:39.000000000","message":"Better to still add this condition so we don\u0027t keep assigning the status:\n\nif model_update[\u0027status\u0027] !\u003d fields.ConsistencyGroupStatus.ERROR_DELETING:","commit_id":"a954abf4cbd3527fb6979f9c727aa2c8872478a8"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"1f3d15a77ef3b406d5c9102d1e268dc32a5d5df9","unresolved":false,"context_lines":[{"line_number":2913,"context_line":"                self._helpers.delete_vdisk(volume[\u0027name\u0027], True)"},{"line_number":2914,"context_line":"                volumes_model_update.append("},{"line_number":2915,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: \u0027deleted\u0027})"},{"line_number":2916,"context_line":"            except exception.VolumeBackendAPIException as err:"},{"line_number":2917,"context_line":"                model_update[\u0027status\u0027] \u003d ("},{"line_number":2918,"context_line":"                    fields.ConsistencyGroupStatus.ERROR_DELETING)"},{"line_number":2919,"context_line":"                LOG.error(_LE(\"Failed to delete the volume %(vol)s of CG. \""}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_9792fe49","line":2916,"in_reply_to":"dab17558_fd6d4033","updated":"2016-05-09 04:31:39.000000000","message":"Xing Thanks a lot for your review. It is addressed in new patch.","commit_id":"a954abf4cbd3527fb6979f9c727aa2c8872478a8"},{"author":{"_account_id":10213,"name":"Alon Marx","email":"alonma@il.ibm.com","username":"alonmarx"},"change_message_id":"234f3ea3b8d238d2c1891ec63f2880f90eb1862d","unresolved":false,"context_lines":[{"line_number":1213,"context_line":"    def run_consistgrp_snapshots(self, fc_consistgrp, snapshots, state,"},{"line_number":1214,"context_line":"                                 config, timeout):"},{"line_number":1215,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.AVAILABLE}"},{"line_number":1216,"context_line":"        snapshots_model_update \u003d []"},{"line_number":1217,"context_line":"        try:"},{"line_number":1218,"context_line":"            for snapshot in snapshots:"},{"line_number":1219,"context_line":"                opts \u003d self.get_vdisk_params(config, state,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_5ac0bb2a","line":1216,"range":{"start_line":1216,"start_character":8,"end_line":1216,"end_character":35},"updated":"2016-05-09 05:38:43.000000000","message":"A minor issue that should not delay this commit:\nMoving snapshots_model_update near the loop - where it is actually used - would look better. This applies to other places in the code as well.","commit_id":"2af2c9764884ff2a62d464f5d7450321a5fc7f82"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"b8f267d73c663a2976a88924fd99f505af2452fd","unresolved":false,"context_lines":[{"line_number":1213,"context_line":"    def run_consistgrp_snapshots(self, fc_consistgrp, snapshots, state,"},{"line_number":1214,"context_line":"                                 config, timeout):"},{"line_number":1215,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.AVAILABLE}"},{"line_number":1216,"context_line":"        snapshots_model_update \u003d []"},{"line_number":1217,"context_line":"        try:"},{"line_number":1218,"context_line":"            for snapshot in snapshots:"},{"line_number":1219,"context_line":"                opts \u003d self.get_vdisk_params(config, state,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_87b29a04","line":1216,"range":{"start_line":1216,"start_character":8,"end_line":1216,"end_character":35},"in_reply_to":"dab17558_5ac0bb2a","updated":"2016-05-10 06:56:56.000000000","message":"Hi, Alon. Thanks a lot for your review. Yes, Agree with u. Update this minor issue if new patch is submitted.","commit_id":"2af2c9764884ff2a62d464f5d7450321a5fc7f82"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4381a7b6f3441e7b1f00b828def71c5645250ca0","unresolved":false,"context_lines":[{"line_number":2910,"context_line":"                              \"Exception: %(exception)s.\"),"},{"line_number":2911,"context_line":"                          {\u0027vol\u0027: volume[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":2912,"context_line":"            volumes_model_update.append("},{"line_number":2913,"context_line":"                {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: model_update[\u0027status\u0027]})"},{"line_number":2914,"context_line":""},{"line_number":2915,"context_line":"        return model_update, volumes_model_update"},{"line_number":2916,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_8ee12e01","line":2913,"updated":"2016-05-09 16:20:31.000000000","message":"-1: If you do this you\u0027ll be setting all volumes to ERROR_DELETING once one is deleted, which would be wrong.  You can either leave it as it was before or move L2901 to L2904","commit_id":"2af2c9764884ff2a62d464f5d7450321a5fc7f82"},{"author":{"_account_id":17045,"name":"xiaoqin","email":"xiaoqin.li@hotmail.com","username":"xiaoqin"},"change_message_id":"b8f267d73c663a2976a88924fd99f505af2452fd","unresolved":false,"context_lines":[{"line_number":2910,"context_line":"                              \"Exception: %(exception)s.\"),"},{"line_number":2911,"context_line":"                          {\u0027vol\u0027: volume[\u0027name\u0027], \u0027exception\u0027: err})"},{"line_number":2912,"context_line":"            volumes_model_update.append("},{"line_number":2913,"context_line":"                {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: model_update[\u0027status\u0027]})"},{"line_number":2914,"context_line":""},{"line_number":2915,"context_line":"        return model_update, volumes_model_update"},{"line_number":2916,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_07f06ac8","line":2913,"in_reply_to":"dab17558_8ee12e01","updated":"2016-05-10 06:56:56.000000000","message":"Hi, Gorka. Yes Thanks a lot for your review. It is addressed in new patch.","commit_id":"2af2c9764884ff2a62d464f5d7450321a5fc7f82"}]}
