)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"230508571578ea4daa4c82d9243e0b88cce042fb","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     CaiqueMello \u003ccaiquemellosbo@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-05-19 15:26:38 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP Fix compare volume stats for storage_protocols"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The change [1] added to scheduler a list of"},{"line_number":10,"context_line":"storage_protocols upon reception of the stats from"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"e6f7b148_ff646f2e","line":7,"updated":"2022-05-23 13:47:44.000000000","message":"I think you are taking the correct approach, so don\u0027t forget to take the \"WIP\" off when you push the next patch set.","commit_id":"75b7f92ce6581a3a1c5f3b9875ace66f4ede3975"},{"author":{"_account_id":33301,"name":"Caique Mello","email":"caiquemellosbo@gmail.com","username":"MelloCaique"},"change_message_id":"dc745e922ca176364e51baf98a79765f509e6d70","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     CaiqueMello \u003ccaiquemellosbo@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-05-19 15:26:38 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP Fix compare volume stats for storage_protocols"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The change [1] added to scheduler a list of"},{"line_number":10,"context_line":"storage_protocols upon reception of the stats from"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"6700cbad_abc85c85","line":7,"in_reply_to":"e6f7b148_ff646f2e","updated":"2022-05-23 15:27:07.000000000","message":"Done","commit_id":"75b7f92ce6581a3a1c5f3b9875ace66f4ede3975"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"230508571578ea4daa4c82d9243e0b88cce042fb","unresolved":true,"context_lines":[{"line_number":29,"context_line":"This patch provide a check if"},{"line_number":30,"context_line":"show_backend_capabilities returns"},{"line_number":31,"context_line":"valid storage_protocols using the list of allowed"},{"line_number":32,"context_line":"variants and set the preferred protocol to it."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"[1]https://review.opendev.org/c/openstack/cinder/+/836069"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"d784b13d_a5abd06e","line":32,"updated":"2022-05-23 13:47:44.000000000","message":"Not sure where to add this in the commit message, but I think you need to point out that this fix is needed for third-party CI systems that may not be running tempest in a greenfield environment.  So while cinder change I1333b0471974 fixed drivers to report the canonical storage protocol name (which is why we haven\u0027t seen this problem in the OpenStack gate), we can\u0027t assume that the drivers being tested contain that fix.","commit_id":"75b7f92ce6581a3a1c5f3b9875ace66f4ede3975"},{"author":{"_account_id":33301,"name":"Caique Mello","email":"caiquemellosbo@gmail.com","username":"MelloCaique"},"change_message_id":"dc745e922ca176364e51baf98a79765f509e6d70","unresolved":false,"context_lines":[{"line_number":29,"context_line":"This patch provide a check if"},{"line_number":30,"context_line":"show_backend_capabilities returns"},{"line_number":31,"context_line":"valid storage_protocols using the list of allowed"},{"line_number":32,"context_line":"variants and set the preferred protocol to it."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"[1]https://review.opendev.org/c/openstack/cinder/+/836069"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7fe7e1ac_7e075d5c","line":32,"in_reply_to":"d784b13d_a5abd06e","updated":"2022-05-23 15:27:07.000000000","message":"Done","commit_id":"75b7f92ce6581a3a1c5f3b9875ace66f4ede3975"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"230508571578ea4daa4c82d9243e0b88cce042fb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ca8bc080_5d42e5b7","updated":"2022-05-23 13:47:44.000000000","message":"Looks good.  I think this does have to be changed in tempest; a few clarifications suggested below.","commit_id":"75b7f92ce6581a3a1c5f3b9875ace66f4ede3975"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"cf7907bb324e75a5d2a5bdf4df4d7c9764996066","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1f6efa25_ce5cb064","updated":"2022-05-23 15:30:08.000000000","message":"Good work Caique, thank you for fixing the NetApp CI with this patch! LGMT.","commit_id":"96730e7bb3c642eeaf61939e5a6657ef734bb2af"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6982e6f338465878545612604a07d5a7ba6dc8d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"24290181_6c1716ba","updated":"2022-05-25 08:34:39.000000000","message":"Looks good, though I think there\u0027s a nicer implementation.","commit_id":"96730e7bb3c642eeaf61939e5a6657ef734bb2af"},{"author":{"_account_id":33301,"name":"Caique Mello","email":"caiquemellosbo@gmail.com","username":"MelloCaique"},"change_message_id":"dc745e922ca176364e51baf98a79765f509e6d70","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"252898bc_c2ac3ba6","updated":"2022-05-23 15:27:07.000000000","message":"Thank you Rosmaita. I addressed the comments and now I believe the change is way more understandable with the new comments.","commit_id":"96730e7bb3c642eeaf61939e5a6657ef734bb2af"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ca9d010ba783f6e6537e41052baaea995a076978","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"00d4a8c0_85e3643c","updated":"2022-05-23 21:43:49.000000000","message":"Wait to recheck until https://review.opendev.org/c/openstack/tempest/+/842821 has merged into tempest (and then probably rebase this patch).","commit_id":"96730e7bb3c642eeaf61939e5a6657ef734bb2af"},{"author":{"_account_id":33301,"name":"Caique Mello","email":"caiquemellosbo@gmail.com","username":"MelloCaique"},"change_message_id":"d3630d2b3ba59633d8ca77d157ef52a6fd3ae674","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d4662461_6709ef78","updated":"2022-05-24 13:17:34.000000000","message":"recheck","commit_id":"96730e7bb3c642eeaf61939e5a6657ef734bb2af"},{"author":{"_account_id":33301,"name":"Caique Mello","email":"caiquemellosbo@gmail.com","username":"MelloCaique"},"change_message_id":"a03f39923f3d18b4f6259d02003087810d74e985","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5e07747c_f77d0e27","updated":"2022-05-25 12:20:19.000000000","message":"Comment addressed","commit_id":"9b4c960f3b43544a96d1725f4a382b104e6f5bf3"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"932d1e05ad845f16a7e4ed6b1b5c474d231eaf8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0c3d8b61_b220156d","updated":"2022-06-24 15:51:37.000000000","message":"I was told this broke the devstack-plugin-nfs-tempest-full job:\n\n\nTraceback (most recent call last):\n  File \"/opt/stack/tempest/tempest/api/volume/admin/test_backends_capabilities.py\", line 91, in test_compare_volume_stats_values\n    self.assertEqual(expected_list, observed_list)\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.8/site-packages/testtools/testcase.py\", line 393, in assertEqual\n    self.assertThat(observed, matcher, message)\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.8/site-packages/testtools/testcase.py\", line 480, in assertThat\n    raise mismatch_error\ntesttools.matchers._impl.MismatchError: [(\u0027Open Source\u0027, \u0027nfs\u0027, \u0027nfs\u0027)] !\u003d [(\u0027Open Source\u0027, \u0027nfs\u0027, \u0027NFS\u0027)]\n\n\n","commit_id":"9b4c960f3b43544a96d1725f4a382b104e6f5bf3"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"627cc07d4ff9b5f0f61d62b3eebec8d8526e1495","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"639973d1_220987a0","updated":"2022-06-02 15:25:38.000000000","message":"LGTM!","commit_id":"9b4c960f3b43544a96d1725f4a382b104e6f5bf3"},{"author":{"_account_id":32411,"name":"Eduardo Santos","email":"eduardo.experimental@gmail.com","username":"ecsantos"},"change_message_id":"c17e1afe585846404c7b4251b862f53607f89b26","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"92063d9f_3e21890a","updated":"2022-06-10 20:16:20.000000000","message":"LGTM, Caique!","commit_id":"9b4c960f3b43544a96d1725f4a382b104e6f5bf3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"85cdc6fc812c76cb1beeeacf7ffcdc06920c5732","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5a70d5c6_2b95583d","updated":"2022-06-02 15:44:38.000000000","message":"Revisions LGTM.","commit_id":"9b4c960f3b43544a96d1725f4a382b104e6f5bf3"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e6e23b139bb712038283ed503f24e2f5e1a5a838","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bbfa164b_8fdaab95","updated":"2022-06-06 22:11:43.000000000","message":"lgtm, it is hard to standardize the different backend capabilities but agree on the proposed way to test.","commit_id":"9b4c960f3b43544a96d1725f4a382b104e6f5bf3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"74c13280b8c37ee0b3a5c43a71561c57a73afa7d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6a52837e_d7e151c5","updated":"2022-06-15 11:36:03.000000000","message":"makes sense, thanks","commit_id":"9b4c960f3b43544a96d1725f4a382b104e6f5bf3"},{"author":{"_account_id":33301,"name":"Caique Mello","email":"caiquemellosbo@gmail.com","username":"MelloCaique"},"change_message_id":"02e43c109bcfaaa75b372fc5b416f4e95c8ca61f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1b8766e4_7646e103","updated":"2022-05-27 11:39:25.000000000","message":"recheck","commit_id":"9b4c960f3b43544a96d1725f4a382b104e6f5bf3"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"25812158f180df96592a927c3fb621f7cf96c7af","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8a99409d_7cf4c744","in_reply_to":"0c3d8b61_b220156d","updated":"2022-06-27 22:15:48.000000000","message":"yeah, I don\u0027t see much into storage, is it like the logic added to the test is wrong and needs to be changed or this change helped uncover inconsistency on storage\u0027s side and it will be fixed there?","commit_id":"9b4c960f3b43544a96d1725f4a382b104e6f5bf3"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"0fe95fce248f0b340542d9b80b9e0c4256a82dfc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b9a615f8_4b63c02d","in_reply_to":"8a99409d_7cf4c744","updated":"2022-06-29 13:04:59.000000000","message":"There is a proposed cinder patch: https://review.opendev.org/c/openstack/cinder/+/836069","commit_id":"9b4c960f3b43544a96d1725f4a382b104e6f5bf3"}],"tempest/api/volume/admin/test_backends_capabilities.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"230508571578ea4daa4c82d9243e0b88cce042fb","unresolved":true,"context_lines":[{"line_number":50,"context_line":"        ISCSI_VARIANTS \u003d [\u0027iSCSI\u0027, \u0027iscsi\u0027]"},{"line_number":51,"context_line":"        FC_VARIANTS \u003d [\u0027FC\u0027, \u0027fibre_channel\u0027, \u0027fc\u0027]"},{"line_number":52,"context_line":"        NFS_VARIANTS \u003d [\u0027NFS\u0027, \u0027nfs\u0027]"},{"line_number":53,"context_line":"        NVMEOF_VARIANTS \u003d [\u0027NVMe-oF\u0027, \u0027NVMeOF\u0027, \u0027nvmeof\u0027]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        # Get list backend capabilities using show_pools"},{"line_number":56,"context_line":"        cinder_pools \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"3e2c228d_8de95c59","line":53,"updated":"2022-05-23 13:47:44.000000000","message":"These are defined in cinder.common.constants .  I guess we can\u0027t import them because we don\u0027t want to make cinder a dependency for tempest.  But it would be good to have a comment here saying where these are coming from in case they get out of sync at some point and someone has to track this down.  You should also point out that the canonical name for the storage protocol comes first in the list (since your code change below depends on that).","commit_id":"75b7f92ce6581a3a1c5f3b9875ace66f4ede3975"},{"author":{"_account_id":33301,"name":"Caique Mello","email":"caiquemellosbo@gmail.com","username":"MelloCaique"},"change_message_id":"dc745e922ca176364e51baf98a79765f509e6d70","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        ISCSI_VARIANTS \u003d [\u0027iSCSI\u0027, \u0027iscsi\u0027]"},{"line_number":51,"context_line":"        FC_VARIANTS \u003d [\u0027FC\u0027, \u0027fibre_channel\u0027, \u0027fc\u0027]"},{"line_number":52,"context_line":"        NFS_VARIANTS \u003d [\u0027NFS\u0027, \u0027nfs\u0027]"},{"line_number":53,"context_line":"        NVMEOF_VARIANTS \u003d [\u0027NVMe-oF\u0027, \u0027NVMeOF\u0027, \u0027nvmeof\u0027]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        # Get list backend capabilities using show_pools"},{"line_number":56,"context_line":"        cinder_pools \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"db43bde2_95c3c0a3","line":53,"in_reply_to":"3e2c228d_8de95c59","updated":"2022-05-23 15:27:07.000000000","message":"Done","commit_id":"75b7f92ce6581a3a1c5f3b9875ace66f4ede3975"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"230508571578ea4daa4c82d9243e0b88cce042fb","unresolved":true,"context_lines":[{"line_number":70,"context_line":"        observed_list \u003d sorted(list(map(operator.itemgetter(*VOLUME_STATS),"},{"line_number":71,"context_line":"                                        capabilities)))"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        # Check if the protocols are listed in allowed variants, if so,"},{"line_number":74,"context_line":"        # set the preferred protocol."},{"line_number":75,"context_line":"        for item in range(len(observed_list)):"},{"line_number":76,"context_line":"            if observed_list[item][2] in NFS_VARIANTS:"},{"line_number":77,"context_line":"                observed_list[item] \u003d (observed_list[item][0],"}],"source_content_type":"text/x-python","patch_set":2,"id":"f90e2038_88a548a4","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":37},"updated":"2022-05-23 13:47:44.000000000","message":"I think we want this comment to be more explicit about what\u0027s going on, because otherwise, it looks like the test is massaging the response to make the test pass, which is not something a test should do.\n\nSo maybe something along the lines of:\n\nCinder Bug #1966103: Some drivers were reporting different strings to represent the same storage protocol.  For backward compatibility, the scheduler can handle the variants, but to standardize this for operators (who may need to refer to the protocol in volume-type extra-specs), the get-pools response was changed by I07d74078dbb1 to only report the canonical name for a storage protocol.  Thus, the expected_list (which we got from the get-pools call) will only contain canonical names, while the observed_list (which we got from the driver capabilities call) may contain a variant.  So before comparing the lists, we need to look for known variants in the observed_list elements and replace them with their canonical values.","commit_id":"75b7f92ce6581a3a1c5f3b9875ace66f4ede3975"},{"author":{"_account_id":33301,"name":"Caique Mello","email":"caiquemellosbo@gmail.com","username":"MelloCaique"},"change_message_id":"dc745e922ca176364e51baf98a79765f509e6d70","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        observed_list \u003d sorted(list(map(operator.itemgetter(*VOLUME_STATS),"},{"line_number":71,"context_line":"                                        capabilities)))"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        # Check if the protocols are listed in allowed variants, if so,"},{"line_number":74,"context_line":"        # set the preferred protocol."},{"line_number":75,"context_line":"        for item in range(len(observed_list)):"},{"line_number":76,"context_line":"            if observed_list[item][2] in NFS_VARIANTS:"},{"line_number":77,"context_line":"                observed_list[item] \u003d (observed_list[item][0],"}],"source_content_type":"text/x-python","patch_set":2,"id":"3b68225f_849dae7f","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":37},"in_reply_to":"f90e2038_88a548a4","updated":"2022-05-23 15:27:07.000000000","message":"Done","commit_id":"75b7f92ce6581a3a1c5f3b9875ace66f4ede3975"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6982e6f338465878545612604a07d5a7ba6dc8d6","unresolved":true,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        # List of storage protocols variants defined in cinder.common.constants"},{"line_number":51,"context_line":"        # The canonical name for storage protocol comes first in the list"},{"line_number":52,"context_line":"        ISCSI_VARIANTS \u003d [\u0027iSCSI\u0027, \u0027iscsi\u0027]"},{"line_number":53,"context_line":"        FC_VARIANTS \u003d [\u0027FC\u0027, \u0027fibre_channel\u0027, \u0027fc\u0027]"},{"line_number":54,"context_line":"        NFS_VARIANTS \u003d [\u0027NFS\u0027, \u0027nfs\u0027]"},{"line_number":55,"context_line":"        NVMEOF_VARIANTS \u003d [\u0027NVMe-oF\u0027, \u0027NVMeOF\u0027, \u0027nvmeof\u0027]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # Get list backend capabilities using show_pools"},{"line_number":58,"context_line":"        cinder_pools \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"daebaef9_b39a5d39","line":55,"range":{"start_line":52,"start_character":0,"end_line":55,"end_character":57},"updated":"2022-05-25 08:34:39.000000000","message":"nit: Since we don\u0027t have to differentiate them we can create a single list of lists:\n\n  VARIANTS \u003d [[\u0027iSCSI\u0027, \u0027iscsi\u0027], [\u0027FC\u0027, \u0027fibre_channel\u0027, \u0027fc\u0027], ... ]\n\nAnd then on L87-101:\n\n        for item in range(len(observed_list)):\n            for variants in VARIANTS:\n                if observed_list[item][2] in variants:\n                    observed_list[item] \u003d (observed_list[item][0],\n                                           observed_list[item][1],\n                                           variants[0])","commit_id":"96730e7bb3c642eeaf61939e5a6657ef734bb2af"},{"author":{"_account_id":33301,"name":"Caique Mello","email":"caiquemellosbo@gmail.com","username":"MelloCaique"},"change_message_id":"a03f39923f3d18b4f6259d02003087810d74e985","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        # List of storage protocols variants defined in cinder.common.constants"},{"line_number":51,"context_line":"        # The canonical name for storage protocol comes first in the list"},{"line_number":52,"context_line":"        ISCSI_VARIANTS \u003d [\u0027iSCSI\u0027, \u0027iscsi\u0027]"},{"line_number":53,"context_line":"        FC_VARIANTS \u003d [\u0027FC\u0027, \u0027fibre_channel\u0027, \u0027fc\u0027]"},{"line_number":54,"context_line":"        NFS_VARIANTS \u003d [\u0027NFS\u0027, \u0027nfs\u0027]"},{"line_number":55,"context_line":"        NVMEOF_VARIANTS \u003d [\u0027NVMe-oF\u0027, \u0027NVMeOF\u0027, \u0027nvmeof\u0027]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # Get list backend capabilities using show_pools"},{"line_number":58,"context_line":"        cinder_pools \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"bbe1ae5a_c7fe5299","line":55,"range":{"start_line":52,"start_character":0,"end_line":55,"end_character":57},"in_reply_to":"daebaef9_b39a5d39","updated":"2022-05-25 12:20:19.000000000","message":"Yes, I agree. Thank you!","commit_id":"96730e7bb3c642eeaf61939e5a6657ef734bb2af"}]}
