)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"d6a24361e29585677abb5a463c1c1b7193bf4e24","unresolved":false,"context_lines":[{"line_number":9,"context_line":"- Fixed Infinidat driver to take into account the group"},{"line_number":10,"context_line":"  identifier property when creating a new volume and"},{"line_number":11,"context_line":"  add the volume to the consistency group."},{"line_number":12,"context_line":"- Removed mock object from driver code."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Closes-bug: #1984000"},{"line_number":15,"context_line":"Closes-bug: #1928232"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"6339cfc2_e6147160","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":39},"updated":"2022-12-16 10:41:26.000000000","message":"nit: As Gorka mentioned on the other patch. In general I would ask that this change (removing the mock) be done in a separate patch, since this patch ends up doing 2 different things.","commit_id":"4f93938b8360c035fa2cef65010ffabaeff62944"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"227d1d6cd7369994e9098f4bf4fed95ebd3926d3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"- Fixed Infinidat driver to take into account the group"},{"line_number":10,"context_line":"  identifier property when creating a new volume and"},{"line_number":11,"context_line":"  add the volume to the consistency group."},{"line_number":12,"context_line":"- Removed mock object from driver code."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Closes-bug: #1984000"},{"line_number":15,"context_line":"Closes-bug: #1928232"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"b017ecd3_0314adb3","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":39},"in_reply_to":"6339cfc2_e6147160","updated":"2022-12-19 11:22:48.000000000","message":"Hello Sofia,\n\nThank you very much for the review!\n\n\u003e\u003e In general I would ask that this change (removing the mock)be done in\n\u003e\u003e a separate patch, since this patch ends up doing 2 different things.\n\nYes, I agree. Please review patch set #5.\n\nThank you!","commit_id":"4f93938b8360c035fa2cef65010ffabaeff62944"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"f5515347a0aa893a5e77d1f606b98bd021ae9a0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bdaed28a_eadbd14c","updated":"2022-08-25 18:27:55.000000000","message":"Patch set #2: add unit tests and use volume name_id to resolve Infinidat volume name.","commit_id":"93a3b24f2649b7bc56ee5a2ca98280e979d8adf7"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"4d796df5c4b08c7b0e25691663fd0c8a1284ab0d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d46ab588_b3f27f4c","updated":"2022-08-26 10:24:30.000000000","message":"recheck cinder-grenade-mn-sub-volbak","commit_id":"93a3b24f2649b7bc56ee5a2ca98280e979d8adf7"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"a6228be26be6fc5d38835c3b970185fbc9152267","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"37dd7c45_c9028f3a","updated":"2022-08-25 19:37:22.000000000","message":"recheck openstack-tox-py39","commit_id":"93a3b24f2649b7bc56ee5a2ca98280e979d8adf7"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"5ef14b57d3f604234a659c95749370ca7c871056","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"78ec8a8f_ae599e47","updated":"2022-12-16 15:03:50.000000000","message":"Just to raise attention on the unresolved comment. ","commit_id":"4f93938b8360c035fa2cef65010ffabaeff62944"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"d080f5992d576f2723f5bacb37cd753fb6488efe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6ac4ec23_650c15bc","updated":"2022-12-16 10:31:00.000000000","message":"cinder tempest plugin tests passed on Infinidat CI","commit_id":"4f93938b8360c035fa2cef65010ffabaeff62944"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"66ed9e49b6f4240cf28e8db7933871fe466e8e49","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d0d6aa0e_fbcf2910","updated":"2022-12-23 17:16:11.000000000","message":"-1 for question","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"29ebf6c370256783048fe3733057f17cc36de85e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c94a08a0_1987504a","updated":"2023-01-20 14:36:13.000000000","message":"Looks like comments had been addressed and the code looks good to me +2","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"c6c406a157b2703ebc4021a5816b22b372a3a59e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f93b6c2c_33038ab8","updated":"2022-12-19 16:49:59.000000000","message":"Passing Infinidat and main Zuul CIs. Seems good to me","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"afa312b125145863ee634ed4e2e53f799f18088c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"40413993_25cebe7a","updated":"2023-01-20 20:34:05.000000000","message":"recheck cinder-grenade-mn-sub-volbak","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"4c650ee2b799e40d28480a864a02f1a9f7ccce45","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"56c007c3_ec494560","updated":"2023-01-21 08:33:22.000000000","message":"recheck cinder-tempest-plugin-lvm-lio-barbican","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"453e10fabad4dce7b98ff2149bee3e95f062142a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a0cc9fdc_27a2ad89","updated":"2023-01-21 14:14:00.000000000","message":"recheck grenade","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"b0c9ec3f28bf9984d02779f2046b6c0b19d8a1c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f2134ae7_097ac961","updated":"2023-01-20 17:32:49.000000000","message":"recheck tempest-integrated-storage","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"6186d994cb6ef2ef25ddb2ab2bc196dc2f9a694e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"19ed9c3c_e1fbbc3c","updated":"2023-01-21 10:31:34.000000000","message":"recheck tempest-integrated-storage-ubuntu-focal","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"35d2c0271e59b85e6b133f6491589ac97c177313","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"447333fd_5826e71b","updated":"2022-12-19 11:34:17.000000000","message":"recheck tempest-slow-py3","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"}],"cinder/volume/drivers/infinidat.py":[{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"5ddf452c3b673ca08562d4121a3a54799a4c6b1a","unresolved":false,"context_lines":[{"line_number":706,"context_line":"        - unmap volume and clone and delete the clone"},{"line_number":707,"context_line":"        \"\"\""},{"line_number":708,"context_line":"        infinidat_snapshot \u003d self._get_infinidat_snapshot(snapshot)"},{"line_number":709,"context_line":"        clone \u003d objects.Volume(None, name_id\u003dstr(uuid.uuid4()),"},{"line_number":710,"context_line":"                               multiattach\u003dFalse, volume_attachment\u003dNone)"},{"line_number":711,"context_line":"        name \u003d self._make_volume_name(clone)"},{"line_number":712,"context_line":"        infinidat_clone \u003d infinidat_snapshot.create_snapshot(name\u003dname)"},{"line_number":713,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5c049e3d_4bf939dd","line":710,"range":{"start_line":709,"start_character":8,"end_line":710,"end_character":73},"updated":"2022-12-16 10:30:23.000000000","message":"Cool","commit_id":"4f93938b8360c035fa2cef65010ffabaeff62944"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"69d3343486b3ab32a58771b2a11c41f8b714ac8e","unresolved":true,"context_lines":[{"line_number":709,"context_line":"        clone \u003d objects.Volume(None, name_id\u003dstr(uuid.uuid4()),"},{"line_number":710,"context_line":"                               multiattach\u003dFalse, volume_attachment\u003dNone)"},{"line_number":711,"context_line":"        name \u003d self._make_volume_name(clone)"},{"line_number":712,"context_line":"        infinidat_clone \u003d infinidat_snapshot.create_snapshot(name\u003dname)"},{"line_number":713,"context_line":"        try:"},{"line_number":714,"context_line":"            infinidat_volume \u003d self._create_volume(volume)"},{"line_number":715,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"b9e0caed_0bf0917a","line":712,"range":{"start_line":712,"start_character":7,"end_line":712,"end_character":71},"updated":"2022-12-16 10:48:45.000000000","message":"I\u0027m sorry if this has already been answered but I think I\u0027m going to mention Gorka\u0027s question again:\n\n\u003e\u003eWhy do we need to create a snapshot if the source is already a snapshot?  This seems to indicate that Infinidat allows attaching snapshots...\n\nIsn\u0027t it possible to use the snapshot directly?","commit_id":"4f93938b8360c035fa2cef65010ffabaeff62944"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"20479d6e1cfbc14aae59fc9a4cef6b0078920e76","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        clone \u003d objects.Volume(None, name_id\u003dstr(uuid.uuid4()),"},{"line_number":710,"context_line":"                               multiattach\u003dFalse, volume_attachment\u003dNone)"},{"line_number":711,"context_line":"        name \u003d self._make_volume_name(clone)"},{"line_number":712,"context_line":"        infinidat_clone \u003d infinidat_snapshot.create_snapshot(name\u003dname)"},{"line_number":713,"context_line":"        try:"},{"line_number":714,"context_line":"            infinidat_volume \u003d self._create_volume(volume)"},{"line_number":715,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"e1fa7317_41af11e3","line":712,"range":{"start_line":712,"start_character":7,"end_line":712,"end_character":71},"in_reply_to":"b9e0caed_0bf0917a","updated":"2022-12-16 15:34:22.000000000","message":"Hello Sofia,\n\nThank you very much for the review!\n\n\u003e\u003e I\u0027m sorry if this has already been answered but I think I\u0027m going to mention\n\u003e\u003e Gorka\u0027s question again:\n\u003e\u003eWhy do we need to create a snapshot if the source is already a snapshot?\n\u003e\u003e This seems to indicate that Infinidat allows attaching snapshots...\n\u003e\u003eIsn\u0027t it possible to use the snapshot directly?\n\nYes I agree and I fixed it in the next patch: https://review.opendev.org/c/openstack/cinder/+/851640\n\nPlease review my answers to Gorka\u0027s questions there: https://review.opendev.org/c/openstack/cinder/+/851640\n\nThank you very much!","commit_id":"4f93938b8360c035fa2cef65010ffabaeff62944"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"66ed9e49b6f4240cf28e8db7933871fe466e8e49","unresolved":true,"context_lines":[{"line_number":951,"context_line":"            infinidat_sg \u003d self._get_infinidat_sg(group_snapshot)"},{"line_number":952,"context_line":"        except exception.GroupSnapshotNotFound:"},{"line_number":953,"context_line":"            pass"},{"line_number":954,"context_line":"        else:"},{"line_number":955,"context_line":"            infinidat_sg.safe_delete()"},{"line_number":956,"context_line":"        for snapshot in snapshots:"},{"line_number":957,"context_line":"            self.delete_snapshot(snapshot)"}],"source_content_type":"text/x-python","patch_set":5,"id":"35d5a13f_73575dc6","line":954,"updated":"2022-12-23 17:16:11.000000000","message":"What if any other exception is raised? Even the newly added code can raise InvalidGroupSnapshot, not to mention the other functions that are called from _get_infinidat_sg().","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"971b82b84dd2563fff2d9a7640e079fca86efdd3","unresolved":false,"context_lines":[{"line_number":951,"context_line":"            infinidat_sg \u003d self._get_infinidat_sg(group_snapshot)"},{"line_number":952,"context_line":"        except exception.GroupSnapshotNotFound:"},{"line_number":953,"context_line":"            pass"},{"line_number":954,"context_line":"        else:"},{"line_number":955,"context_line":"            infinidat_sg.safe_delete()"},{"line_number":956,"context_line":"        for snapshot in snapshots:"},{"line_number":957,"context_line":"            self.delete_snapshot(snapshot)"}],"source_content_type":"text/x-python","patch_set":5,"id":"a96bc75f_eeba01af","line":954,"in_reply_to":"35d5a13f_73575dc6","updated":"2022-12-23 19:33:24.000000000","message":"Hello Pete,\n\nThank you very much for the review!\n\n\u003e\u003e What if any other exception is raised?\n\u003e\u003e Even the newly added code can raise InvalidGroupSnapshot,\n\u003e\u003e not to mention the other functions that are called from _get_infinidat_sg().\n\nWe should ignore only one error - \"GroupSnapshotNotFound\"\n(if the given snapshot does not exist - i.e. already deleted).\nAnd we should fail in any other cases. For example:\n\n_get_infinidat_sg() can raise:\n- GroupSnapshotNotFound (if no snapshot found - i.e. already deleted). And we should ignore this error.\n- InvalidGroupSnapshot (if the given dataset is not a snapshot). We should fail and propagate it.\n- some other unexpected exceptions in case of external failures. We should fail and propagate it.\n\n_get_infinidat_sg() was added to simplify (move some common code to a separate function, like a _get_infinidat_pool, _get_infinidat_cg) and contains exactly the same code as the previous code. The main functional change is for _create_volume() to get into the account the \"volume.group_id\" value.\n\nThank you!","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"33fa11144eff2503306efac7f0bad7889fdffa20","unresolved":false,"context_lines":[{"line_number":951,"context_line":"            infinidat_sg \u003d self._get_infinidat_sg(group_snapshot)"},{"line_number":952,"context_line":"        except exception.GroupSnapshotNotFound:"},{"line_number":953,"context_line":"            pass"},{"line_number":954,"context_line":"        else:"},{"line_number":955,"context_line":"            infinidat_sg.safe_delete()"},{"line_number":956,"context_line":"        for snapshot in snapshots:"},{"line_number":957,"context_line":"            self.delete_snapshot(snapshot)"}],"source_content_type":"text/x-python","patch_set":5,"id":"c928c286_6ee16e30","line":954,"in_reply_to":"a96bc75f_eeba01af","updated":"2023-01-14 02:30:30.000000000","message":"I see, thanks.","commit_id":"d0d63dc7d8055b4719a6fd4c16f29d1d157be9d3"}]}
