)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"067c5a49f1891c4d8834349a4502c0ef5fdcc206","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Ajitha Robert \u003cajitharobert01@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-03-07 12:41:13 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for consistency groups in the Nimble Storage iSCSI drivers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"blueprint nimble-consistency-groups-support"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3007c98f_1fb9560c","line":7,"range":{"start_line":7,"start_character":57,"end_line":7,"end_character":62},"updated":"2021-03-10 04:05:06.000000000","message":"The implementation is in the NimbleBaseVolumeDriver, so it applies to the FC driver also.","commit_id":"838abf55f00de33089653fe5d4a7531e92754b00"}],"cinder/tests/unit/volume/drivers/test_nimble.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"067c5a49f1891c4d8834349a4502c0ef5fdcc206","unresolved":true,"context_lines":[{"line_number":1864,"context_line":"    @mock.patch(\u0027cinder.volume.group_types.get_group_type_specs\u0027)"},{"line_number":1865,"context_line":"    @mock.patch(NIMBLE_ISCSI_DRIVER + \u0027.is_volume_group_snap_type\u0027)"},{"line_number":1866,"context_line":"    def test_update_group_positive(self, mock_get_specs,"},{"line_number":1867,"context_line":"                                   mock_is_cg, vol_gs_enable):"},{"line_number":1868,"context_line":"        mock_get_specs.return_value \u003d \u0027\u003cis\u003e True\u0027"},{"line_number":1869,"context_line":"        mock_is_cg.return_value \u003d True"},{"line_number":1870,"context_line":"        self.mock_client_service.get_volume_id_by_name.return_value \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"4e41d34c_56b9f3b2","line":1867,"updated":"2021-03-10 04:05:06.000000000","message":"The function order for the mocks should list them left to right from bottom to top.  You can see what I mean if you add these statements right at the beginning of the function:\n\n        print(f\u0027mock_get_specs is {mock_get_specs}\u0027)\n        print(f\u0027mock_is_cg is {mock_is_cg}\u0027)\n        print(f\u0027vol_gs_enable is {vol_gs_enable}\u0027)\n\nand then rerun the tests.  You\u0027ll see:\n\n  Captured stdout:\n  ~~~~~~~~~~~~~~~\n  mock_get_specs is \u003cMagicMock name\u003d\u0027is_volume_group_snap_type\u0027 id\u003d\u0027140492349307760\u0027\u003e\n  mock_is_cg is \u003cMagicMock name\u003d\u0027get_group_type_specs\u0027 id\u003d\u0027140492349307648\u0027\u003e\n  vol_gs_enable is \u003cMagicMock name\u003d\u0027is_group_a_cg_snapshot_type\u0027 id\u003d\u0027140492350083872\u0027\u003e\n\nIt matters because one is returning boolean and the other is returning a string.","commit_id":"838abf55f00de33089653fe5d4a7531e92754b00"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e16753113be2bb7c46ee92f26a308004d915899c","unresolved":true,"context_lines":[{"line_number":1863,"context_line":"    @mock.patch.object(volume_utils, \u0027is_group_a_cg_snapshot_type\u0027)"},{"line_number":1864,"context_line":"    @mock.patch(\u0027cinder.volume.group_types.get_group_type_specs\u0027)"},{"line_number":1865,"context_line":"    @mock.patch(NIMBLE_ISCSI_DRIVER + \u0027.is_volume_group_snap_type\u0027)"},{"line_number":1866,"context_line":"    def test_update_group_positive(self, mock_is_cg,"},{"line_number":1867,"context_line":"                                   mock_get_specs, vol_gs_enable):"},{"line_number":1868,"context_line":"        mock_get_specs.return_value \u003d \u0027\u003cis\u003e True\u0027"},{"line_number":1869,"context_line":"        mock_is_cg.return_value \u003d True"},{"line_number":1870,"context_line":"        self.mock_client_service.get_volume_id_by_name.return_value \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"e315c5f9_2af4cd99","line":1867,"range":{"start_line":1866,"start_character":41,"end_line":1867,"end_character":64},"updated":"2021-03-15 14:46:20.000000000","message":"Either you still have these in an incorrect order or the parameter names are really misleading.  Please fix in whatever way is most appropriate.","commit_id":"83e9e62ef453489ae9cecec0fed199844b80a3c6"}],"cinder/volume/drivers/nimble.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"067c5a49f1891c4d8834349a4502c0ef5fdcc206","unresolved":true,"context_lines":[{"line_number":48,"context_line":"from cinder.zonemanager import utils as fczm_utils"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"DRIVER_VERSION \u003d \"4.0.1\""},{"line_number":52,"context_line":"AES_256_XTS_CIPHER \u003d \u0027aes_256_xts\u0027"},{"line_number":53,"context_line":"DEFAULT_CIPHER \u003d \u0027none\u0027"},{"line_number":54,"context_line":"EXTRA_SPEC_ENCRYPTION \u003d \u0027nimble:encryption\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f9f8513_31e8c5dd","line":51,"range":{"start_line":51,"start_character":18,"end_line":51,"end_character":23},"updated":"2021-03-10 04:05:06.000000000","message":"see comment at line 135","commit_id":"838abf55f00de33089653fe5d4a7531e92754b00"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"067c5a49f1891c4d8834349a4502c0ef5fdcc206","unresolved":true,"context_lines":[{"line_number":132,"context_line":"        3.1.0 - Fibre Channel Support"},{"line_number":133,"context_line":"        4.0.0 - Migrate from SOAP to REST API"},{"line_number":134,"context_line":"                Add support for Group Scoped Target"},{"line_number":135,"context_line":"        4.0.1 - Add QoS and dedupe support"},{"line_number":136,"context_line":"    \"\"\""},{"line_number":137,"context_line":"    VERSION \u003d DRIVER_VERSION"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"659c1806_b811ebd7","line":135,"updated":"2021-03-10 04:05:06.000000000","message":"You should add a new version, probably 4.1.0\n\n  4.1.0 - Add support for consistency groups","commit_id":"838abf55f00de33089653fe5d4a7531e92754b00"}],"releasenotes/notes/nimble-consistency-groups-support-7c932d5557fa725e.yaml":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"701e6ead77e6fd7c51f711b189582313d1b90304","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4764e3da_91fc27ba","updated":"2021-03-15 14:37:16.000000000","message":"The only thing you need in this file is:\n\n  ---\n  features:\n    - |\n      Nimble Storage driver: added consistency group support.\n\nYou can remove everything else.","commit_id":"83e9e62ef453489ae9cecec0fed199844b80a3c6"}]}
