)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5b800c6930ab3df0a09951b81bac8a95162de9f3","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"CG methods are moved to the 7-mode block driver. Announcement was made"},{"line_number":13,"context_line":"in a previous release for the removal of the NetApp 7-mode drivers."},{"line_number":14,"context_line":"Genric groups will only be implemented for the NetApp cDOT drivers."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I8290734817d171f6797c88d0a0d1a21f8b5789db"},{"line_number":17,"context_line":"Implements: blueprint netapp-add-generic-group-support-cdot"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfeb2761_8e6095d0","line":14,"updated":"2017-03-31 21:41:24.000000000","message":"Please add a release note for this info.","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"dc089427f2fe53a593470d5cfbae31d6c21c096f","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"CG methods are moved to the 7-mode block driver. Announcement was made"},{"line_number":13,"context_line":"in a previous release for the removal of the NetApp 7-mode drivers."},{"line_number":14,"context_line":"Genric groups will only be implemented for the NetApp cDOT drivers."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I8290734817d171f6797c88d0a0d1a21f8b5789db"},{"line_number":17,"context_line":"Implements: blueprint netapp-add-generic-group-support-cdot"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfeb2761_0f3fadd6","line":14,"in_reply_to":"dfeb2761_8e6095d0","updated":"2017-04-03 18:57:39.000000000","message":"Done","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"60e3f1c79d9c57b6ac8e739b714e6df0d48e6998","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"CG methods are moved to the 7-mode block driver. Announcement was made"},{"line_number":13,"context_line":"in a previous release for the removal of the NetApp 7-mode drivers."},{"line_number":14,"context_line":"Genric groups will only be implemented for the NetApp cDOT drivers."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I8290734817d171f6797c88d0a0d1a21f8b5789db"},{"line_number":17,"context_line":"Implements: blueprint netapp-add-generic-group-support-cdot"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1f1a1f67_b8f3b673","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":6},"updated":"2017-07-20 19:06:58.000000000","message":"nit: Generic","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"fa8eb4dffa6eeecb4d531b7926f1ab53d86d997a","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"CG methods are moved to the 7-mode block driver. Announcement was made"},{"line_number":13,"context_line":"in a previous release for the removal of the NetApp 7-mode drivers."},{"line_number":14,"context_line":"Genric groups will only be implemented for the NetApp cDOT drivers."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I8290734817d171f6797c88d0a0d1a21f8b5789db"},{"line_number":17,"context_line":"Implements: blueprint netapp-add-generic-group-support-cdot"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1f1a1f67_776f6c92","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":6},"in_reply_to":"1f1a1f67_b8f3b673","updated":"2017-07-20 21:35:37.000000000","message":"Done","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"}],"cinder/tests/unit/volume/drivers/netapp/dataontap/test_block_cmode.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"be128f9eb6c412625b4f0d4f94e5173de88b280c","unresolved":false,"context_lines":[{"line_number":776,"context_line":"        model_update, add_volumes_update, remove_volumes_update \u003d ("},{"line_number":777,"context_line":"            self.library.update_group(fake.VOLUME_GROUP))"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        self.assertIsNone(None, model_update)"},{"line_number":780,"context_line":"        self.assertIsNone(None, add_volumes_update)"},{"line_number":781,"context_line":"        self.assertIsNone(None, remove_volumes_update)"},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff346bd7_125e7a11","line":779,"range":{"start_line":779,"start_character":26,"end_line":779,"end_character":30},"updated":"2017-07-27 15:41:05.000000000","message":"Why are you asserting that None is None?","commit_id":"a0aa3c465f32cd1caddb9d466d06070a5f9637a1"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"56a04e216a1a919ad428e25fcaaa35925e70811a","unresolved":false,"context_lines":[{"line_number":776,"context_line":"        model_update, add_volumes_update, remove_volumes_update \u003d ("},{"line_number":777,"context_line":"            self.library.update_group(fake.VOLUME_GROUP))"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        self.assertIsNone(None, model_update)"},{"line_number":780,"context_line":"        self.assertIsNone(None, add_volumes_update)"},{"line_number":781,"context_line":"        self.assertIsNone(None, remove_volumes_update)"},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff346bd7_92df0a39","line":779,"range":{"start_line":779,"start_character":26,"end_line":779,"end_character":30},"in_reply_to":"ff346bd7_125e7a11","updated":"2017-07-27 15:45:56.000000000","message":"Hmm, this is weird.  I missed this one.","commit_id":"a0aa3c465f32cd1caddb9d466d06070a5f9637a1"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"9576054549629236f9ba3e9d53b9c5e2485a89cb","unresolved":false,"context_lines":[{"line_number":776,"context_line":"        model_update, add_volumes_update, remove_volumes_update \u003d ("},{"line_number":777,"context_line":"            self.library.update_group(fake.VOLUME_GROUP))"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        self.assertIsNone(None, model_update)"},{"line_number":780,"context_line":"        self.assertIsNone(None, add_volumes_update)"},{"line_number":781,"context_line":"        self.assertIsNone(None, remove_volumes_update)"},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff346bd7_9bb3a50a","line":779,"range":{"start_line":779,"start_character":26,"end_line":779,"end_character":30},"in_reply_to":"ff346bd7_125e7a11","updated":"2017-07-27 17:08:54.000000000","message":"Thanks for catching this.","commit_id":"a0aa3c465f32cd1caddb9d466d06070a5f9637a1"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"9576054549629236f9ba3e9d53b9c5e2485a89cb","unresolved":false,"context_lines":[{"line_number":776,"context_line":"        model_update, add_volumes_update, remove_volumes_update \u003d ("},{"line_number":777,"context_line":"            self.library.update_group(fake.VOLUME_GROUP))"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"        self.assertIsNone(None, model_update)"},{"line_number":780,"context_line":"        self.assertIsNone(None, add_volumes_update)"},{"line_number":781,"context_line":"        self.assertIsNone(None, remove_volumes_update)"},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff346bd7_5bd1bd22","line":779,"range":{"start_line":779,"start_character":26,"end_line":779,"end_character":30},"in_reply_to":"ff346bd7_92df0a39","updated":"2017-07-27 17:08:54.000000000","message":"Done","commit_id":"a0aa3c465f32cd1caddb9d466d06070a5f9637a1"}],"cinder/volume/drivers/netapp/dataontap/block_7mode.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"31149fb9dcba2c8498347d3f1a2f8e2a9e45414e","unresolved":false,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        :return: Hard-coded model update for consistency group model."},{"line_number":484,"context_line":"        \"\"\""},{"line_number":485,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":486,"context_line":"        return model_update"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    def delete_consistencygroup(self, group, volumes):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_2d66f452","line":485,"range":{"start_line":485,"start_character":34,"end_line":485,"end_character":45},"updated":"2017-04-03 22:07:24.000000000","message":"fields.ConsistencyGroupStatus","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"ba5008af49c8125d7252e6e8e6efc53fb2ba0c4c","unresolved":false,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        :return: Hard-coded model update for consistency group model."},{"line_number":484,"context_line":"        \"\"\""},{"line_number":485,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":486,"context_line":"        return model_update"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    def delete_consistencygroup(self, group, volumes):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_22743099","line":485,"range":{"start_line":485,"start_character":34,"end_line":485,"end_character":45},"in_reply_to":"dfeb2761_2d66f452","updated":"2017-04-14 18:34:37.000000000","message":"Done","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"31149fb9dcba2c8498347d3f1a2f8e2a9e45414e","unresolved":false,"context_lines":[{"line_number":491,"context_line":"        :return: Updated consistency group model and list of volume models"},{"line_number":492,"context_line":"                 for the volumes that were deleted."},{"line_number":493,"context_line":"        \"\"\""},{"line_number":494,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027deleted\u0027}"},{"line_number":495,"context_line":"        volumes_model_update \u003d []"},{"line_number":496,"context_line":"        for volume in volumes:"},{"line_number":497,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_ed5fec6f","line":494,"range":{"start_line":494,"start_character":34,"end_line":494,"end_character":43},"updated":"2017-04-03 22:07:24.000000000","message":"fields.ConsistencyGroupStatus","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"ba5008af49c8125d7252e6e8e6efc53fb2ba0c4c","unresolved":false,"context_lines":[{"line_number":491,"context_line":"        :return: Updated consistency group model and list of volume models"},{"line_number":492,"context_line":"                 for the volumes that were deleted."},{"line_number":493,"context_line":"        \"\"\""},{"line_number":494,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027deleted\u0027}"},{"line_number":495,"context_line":"        volumes_model_update \u003d []"},{"line_number":496,"context_line":"        for volume in volumes:"},{"line_number":497,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_02692cbd","line":494,"range":{"start_line":494,"start_character":34,"end_line":494,"end_character":43},"in_reply_to":"dfeb2761_ed5fec6f","updated":"2017-04-14 18:34:37.000000000","message":"Done","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"beab1a2c64e45ea085883d820d409712f7481302","unresolved":false,"context_lines":[{"line_number":500,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: \u0027deleted\u0027})"},{"line_number":501,"context_line":"            except Exception:"},{"line_number":502,"context_line":"                volumes_model_update.append("},{"line_number":503,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: \u0027error_deleting\u0027})"},{"line_number":504,"context_line":"                LOG.exception(\"Volume %(vol)s in the consistency group \""},{"line_number":505,"context_line":"                              \"could not be deleted.\", {\u0027vol\u0027: volume})"},{"line_number":506,"context_line":"        return model_update, volumes_model_update"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_6322cc02","line":503,"range":{"start_line":503,"start_character":52,"end_line":503,"end_character":66},"updated":"2017-04-04 00:25:08.000000000","message":"\u0027spose similar change needed here.","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"ba5008af49c8125d7252e6e8e6efc53fb2ba0c4c","unresolved":false,"context_lines":[{"line_number":500,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: \u0027deleted\u0027})"},{"line_number":501,"context_line":"            except Exception:"},{"line_number":502,"context_line":"                volumes_model_update.append("},{"line_number":503,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: \u0027error_deleting\u0027})"},{"line_number":504,"context_line":"                LOG.exception(\"Volume %(vol)s in the consistency group \""},{"line_number":505,"context_line":"                              \"could not be deleted.\", {\u0027vol\u0027: volume})"},{"line_number":506,"context_line":"        return model_update, volumes_model_update"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_e26528e3","line":503,"range":{"start_line":503,"start_character":52,"end_line":503,"end_character":66},"in_reply_to":"dfeb2761_6322cc02","updated":"2017-04-14 18:34:37.000000000","message":"Done","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7a358b15739ab08fa70aeee77f1cc3337ea9e43a","unresolved":false,"context_lines":[{"line_number":502,"context_line":"            except Exception:"},{"line_number":503,"context_line":"                volumes_model_update.append("},{"line_number":504,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027],"},{"line_number":505,"context_line":"                     \u0027status\u0027: fields.ConsistencyGroupStatus.ERROR_DELETING})"},{"line_number":506,"context_line":"                LOG.exception(\"Volume %(vol)s in the consistency group \""},{"line_number":507,"context_line":"                              \"could not be deleted.\", {\u0027vol\u0027: volume})"},{"line_number":508,"context_line":"        return model_update, volumes_model_update"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_177b8a8c","line":505,"range":{"start_line":505,"start_character":31,"end_line":505,"end_character":75},"updated":"2017-04-16 14:45:03.000000000","message":"This is volume status.  Since we don\u0027t have VolumeStatus in fields.py yet, please use \u0027error_deleting\u0027.","commit_id":"f2826e46295635585d551a331cecf1b9c27172e3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"bf0edee34f42a8b4df2f245917e2198ddebddef2","unresolved":false,"context_lines":[{"line_number":502,"context_line":"            except Exception:"},{"line_number":503,"context_line":"                volumes_model_update.append("},{"line_number":504,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027],"},{"line_number":505,"context_line":"                     \u0027status\u0027: fields.ConsistencyGroupStatus.ERROR_DELETING})"},{"line_number":506,"context_line":"                LOG.exception(\"Volume %(vol)s in the consistency group \""},{"line_number":507,"context_line":"                              \"could not be deleted.\", {\u0027vol\u0027: volume})"},{"line_number":508,"context_line":"        return model_update, volumes_model_update"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_bc55c452","line":505,"range":{"start_line":505,"start_character":31,"end_line":505,"end_character":75},"in_reply_to":"7ffa3b31_177b8a8c","updated":"2017-04-18 01:56:59.000000000","message":"Done","commit_id":"f2826e46295635585d551a331cecf1b9c27172e3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"60e3f1c79d9c57b6ac8e739b714e6df0d48e6998","unresolved":false,"context_lines":[{"line_number":481,"context_line":"        communication to the backend is necessary for consistency group"},{"line_number":482,"context_line":"        creation."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        :return: Hard-coded model update for consistency group model."},{"line_number":485,"context_line":"        \"\"\""},{"line_number":486,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.AVAILABLE}"},{"line_number":487,"context_line":"        return model_update"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_78119eac","line":484,"range":{"start_line":484,"start_character":8,"end_line":484,"end_character":16},"updated":"2017-07-20 19:06:58.000000000","message":"This will cause doc build to fail.  Should be\n\n:returns:","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"fa8eb4dffa6eeecb4d531b7926f1ab53d86d997a","unresolved":false,"context_lines":[{"line_number":481,"context_line":"        communication to the backend is necessary for consistency group"},{"line_number":482,"context_line":"        creation."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        :return: Hard-coded model update for consistency group model."},{"line_number":485,"context_line":"        \"\"\""},{"line_number":486,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.AVAILABLE}"},{"line_number":487,"context_line":"        return model_update"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_d34ad581","line":484,"range":{"start_line":484,"start_character":8,"end_line":484,"end_character":16},"in_reply_to":"1f1a1f67_78119eac","updated":"2017-07-20 21:35:37.000000000","message":"Done","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"60e3f1c79d9c57b6ac8e739b714e6df0d48e6998","unresolved":false,"context_lines":[{"line_number":489,"context_line":"    def delete_consistencygroup(self, group, volumes):"},{"line_number":490,"context_line":"        \"\"\"Driver entry point for deleting a consistency group."},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        :return: Updated consistency group model and list of volume models"},{"line_number":493,"context_line":"                 for the volumes that were deleted."},{"line_number":494,"context_line":"        \"\"\""},{"line_number":495,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.DELETED}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_5826e218","line":492,"range":{"start_line":492,"start_character":8,"end_line":492,"end_character":16},"updated":"2017-07-20 19:06:58.000000000","message":":returns:","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"fa8eb4dffa6eeecb4d531b7926f1ab53d86d997a","unresolved":false,"context_lines":[{"line_number":489,"context_line":"    def delete_consistencygroup(self, group, volumes):"},{"line_number":490,"context_line":"        \"\"\"Driver entry point for deleting a consistency group."},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        :return: Updated consistency group model and list of volume models"},{"line_number":493,"context_line":"                 for the volumes that were deleted."},{"line_number":494,"context_line":"        \"\"\""},{"line_number":495,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.DELETED}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_b34f5991","line":492,"range":{"start_line":492,"start_character":8,"end_line":492,"end_character":16},"in_reply_to":"1f1a1f67_5826e218","updated":"2017-07-20 21:35:37.000000000","message":"Done","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"60e3f1c79d9c57b6ac8e739b714e6df0d48e6998","unresolved":false,"context_lines":[{"line_number":562,"context_line":"    def delete_cgsnapshot(self, cgsnapshot, snapshots):"},{"line_number":563,"context_line":"        \"\"\"Delete LUNs backing each snapshot in the cgsnapshot."},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        :return: An implicit update for snapshots models that is interpreted"},{"line_number":566,"context_line":"                 by the manager to set their models to deleted."},{"line_number":567,"context_line":"        \"\"\""},{"line_number":568,"context_line":"        for snapshot in snapshots:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_18206af7","line":565,"range":{"start_line":565,"start_character":8,"end_line":565,"end_character":16},"updated":"2017-07-20 19:06:58.000000000","message":":returns:","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"fa8eb4dffa6eeecb4d531b7926f1ab53d86d997a","unresolved":false,"context_lines":[{"line_number":562,"context_line":"    def delete_cgsnapshot(self, cgsnapshot, snapshots):"},{"line_number":563,"context_line":"        \"\"\"Delete LUNs backing each snapshot in the cgsnapshot."},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        :return: An implicit update for snapshots models that is interpreted"},{"line_number":566,"context_line":"                 by the manager to set their models to deleted."},{"line_number":567,"context_line":"        \"\"\""},{"line_number":568,"context_line":"        for snapshot in snapshots:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_9768c8ba","line":565,"range":{"start_line":565,"start_character":8,"end_line":565,"end_character":16},"in_reply_to":"1f1a1f67_18206af7","updated":"2017-07-20 21:35:37.000000000","message":"Done","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"60e3f1c79d9c57b6ac8e739b714e6df0d48e6998","unresolved":false,"context_lines":[{"line_number":576,"context_line":"                                         source_cg\u003dNone, source_vols\u003dNone):"},{"line_number":577,"context_line":"        \"\"\"Creates a CG from a either a cgsnapshot or group of cinder vols."},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"        :return: An implicit update for the volumes model that is"},{"line_number":580,"context_line":"                 interpreted by the manager as a successful operation."},{"line_number":581,"context_line":"        \"\"\""},{"line_number":582,"context_line":"        LOG.debug(\"VOLUMES %s \", \u0027, \u0027.join([vol[\u0027id\u0027] for vol in volumes]))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_f81c8ec2","line":579,"range":{"start_line":579,"start_character":8,"end_line":579,"end_character":16},"updated":"2017-07-20 19:06:58.000000000","message":":returns:","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"fa8eb4dffa6eeecb4d531b7926f1ab53d86d997a","unresolved":false,"context_lines":[{"line_number":576,"context_line":"                                         source_cg\u003dNone, source_vols\u003dNone):"},{"line_number":577,"context_line":"        \"\"\"Creates a CG from a either a cgsnapshot or group of cinder vols."},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"        :return: An implicit update for the volumes model that is"},{"line_number":580,"context_line":"                 interpreted by the manager as a successful operation."},{"line_number":581,"context_line":"        \"\"\""},{"line_number":582,"context_line":"        LOG.debug(\"VOLUMES %s \", \u0027, \u0027.join([vol[\u0027id\u0027] for vol in volumes]))"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_576230da","line":579,"range":{"start_line":579,"start_character":8,"end_line":579,"end_character":16},"in_reply_to":"1f1a1f67_f81c8ec2","updated":"2017-07-20 21:35:37.000000000","message":"Done","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"}],"cinder/volume/drivers/netapp/dataontap/block_cmode.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5b800c6930ab3df0a09951b81bac8a95162de9f3","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        return self.ssc_library.get_ssc().keys()"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    def create_group(self, group):"},{"line_number":467,"context_line":"        \"\"\"Driver entry point for creating a volume group."},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        ONTAP does not maintain an actual Group construct. As a result, no"},{"line_number":470,"context_line":"        communication to the backend is necessary for volume group"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_6b9543e4","line":467,"range":{"start_line":467,"start_character":45,"end_line":467,"end_character":58},"updated":"2017-03-31 21:41:24.000000000","message":"Either say \"group\" or \"generic volume group\".  \"volume group\" is used for LVM and could cause confusion.","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"dc089427f2fe53a593470d5cfbae31d6c21c096f","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        return self.ssc_library.get_ssc().keys()"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    def create_group(self, group):"},{"line_number":467,"context_line":"        \"\"\"Driver entry point for creating a volume group."},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        ONTAP does not maintain an actual Group construct. As a result, no"},{"line_number":470,"context_line":"        communication to the backend is necessary for volume group"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_ca0e5331","line":467,"range":{"start_line":467,"start_character":45,"end_line":467,"end_character":58},"in_reply_to":"dfeb2761_6b9543e4","updated":"2017-04-03 18:57:39.000000000","message":"Done","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5b800c6930ab3df0a09951b81bac8a95162de9f3","unresolved":false,"context_lines":[{"line_number":467,"context_line":"        \"\"\"Driver entry point for creating a volume group."},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        ONTAP does not maintain an actual Group construct. As a result, no"},{"line_number":470,"context_line":"        communication to the backend is necessary for volume group"},{"line_number":471,"context_line":"        creation."},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"        :return: Hard-coded model update for volume group model."}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_2b9f3b04","line":470,"range":{"start_line":470,"start_character":54,"end_line":470,"end_character":66},"updated":"2017-03-31 21:41:24.000000000","message":"group","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"dc089427f2fe53a593470d5cfbae31d6c21c096f","unresolved":false,"context_lines":[{"line_number":467,"context_line":"        \"\"\"Driver entry point for creating a volume group."},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        ONTAP does not maintain an actual Group construct. As a result, no"},{"line_number":470,"context_line":"        communication to the backend is necessary for volume group"},{"line_number":471,"context_line":"        creation."},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"        :return: Hard-coded model update for volume group model."}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_2a237faa","line":470,"range":{"start_line":470,"start_character":54,"end_line":470,"end_character":66},"in_reply_to":"dfeb2761_2b9f3b04","updated":"2017-04-03 18:57:39.000000000","message":"Done","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5b800c6930ab3df0a09951b81bac8a95162de9f3","unresolved":false,"context_lines":[{"line_number":470,"context_line":"        communication to the backend is necessary for volume group"},{"line_number":471,"context_line":"        creation."},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"        :return: Hard-coded model update for volume group model."},{"line_number":474,"context_line":"        \"\"\""},{"line_number":475,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":476,"context_line":"        return model_update"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_0ba47756","line":473,"range":{"start_line":473,"start_character":45,"end_line":473,"end_character":57},"updated":"2017-03-31 21:41:24.000000000","message":"group","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"dc089427f2fe53a593470d5cfbae31d6c21c096f","unresolved":false,"context_lines":[{"line_number":470,"context_line":"        communication to the backend is necessary for volume group"},{"line_number":471,"context_line":"        creation."},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"        :return: Hard-coded model update for volume group model."},{"line_number":474,"context_line":"        \"\"\""},{"line_number":475,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":476,"context_line":"        return model_update"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_aa366fe5","line":473,"range":{"start_line":473,"start_character":45,"end_line":473,"end_character":57},"in_reply_to":"dfeb2761_0ba47756","updated":"2017-04-03 18:57:39.000000000","message":"Done","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5b800c6930ab3df0a09951b81bac8a95162de9f3","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        :return: Hard-coded model update for volume group model."},{"line_number":474,"context_line":"        \"\"\""},{"line_number":475,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":476,"context_line":"        return model_update"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def delete_group(self, group, volumes):"},{"line_number":479,"context_line":"        \"\"\"Driver entry point for deleting a group."}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_4ed84d52","line":476,"updated":"2017-03-31 21:41:24.000000000","message":"Some other drivers check if the group is a consistent group snapshot type and decide whether to create a CG by the driver or let the default generic volume group implementation handles it.  See example here:\n\nhttps://review.openstack.org/#/c/444802/8/cinder/volume/drivers/ibm/storwize_svc/storwize_svc_common.py Line#3504\n\n        if utils.is_group_a_cg_snapshot_type(group):\n            return {\u0027status\u0027: fields.GroupStatus.AVAILABLE}\n\n        raise NotImplementedError()\n\nIf you want to always create CG, that is fine too.  VMAX driver chose to always create a CG.","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"dc089427f2fe53a593470d5cfbae31d6c21c096f","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        :return: Hard-coded model update for volume group model."},{"line_number":474,"context_line":"        \"\"\""},{"line_number":475,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":476,"context_line":"        return model_update"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def delete_group(self, group, volumes):"},{"line_number":479,"context_line":"        \"\"\"Driver entry point for deleting a group."}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_8a696b8c","line":476,"in_reply_to":"dfeb2761_4ed84d52","updated":"2017-04-03 18:57:39.000000000","message":"Thanks for bringing this point up. With this patch we want to match the existing functionality that CGs provide in the current NetApp drivers. I\u0027ll bring up the option you mentioned with the team though.","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"45e2fc42c57dc26df1c2c02ff15b2aefef38a97f","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        :return: Hard-coded model update for volume group model."},{"line_number":474,"context_line":"        \"\"\""},{"line_number":475,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":476,"context_line":"        return model_update"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def delete_group(self, group, volumes):"},{"line_number":479,"context_line":"        \"\"\"Driver entry point for deleting a group."}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_930d7d39","line":476,"in_reply_to":"dfeb2761_8a696b8c","updated":"2017-04-14 18:33:54.000000000","message":"Added consistency group snapshot enabled check for group in patch 3.","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5b800c6930ab3df0a09951b81bac8a95162de9f3","unresolved":false,"context_lines":[{"line_number":496,"context_line":"        return model_update, volumes_model_update"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    def update_group(self, group, add_volumes\u003dNone, remove_volumes\u003dNone):"},{"line_number":499,"context_line":"        \"\"\"Driver entry point for updating a volume group."},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        Since no actual group construct is ever created in ONTAP, it is not"},{"line_number":502,"context_line":"        necessary to update any metadata on the backend. Since this is a NO-OP,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_8b8f67cb","line":499,"range":{"start_line":499,"start_character":45,"end_line":499,"end_character":57},"updated":"2017-03-31 21:41:24.000000000","message":"group","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"dc089427f2fe53a593470d5cfbae31d6c21c096f","unresolved":false,"context_lines":[{"line_number":496,"context_line":"        return model_update, volumes_model_update"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    def update_group(self, group, add_volumes\u003dNone, remove_volumes\u003dNone):"},{"line_number":499,"context_line":"        \"\"\"Driver entry point for updating a volume group."},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        Since no actual group construct is ever created in ONTAP, it is not"},{"line_number":502,"context_line":"        necessary to update any metadata on the backend. Since this is a NO-OP,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_2a293f37","line":499,"range":{"start_line":499,"start_character":45,"end_line":499,"end_character":57},"in_reply_to":"dfeb2761_8b8f67cb","updated":"2017-04-03 18:57:39.000000000","message":"Done","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"5b800c6930ab3df0a09951b81bac8a95162de9f3","unresolved":false,"context_lines":[{"line_number":512,"context_line":"        consistency for a set of flexvol snapshots. First, a list of the"},{"line_number":513,"context_line":"        flexvols backing the given Cinder group must be gathered. An ONTAP"},{"line_number":514,"context_line":"        group-snapshot of these flexvols will create a snapshot copy of all the"},{"line_number":515,"context_line":"        Cinder volumes in the volume group. For each Cinder volume in the"},{"line_number":516,"context_line":"        group, it is then necessary to clone its backing LUN from the ONTAP"},{"line_number":517,"context_line":"        group-snapshot. The naming convention used for the clones is what"},{"line_number":518,"context_line":"        indicates the clone\u0027s role as a Cinder snapshot and its inclusion in a"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_4e04cd15","line":515,"range":{"start_line":515,"start_character":30,"end_line":515,"end_character":42},"updated":"2017-03-31 21:41:24.000000000","message":"group","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"dc089427f2fe53a593470d5cfbae31d6c21c096f","unresolved":false,"context_lines":[{"line_number":512,"context_line":"        consistency for a set of flexvol snapshots. First, a list of the"},{"line_number":513,"context_line":"        flexvols backing the given Cinder group must be gathered. An ONTAP"},{"line_number":514,"context_line":"        group-snapshot of these flexvols will create a snapshot copy of all the"},{"line_number":515,"context_line":"        Cinder volumes in the volume group. For each Cinder volume in the"},{"line_number":516,"context_line":"        group, it is then necessary to clone its backing LUN from the ONTAP"},{"line_number":517,"context_line":"        group-snapshot. The naming convention used for the clones is what"},{"line_number":518,"context_line":"        indicates the clone\u0027s role as a Cinder snapshot and its inclusion in a"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_2a85bf08","line":515,"range":{"start_line":515,"start_character":30,"end_line":515,"end_character":42},"in_reply_to":"dfeb2761_4e04cd15","updated":"2017-04-03 18:57:39.000000000","message":"Done","commit_id":"fc22702b97431eb8c8a7704b4b3bdec505681d98"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"31149fb9dcba2c8498347d3f1a2f8e2a9e45414e","unresolved":false,"context_lines":[{"line_number":472,"context_line":""},{"line_number":473,"context_line":"        :return: Hard-coded model update for generic volume group model."},{"line_number":474,"context_line":"        \"\"\""},{"line_number":475,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":476,"context_line":"        return model_update"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def delete_group(self, group, volumes):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_0dd210d3","line":475,"updated":"2017-04-03 22:07:24.000000000","message":"Please use fields.GroupStatus.AVAILABLE","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"ba5008af49c8125d7252e6e8e6efc53fb2ba0c4c","unresolved":false,"context_lines":[{"line_number":472,"context_line":""},{"line_number":473,"context_line":"        :return: Hard-coded model update for generic volume group model."},{"line_number":474,"context_line":"        \"\"\""},{"line_number":475,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":476,"context_line":"        return model_update"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"    def delete_group(self, group, volumes):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_42a4d408","line":475,"in_reply_to":"dfeb2761_0dd210d3","updated":"2017-04-14 18:34:37.000000000","message":"Done","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"31149fb9dcba2c8498347d3f1a2f8e2a9e45414e","unresolved":false,"context_lines":[{"line_number":481,"context_line":"        :return: Updated group model and list of volume models"},{"line_number":482,"context_line":"                 for the volumes that were deleted."},{"line_number":483,"context_line":"        \"\"\""},{"line_number":484,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027deleted\u0027}"},{"line_number":485,"context_line":"        volumes_model_update \u003d []"},{"line_number":486,"context_line":"        for volume in volumes:"},{"line_number":487,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_8d22a0ff","line":484,"range":{"start_line":484,"start_character":34,"end_line":484,"end_character":43},"updated":"2017-04-03 22:07:24.000000000","message":"Please use fields.GroupStatus.DELETED.","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"ba5008af49c8125d7252e6e8e6efc53fb2ba0c4c","unresolved":false,"context_lines":[{"line_number":481,"context_line":"        :return: Updated group model and list of volume models"},{"line_number":482,"context_line":"                 for the volumes that were deleted."},{"line_number":483,"context_line":"        \"\"\""},{"line_number":484,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027deleted\u0027}"},{"line_number":485,"context_line":"        volumes_model_update \u003d []"},{"line_number":486,"context_line":"        for volume in volumes:"},{"line_number":487,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_02aecce6","line":484,"range":{"start_line":484,"start_character":34,"end_line":484,"end_character":43},"in_reply_to":"dfeb2761_8d22a0ff","updated":"2017-04-14 18:34:37.000000000","message":"Done","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"beab1a2c64e45ea085883d820d409712f7481302","unresolved":false,"context_lines":[{"line_number":490,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: \u0027deleted\u0027})"},{"line_number":491,"context_line":"            except Exception:"},{"line_number":492,"context_line":"                volumes_model_update.append("},{"line_number":493,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: \u0027error_deleting\u0027})"},{"line_number":494,"context_line":"                LOG.exception(\"Volume %(vol)s in the group could not be \""},{"line_number":495,"context_line":"                              \"deleted.\", {\u0027vol\u0027: volume})"},{"line_number":496,"context_line":"        return model_update, volumes_model_update"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_e3837ccb","line":493,"range":{"start_line":493,"start_character":52,"end_line":493,"end_character":66},"updated":"2017-04-04 00:25:08.000000000","message":"same","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"ba5008af49c8125d7252e6e8e6efc53fb2ba0c4c","unresolved":false,"context_lines":[{"line_number":490,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: \u0027deleted\u0027})"},{"line_number":491,"context_line":"            except Exception:"},{"line_number":492,"context_line":"                volumes_model_update.append("},{"line_number":493,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027], \u0027status\u0027: \u0027error_deleting\u0027})"},{"line_number":494,"context_line":"                LOG.exception(\"Volume %(vol)s in the group could not be \""},{"line_number":495,"context_line":"                              \"deleted.\", {\u0027vol\u0027: volume})"},{"line_number":496,"context_line":"        return model_update, volumes_model_update"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_a2b4c036","line":493,"range":{"start_line":493,"start_character":52,"end_line":493,"end_character":66},"in_reply_to":"dfeb2761_e3837ccb","updated":"2017-04-14 18:34:37.000000000","message":"Done","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"beab1a2c64e45ea085883d820d409712f7481302","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        :return: An implicit update for the volumes model that is"},{"line_number":568,"context_line":"                 interpreted by the manager as a successful operation."},{"line_number":569,"context_line":"        \"\"\""},{"line_number":570,"context_line":"        LOG.debug(\"VOLUMES %s \", [dict(vol) for vol in volumes])"},{"line_number":571,"context_line":"        volume_model_updates \u003d []"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        if group_snapshot:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_83f5d085","line":570,"range":{"start_line":570,"start_character":34,"end_line":570,"end_character":62},"updated":"2017-04-04 00:25:08.000000000","message":"consider logging just the ID..\n\n  \u0027, \u0027.join([vol[\u0027id\u0027] for vol in volumes])","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"ba5008af49c8125d7252e6e8e6efc53fb2ba0c4c","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        :return: An implicit update for the volumes model that is"},{"line_number":568,"context_line":"                 interpreted by the manager as a successful operation."},{"line_number":569,"context_line":"        \"\"\""},{"line_number":570,"context_line":"        LOG.debug(\"VOLUMES %s \", [dict(vol) for vol in volumes])"},{"line_number":571,"context_line":"        volume_model_updates \u003d []"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        if group_snapshot:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_7bcd235c","line":570,"range":{"start_line":570,"start_character":34,"end_line":570,"end_character":62},"in_reply_to":"dfeb2761_83f5d085","updated":"2017-04-14 18:34:37.000000000","message":"Done","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7a358b15739ab08fa70aeee77f1cc3337ea9e43a","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        if not volume_utils.is_group_a_cg_snapshot_type(group):"},{"line_number":476,"context_line":"            raise NotImplementedError"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.AVAILABLE}"},{"line_number":479,"context_line":"        return model_update"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    def delete_group(self, group, volumes):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_573232f3","line":478,"range":{"start_line":478,"start_character":41,"end_line":478,"end_character":62},"updated":"2017-04-16 14:45:03.000000000","message":"Please use fields.GroupStatus","commit_id":"f2826e46295635585d551a331cecf1b9c27172e3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"bf0edee34f42a8b4df2f245917e2198ddebddef2","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        if not volume_utils.is_group_a_cg_snapshot_type(group):"},{"line_number":476,"context_line":"            raise NotImplementedError"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.AVAILABLE}"},{"line_number":479,"context_line":"        return model_update"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    def delete_group(self, group, volumes):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_fc9eac05","line":478,"range":{"start_line":478,"start_character":41,"end_line":478,"end_character":62},"in_reply_to":"7ffa3b31_573232f3","updated":"2017-04-18 01:56:59.000000000","message":"Done","commit_id":"f2826e46295635585d551a331cecf1b9c27172e3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7a358b15739ab08fa70aeee77f1cc3337ea9e43a","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        if not volume_utils.is_group_a_cg_snapshot_type(group):"},{"line_number":488,"context_line":"            raise NotImplementedError"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.DELETED}"},{"line_number":491,"context_line":"        volumes_model_update \u003d []"},{"line_number":492,"context_line":"        for volume in volumes:"},{"line_number":493,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_374d6672","line":490,"range":{"start_line":490,"start_character":34,"end_line":490,"end_character":63},"updated":"2017-04-16 14:45:03.000000000","message":"fields.GroupStatus","commit_id":"f2826e46295635585d551a331cecf1b9c27172e3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"bf0edee34f42a8b4df2f245917e2198ddebddef2","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        if not volume_utils.is_group_a_cg_snapshot_type(group):"},{"line_number":488,"context_line":"            raise NotImplementedError"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.DELETED}"},{"line_number":491,"context_line":"        volumes_model_update \u003d []"},{"line_number":492,"context_line":"        for volume in volumes:"},{"line_number":493,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_dca3f04e","line":490,"range":{"start_line":490,"start_character":34,"end_line":490,"end_character":63},"in_reply_to":"7ffa3b31_374d6672","updated":"2017-04-18 01:56:59.000000000","message":"Done","commit_id":"f2826e46295635585d551a331cecf1b9c27172e3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7a358b15739ab08fa70aeee77f1cc3337ea9e43a","unresolved":false,"context_lines":[{"line_number":497,"context_line":"            except Exception:"},{"line_number":498,"context_line":"                volumes_model_update.append("},{"line_number":499,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027],"},{"line_number":500,"context_line":"                     \u0027status\u0027: fields.ConsistencyGroupStatus.ERROR_DELETING})"},{"line_number":501,"context_line":"                LOG.exception(\"Volume %(vol)s in the group could not be \""},{"line_number":502,"context_line":"                              \"deleted.\", {\u0027vol\u0027: volume})"},{"line_number":503,"context_line":"        return model_update, volumes_model_update"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_17526a14","line":500,"range":{"start_line":500,"start_character":31,"end_line":500,"end_character":60},"updated":"2017-04-16 14:45:03.000000000","message":"This is volume status.  Since we don\u0027t have VolumeStatus in fields.py yet, please use \u0027error_deleting\u0027.","commit_id":"f2826e46295635585d551a331cecf1b9c27172e3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"bf0edee34f42a8b4df2f245917e2198ddebddef2","unresolved":false,"context_lines":[{"line_number":497,"context_line":"            except Exception:"},{"line_number":498,"context_line":"                volumes_model_update.append("},{"line_number":499,"context_line":"                    {\u0027id\u0027: volume[\u0027id\u0027],"},{"line_number":500,"context_line":"                     \u0027status\u0027: fields.ConsistencyGroupStatus.ERROR_DELETING})"},{"line_number":501,"context_line":"                LOG.exception(\"Volume %(vol)s in the group could not be \""},{"line_number":502,"context_line":"                              \"deleted.\", {\u0027vol\u0027: volume})"},{"line_number":503,"context_line":"        return model_update, volumes_model_update"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_bc8824c6","line":500,"range":{"start_line":500,"start_character":31,"end_line":500,"end_character":60},"in_reply_to":"7ffa3b31_17526a14","updated":"2017-04-18 01:56:59.000000000","message":"Done","commit_id":"f2826e46295635585d551a331cecf1b9c27172e3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"06f1e423d4898bfe9beed9d88f0c836bcda08488","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            # Add driver capabilities and config info"},{"line_number":302,"context_line":"            pool[\u0027QoS_support\u0027] \u003d True"},{"line_number":303,"context_line":"            pool[\u0027multiattach\u0027] \u003d False"},{"line_number":304,"context_line":"            pool[\u0027consistent_group_snapshot_enabled\u0027] \u003d True"},{"line_number":305,"context_line":"            pool[\u0027reserved_percentage\u0027] \u003d self.reserved_percentage"},{"line_number":306,"context_line":"            pool[\u0027max_over_subscription_ratio\u0027] \u003d ("},{"line_number":307,"context_line":"                self.max_over_subscription_ratio)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_432fd8f5","line":304,"updated":"2017-04-18 18:23:04.000000000","message":"Removal of the \"consistencygroup_support\" entry here will break deployments that are using this in an extra spec.\n\nThis should at least be documented if not handled in the code.","commit_id":"614c7da409b882ecf4aa103f62d96c2cf7112fb7"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"6235db02dfd80a8ada871de6cbc6d022c51eb66d","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            # Add driver capabilities and config info"},{"line_number":302,"context_line":"            pool[\u0027QoS_support\u0027] \u003d True"},{"line_number":303,"context_line":"            pool[\u0027multiattach\u0027] \u003d False"},{"line_number":304,"context_line":"            pool[\u0027consistent_group_snapshot_enabled\u0027] \u003d True"},{"line_number":305,"context_line":"            pool[\u0027reserved_percentage\u0027] \u003d self.reserved_percentage"},{"line_number":306,"context_line":"            pool[\u0027max_over_subscription_ratio\u0027] \u003d ("},{"line_number":307,"context_line":"                self.max_over_subscription_ratio)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_648405b2","line":304,"in_reply_to":"7ffa3b31_432fd8f5","updated":"2017-04-26 18:39:42.000000000","message":"Added an upgrade section to the release note in patch 6.","commit_id":"614c7da409b882ecf4aa103f62d96c2cf7112fb7"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"60e3f1c79d9c57b6ac8e739b714e6df0d48e6998","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from oslo_utils import units"},{"line_number":29,"context_line":"import six"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from cinder import exception"},{"line_number":33,"context_line":"from cinder.i18n import _"},{"line_number":34,"context_line":"from cinder.objects import fields"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_7803de74","line":31,"updated":"2017-07-20 19:06:58.000000000","message":"nit: no need to add another blank line.","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"fa8eb4dffa6eeecb4d531b7926f1ab53d86d997a","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from oslo_utils import units"},{"line_number":29,"context_line":"import six"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from cinder import exception"},{"line_number":33,"context_line":"from cinder.i18n import _"},{"line_number":34,"context_line":"from cinder.objects import fields"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_378d747b","line":31,"in_reply_to":"1f1a1f67_7803de74","updated":"2017-07-20 21:35:37.000000000","message":"Done","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"60e3f1c79d9c57b6ac8e739b714e6df0d48e6998","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        communication to the backend is necessary for generic volume group"},{"line_number":473,"context_line":"        creation."},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        :return: Hard-coded model update for generic volume group model."},{"line_number":476,"context_line":"        \"\"\""},{"line_number":477,"context_line":"        model_update \u003d {\u0027status\u0027: fields.GroupStatus.AVAILABLE}"},{"line_number":478,"context_line":"        return model_update"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_d860b238","line":475,"range":{"start_line":475,"start_character":8,"end_line":475,"end_character":16},"updated":"2017-07-20 19:06:58.000000000","message":":returns:","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"fa8eb4dffa6eeecb4d531b7926f1ab53d86d997a","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        communication to the backend is necessary for generic volume group"},{"line_number":473,"context_line":"        creation."},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        :return: Hard-coded model update for generic volume group model."},{"line_number":476,"context_line":"        \"\"\""},{"line_number":477,"context_line":"        model_update \u003d {\u0027status\u0027: fields.GroupStatus.AVAILABLE}"},{"line_number":478,"context_line":"        return model_update"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_57b7d03b","line":475,"range":{"start_line":475,"start_character":8,"end_line":475,"end_character":16},"in_reply_to":"1f1a1f67_d860b238","updated":"2017-07-20 21:35:37.000000000","message":"Done","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"60e3f1c79d9c57b6ac8e739b714e6df0d48e6998","unresolved":false,"context_lines":[{"line_number":480,"context_line":"    def delete_group(self, group, volumes):"},{"line_number":481,"context_line":"        \"\"\"Driver entry point for deleting a group."},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        :return: Updated group model and list of volume models"},{"line_number":484,"context_line":"                 for the volumes that were deleted."},{"line_number":485,"context_line":"        \"\"\""},{"line_number":486,"context_line":"        model_update \u003d {\u0027status\u0027: fields.GroupStatus.DELETED}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_785f5e72","line":483,"range":{"start_line":483,"start_character":8,"end_line":483,"end_character":16},"updated":"2017-07-20 19:06:58.000000000","message":":returns:","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"fa8eb4dffa6eeecb4d531b7926f1ab53d86d997a","unresolved":false,"context_lines":[{"line_number":480,"context_line":"    def delete_group(self, group, volumes):"},{"line_number":481,"context_line":"        \"\"\"Driver entry point for deleting a group."},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        :return: Updated group model and list of volume models"},{"line_number":484,"context_line":"                 for the volumes that were deleted."},{"line_number":485,"context_line":"        \"\"\""},{"line_number":486,"context_line":"        model_update \u003d {\u0027status\u0027: fields.GroupStatus.DELETED}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_17839858","line":483,"range":{"start_line":483,"start_character":8,"end_line":483,"end_character":16},"in_reply_to":"1f1a1f67_785f5e72","updated":"2017-07-20 21:35:37.000000000","message":"Done","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"60e3f1c79d9c57b6ac8e739b714e6df0d48e6998","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        required after having cloned the LUNs backing the Cinder volumes in"},{"line_number":524,"context_line":"        the Cinder group."},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        :return: An implicit update for group snapshot and snapshots models"},{"line_number":527,"context_line":"                 that is interpreted by the manager to set their models to"},{"line_number":528,"context_line":"                 available."},{"line_number":529,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_184e2ac1","line":526,"range":{"start_line":526,"start_character":8,"end_line":526,"end_character":16},"updated":"2017-07-20 19:06:58.000000000","message":":returns:","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"fa8eb4dffa6eeecb4d531b7926f1ab53d86d997a","unresolved":false,"context_lines":[{"line_number":523,"context_line":"        required after having cloned the LUNs backing the Cinder volumes in"},{"line_number":524,"context_line":"        the Cinder group."},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        :return: An implicit update for group snapshot and snapshots models"},{"line_number":527,"context_line":"                 that is interpreted by the manager to set their models to"},{"line_number":528,"context_line":"                 available."},{"line_number":529,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"1f1a1f67_b781844d","line":526,"range":{"start_line":526,"start_character":8,"end_line":526,"end_character":16},"in_reply_to":"1f1a1f67_184e2ac1","updated":"2017-07-20 21:35:37.000000000","message":"Done","commit_id":"044d421743edfe893d91ab90565a2bda180a18d6"}],"releasenotes/notes/netapp-add-generic-group-support-cdot-9bebd13356694e13.yaml":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"31149fb9dcba2c8498347d3f1a2f8e2a9e45414e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add generic volume group capability to NetApp cDot drivers with support for write consistent group snapshots. "}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dfeb2761_4d2c9801","line":3,"range":{"start_line":3,"start_character":98,"end_line":3,"end_character":114},"updated":"2017-04-03 22:07:24.000000000","message":"Please wrap this up and remove trailing white space.","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"beab1a2c64e45ea085883d820d409712f7481302","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add generic volume group capability to NetApp cDot drivers with support for write consistent group snapshots. "}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dfeb2761_2363a444","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":7},"updated":"2017-04-04 00:25:08.000000000","message":"release notes are read after the release, \n\ns/Add/Added","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"ba5008af49c8125d7252e6e8e6efc53fb2ba0c4c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add generic volume group capability to NetApp cDot drivers with support for write consistent group snapshots. "}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9ff52f3f_a25040d6","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":7},"in_reply_to":"dfeb2761_2363a444","updated":"2017-04-14 18:34:37.000000000","message":"Done","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"ba5008af49c8125d7252e6e8e6efc53fb2ba0c4c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add generic volume group capability to NetApp cDot drivers with support for write consistent group snapshots. "}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9ff52f3f_c25344e2","line":3,"range":{"start_line":3,"start_character":98,"end_line":3,"end_character":114},"in_reply_to":"dfeb2761_4d2c9801","updated":"2017-04-14 18:34:37.000000000","message":"Done","commit_id":"07166673eb4c2998f2db3b66d6b73a4c38be25a3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"902c71949dbe76206e1f2c3a6eb99ca8f64be3bb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added generic volume group capability to NetApp cDot drivers with"},{"line_number":4,"context_line":"    support for write consistent group snapshots."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7ffa3b31_051342b7","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":49},"updated":"2017-04-17 14:39:51.000000000","message":"please note the change in capability reported in the  \"upgrade\" section","commit_id":"f2826e46295635585d551a331cecf1b9c27172e3"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"bf0edee34f42a8b4df2f245917e2198ddebddef2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added generic volume group capability to NetApp cDot drivers with"},{"line_number":4,"context_line":"    support for write consistent group snapshots."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7ffa3b31_bc270413","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":49},"in_reply_to":"7ffa3b31_051342b7","updated":"2017-04-18 01:56:59.000000000","message":"Appears that this is covered in releasenotes/notes/operate-migrated-groups-with-cp-apis-e5835c6673191805.yaml","commit_id":"f2826e46295635585d551a331cecf1b9c27172e3"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"74271e020d94dd0c019429458097efd110f32a97","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Added generic volume group capability to NetApp cDot drivers with"},{"line_number":4,"context_line":"    support for write consistent group snapshots."},{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - Operator needs to run `cinder-manage db online-data-migrations` to"},{"line_number":7,"context_line":"    migrate existing consistency groups to generic volume groups. This"},{"line_number":8,"context_line":"    command will also update volume type extra-specs that contain"},{"line_number":9,"context_line":"    consistencygroup_support to consistent_group_snapshot_enabled."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5ff73747_5c6b191d","line":7,"range":{"start_line":6,"start_character":4,"end_line":7,"end_character":65},"updated":"2017-04-26 23:57:51.000000000","message":"This is already mentioned in a general upgrade release note.","commit_id":"87d92f1ef889f406fec8529e6993e0cf499a7a35"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"8542d1dc67fe3040a61d65bd50c2be5bdf907787","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Added generic volume group capability to NetApp cDot drivers with"},{"line_number":4,"context_line":"    support for write consistent group snapshots."},{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - Operator needs to run `cinder-manage db online-data-migrations` to"},{"line_number":7,"context_line":"    migrate existing consistency groups to generic volume groups. This"},{"line_number":8,"context_line":"    command will also update volume type extra-specs that contain"},{"line_number":9,"context_line":"    consistencygroup_support to consistent_group_snapshot_enabled."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"1f1a1f67_20de753d","line":7,"range":{"start_line":6,"start_character":4,"end_line":7,"end_character":65},"in_reply_to":"5ff73747_5c6b191d","updated":"2017-07-20 15:09:28.000000000","message":"Done","commit_id":"87d92f1ef889f406fec8529e6993e0cf499a7a35"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"74271e020d94dd0c019429458097efd110f32a97","unresolved":false,"context_lines":[{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - Operator needs to run `cinder-manage db online-data-migrations` to"},{"line_number":7,"context_line":"    migrate existing consistency groups to generic volume groups. This"},{"line_number":8,"context_line":"    command will also update volume type extra-specs that contain"},{"line_number":9,"context_line":"    consistencygroup_support to consistent_group_snapshot_enabled."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5ff73747_3c4dedc3","line":9,"range":{"start_line":8,"start_character":4,"end_line":9,"end_character":66},"updated":"2017-04-26 23:57:51.000000000","message":"The above mentioned migration script will not modify volume type extra specs.\n\nWhat Eric meant is that user should not set \"consistencygroup_support\" in the volume type extra specs.\n\nSee here:\n\nhttps://review.openstack.org/#/c/457261/2/releasenotes/notes/add-cg-capability-to-groups-2eb3e71682a88600.yaml","commit_id":"87d92f1ef889f406fec8529e6993e0cf499a7a35"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"8542d1dc67fe3040a61d65bd50c2be5bdf907787","unresolved":false,"context_lines":[{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - Operator needs to run `cinder-manage db online-data-migrations` to"},{"line_number":7,"context_line":"    migrate existing consistency groups to generic volume groups. This"},{"line_number":8,"context_line":"    command will also update volume type extra-specs that contain"},{"line_number":9,"context_line":"    consistencygroup_support to consistent_group_snapshot_enabled."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"1f1a1f67_00e939e4","line":9,"range":{"start_line":8,"start_character":4,"end_line":9,"end_character":66},"in_reply_to":"5ff73747_3c4dedc3","updated":"2017-07-20 15:09:28.000000000","message":"Done","commit_id":"87d92f1ef889f406fec8529e6993e0cf499a7a35"}]}
