)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1846f255b3a27e82a518bbabcd62ad240c6fa7da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4027db8e_c03d86e6","updated":"2022-08-30 21:46:35.000000000","message":"Thank you for submitting this change... I have addressed a few comments inline, please take a look at them. I have also identified a few lines uncovered.\n\nIf I understand correctly, the structure was implemented now but there are no other functionalities consuming it, is it correct? I remember share server migration should be, but in past discussions we mentioning that an operation related to shares would be modified to consume the implementation of the rest client.\n\nThe [1] file could use some more unit test coverage - but it you think that it may cause you to go beyond this week, we can proceed to merge this change and you can work on a follow-up change to be merged in the following weeks.\n\nAlso, NetApp CI is failing for some reason I have not identified yet. Could you please take a look at it?\n\n[1] https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_6df/852004/4/check/openstack-tox-cover/6df3117/cover/d_64027f75effc2ad2_client_cmode_rest_py.html","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a2a39bbe806d4e81229b1117c4be72e39fbce1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"77f4bd8c_11a96814","updated":"2022-09-15 19:30:30.000000000","message":"Thanks Felipe and Nahim, what happens to this rest client now: https://github.com/openstack/manila/blob/a73b29937420598a741dcc56bfc48a436ec83a3f/manila/share/drivers/netapp/dataontap/client/api.py#L585-L589 ?\n\nThis patch is a good start; i was hoping we could merge it into Zed; but like Carlos and Douglas have noted, it\u0027d be nice to see some test results - would you be adding a job for forcing the REST API? \n\nAlso, the unit test coverage on the client_cmode_rest module can be improved: https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_6df/852004/4/check/openstack-tox-cover/6df3117/cover/d_64027f75effc2ad2_client_cmode_rest_py.html\n\n ","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"1354445bdfa8afc88fbaa95a797647eb4c97fbf7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"98ea8059_3dbfbce4","updated":"2022-09-01 00:04:23.000000000","message":"code looks good, is there any operation using it? do you folks have some internal logs to share? Is this same code being used on Cinder and there is only some tests there?","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"e480182ffedeb2532515eecbbbfb8731137331e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c10b1fac_cf03a3d5","updated":"2022-08-31 17:10:25.000000000","message":"run-NetApp CI","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a2a39bbe806d4e81229b1117c4be72e39fbce1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"893e6e59_9731d68d","in_reply_to":"98ea8059_3dbfbce4","updated":"2022-09-15 19:30:30.000000000","message":"+1","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":35677,"name":"Thiago José de Andrade Alvoravel","display_name":"Thiago Alvoravel","email":"thiago.andrade@fit-tecnologia.org.br","username":"thiagoalvoravel"},"change_message_id":"e6442b6fe1012d2a24e87dce0ce64f68614d218a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fb5ce2c4_75f78dcd","updated":"2023-02-09 13:47:00.000000000","message":"Thanks, Felipe. Besides Maurice\u0027s comment, the rest LGTM.","commit_id":"a0b7946f8c17f0cd8c2ae80c04af18162a989cd6"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"259fa922_0008a5e4","updated":"2023-02-15 14:13:41.000000000","message":"Hello,thank you for the reviews, I addressed the comments and will upload a new patch set with the fixes.\n\nAbout UT coverage, it looks good to me in this patch (\u003e90%) for the files we added.\n\nPylint accused two errors - one in utils.py (which we didn\u0027t change) and other in rest_api.py (a false negative - the import works fine). So, I think we are safe. ","commit_id":"d490f70df5c0fba4056c2ee303c00e47de4f46f7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"89b39882024863436d01a6e7c17470514a66846f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4b382179_59d5c802","updated":"2023-02-13 23:59:22.000000000","message":"Looks good for the most part, thank you! Please take a look at past comments, pylint failures and the unit test coverage report.","commit_id":"d490f70df5c0fba4056c2ee303c00e47de4f46f7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8d3bc41d953b12000f54614298342cf07b83f614","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a06abc46_12de193f","updated":"2023-02-16 06:02:04.000000000","message":"A scheduling failure in the ONTAP DHSS\u003dFalse job \n\nFeb 16 00:33:34.591238 ubuntu manila-scheduler[105467]: DEBUG manila.scheduler.drivers.filter [None req-01193638-f243-4fd9-b417-707e1f0d5633 tempest-test_creds-1015225620 None] Filtered [host: \u0027ubuntu@ontap2#aggr0\u0027, free_capacity_gb: 1325.2, pools: None, host: \u0027ubuntu@ontap3#aggr1\u0027, free_capacity_gb: 1347.46, pools: None, host: \u0027ubuntu@ontap#aggr0\u0027, free_capacity_gb: 1325.43, pools: None, host: \u0027ubuntu@ontap#aggr1\u0027, free_capacity_gb: 1521.58, pools: None] {{(pid\u003d105467) _get_weighted_hosts_for_share_group_type /opt/stack/manila/manila/scheduler/drivers/filter.py:462}}\nFeb 16 00:33:34.591989 ubuntu manila-scheduler[105467]: WARNING manila.scheduler.manager [None req-01193638-f243-4fd9-b417-707e1f0d5633 tempest-test_creds-1015225620 None] Failed to schedule_create_share_group: unsupported operand type(s) for -: \u0027float\u0027 and \u0027NoneType\u0027\n\n\nseems unrelated to the patch. Has this been seen before? If yes, lets investigate","commit_id":"e3ef58f86bdf31ab0cecaefe0a6e7c656f7765a6"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ad0e9c87eda166349e37b54f5943b2add95498de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e79f64e8_14b41555","updated":"2023-02-15 22:17:52.000000000","message":"Hi, Nahim - Thanks for addressing the comments. LGTM.\nCI is currently failing on py38 but I think it is a matter of rechecking this change.\n\nCan we have the NetApp CI voting on this change? Or some CI output?","commit_id":"e3ef58f86bdf31ab0cecaefe0a6e7c656f7765a6"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8057631420582453ed61a9866d1a78183f199c55","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ee116eb2_5211dd28","updated":"2023-02-16 01:04:16.000000000","message":"recheck\nKnown py38 db walk issue","commit_id":"e3ef58f86bdf31ab0cecaefe0a6e7c656f7765a6"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"970ec6a2509c345864f848d3567a8fc3c6660125","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"7cb4da58_039c7692","updated":"2023-02-15 23:08:17.000000000","message":"run-NetApp CI","commit_id":"e3ef58f86bdf31ab0cecaefe0a6e7c656f7765a6"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"50faba5af952f246ecf7329fd1085a2828155769","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"d0f54d5d_55b906f9","updated":"2023-02-15 23:46:23.000000000","message":"run-NetApp CI","commit_id":"e3ef58f86bdf31ab0cecaefe0a6e7c656f7765a6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c56c8848719fcd208f16f268c309083a2b34b419","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"605402be_2eb7a8f1","updated":"2023-02-15 22:53:32.000000000","message":"run-NetApp-CI","commit_id":"e3ef58f86bdf31ab0cecaefe0a6e7c656f7765a6"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"d84386e7f3d425759d2683f954a3d80b667a73df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"894294a0_76e9f0b4","updated":"2023-02-15 23:46:14.000000000","message":"un-NetApp C","commit_id":"e3ef58f86bdf31ab0cecaefe0a6e7c656f7765a6"}],"manila/share/drivers/netapp/dataontap/client/client_cmode_rest.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1846f255b3a27e82a518bbabcd62ad240c6fa7da","unresolved":true,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":27,"context_line":"DEFAULT_MAX_PAGE_LENGTH \u003d 10000"},{"line_number":28,"context_line":"HTTP_ACCEPTED \u003d 202"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class NetAppRestClient(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"90f8833c_9be8871f","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":19},"updated":"2022-08-30 21:46:35.000000000","message":"this is also being declared in other places like [1]. You might thing it is not necessary to add the http_client import here, but I think this list might grow in the future, so you possibly want to have a consistent and appropriate place to add this when the list grows.\n\nThe same goes to DEFAULT_MAX_PAGE_LENGTH\n\n[1] https://opendev.org/openstack/manila/src/branch/master/manila/api/openstack/wsgi.py#L1254","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ad0e9c87eda166349e37b54f5943b2add95498de","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":27,"context_line":"DEFAULT_MAX_PAGE_LENGTH \u003d 10000"},{"line_number":28,"context_line":"HTTP_ACCEPTED \u003d 202"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class NetAppRestClient(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"2c33ee7c_68dc2de5","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":19},"in_reply_to":"10e50adb_77973d4d","updated":"2023-02-15 22:17:52.000000000","message":"Sounds good - thanks!","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":true,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":27,"context_line":"DEFAULT_MAX_PAGE_LENGTH \u003d 10000"},{"line_number":28,"context_line":"HTTP_ACCEPTED \u003d 202"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class NetAppRestClient(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"10e50adb_77973d4d","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":19},"in_reply_to":"90f8833c_9be8871f","updated":"2023-02-15 14:13:41.000000000","message":"I agree with the change for HTTP_ACCEPTED, but I think I can keep DEFAULT_MAX_PAGE_LENGTH, because it\u0027s something specific to client_cmode_rest. WDYT?","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1846f255b3a27e82a518bbabcd62ad240c6fa7da","unresolved":true,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        ontap_version \u003d self.get_ontap_version(cached\u003dFalse)"},{"line_number":50,"context_line":"        if ontap_version[\u0027version-tuple\u0027] \u003c (9, 11, 1):"},{"line_number":51,"context_line":"            msg \u003d _(\u0027REST Client can be used only with ONTAP 9.11.1 or upper.\u0027)"},{"line_number":52,"context_line":"            raise exception.NetAppException(msg)"},{"line_number":53,"context_line":"        self.connection.set_ontap_version(ontap_version)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"6403ee20_09a79b18","line":51,"range":{"start_line":51,"start_character":20,"end_line":51,"end_character":78},"updated":"2022-08-30 21:46:35.000000000","message":"wouldn\u0027t this impact other functionalities such as nondisruptive share server migration which is available starting from ONTAP 9.10 and *must* use rest?","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a2a39bbe806d4e81229b1117c4be72e39fbce1a","unresolved":true,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        ontap_version \u003d self.get_ontap_version(cached\u003dFalse)"},{"line_number":50,"context_line":"        if ontap_version[\u0027version-tuple\u0027] \u003c (9, 11, 1):"},{"line_number":51,"context_line":"            msg \u003d _(\u0027REST Client can be used only with ONTAP 9.11.1 or upper.\u0027)"},{"line_number":52,"context_line":"            raise exception.NetAppException(msg)"},{"line_number":53,"context_line":"        self.connection.set_ontap_version(ontap_version)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"b66ea438_6470b4ae","line":51,"range":{"start_line":51,"start_character":20,"end_line":51,"end_character":78},"in_reply_to":"6403ee20_09a79b18","updated":"2022-09-15 19:30:30.000000000","message":"+1","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        ontap_version \u003d self.get_ontap_version(cached\u003dFalse)"},{"line_number":50,"context_line":"        if ontap_version[\u0027version-tuple\u0027] \u003c (9, 11, 1):"},{"line_number":51,"context_line":"            msg \u003d _(\u0027REST Client can be used only with ONTAP 9.11.1 or upper.\u0027)"},{"line_number":52,"context_line":"            raise exception.NetAppException(msg)"},{"line_number":53,"context_line":"        self.connection.set_ontap_version(ontap_version)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"32b70144_e76a705f","line":51,"range":{"start_line":51,"start_character":20,"end_line":51,"end_character":78},"in_reply_to":"9f84e2ca_deae15f4","updated":"2023-02-15 14:13:41.000000000","message":"Good suggestion, I\u0027ll change the message.","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"89b39882024863436d01a6e7c17470514a66846f","unresolved":true,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        ontap_version \u003d self.get_ontap_version(cached\u003dFalse)"},{"line_number":50,"context_line":"        if ontap_version[\u0027version-tuple\u0027] \u003c (9, 11, 1):"},{"line_number":51,"context_line":"            msg \u003d _(\u0027REST Client can be used only with ONTAP 9.11.1 or upper.\u0027)"},{"line_number":52,"context_line":"            raise exception.NetAppException(msg)"},{"line_number":53,"context_line":"        self.connection.set_ontap_version(ontap_version)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f84e2ca_deae15f4","line":51,"range":{"start_line":51,"start_character":20,"end_line":51,"end_character":78},"in_reply_to":"b66ea438_6470b4ae","updated":"2023-02-13 23:59:22.000000000","message":"In the collab-review that we had on Feb 13th 2023, Nahim mentioned that share server migration will infact use the REST API even when \"netapp_use_legacy_client\" is set to True; the REST API code in the \"client\" files is duplicated to keep the code more readable/maintainable. \n\nIf you make a change to this error message, I suggest rewriting. Something like:\n\n\n  This driver can communicate with ONTAP via REST APIs exclusively only when\n  paired with a NetApp ONTAP storage system running release 9.11.1 or newer.\n  To use ZAPI and supported REST APIs instead, set \"netapp_use_legacy_client\"\n  to True.","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"89b39882024863436d01a6e7c17470514a66846f","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        self._init_features()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def _init_features(self):"},{"line_number":65,"context_line":"        \"\"\"Initialize cDOT feature support map.\"\"\""},{"line_number":66,"context_line":"        self.features \u003d client_base.Features()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        # NOTE(felipe_rodrigues): REST client only runs with ONTAP 9.11.1 or"}],"source_content_type":"text/x-python","patch_set":8,"id":"e09ccdb6_85384585","line":65,"range":{"start_line":65,"start_character":22,"end_line":65,"end_character":26},"updated":"2023-02-13 23:59:22.000000000","message":"ONTAP\n\ncDOT is deprecated nomenclature","commit_id":"d490f70df5c0fba4056c2ee303c00e47de4f46f7"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        self._init_features()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def _init_features(self):"},{"line_number":65,"context_line":"        \"\"\"Initialize cDOT feature support map.\"\"\""},{"line_number":66,"context_line":"        self.features \u003d client_base.Features()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        # NOTE(felipe_rodrigues): REST client only runs with ONTAP 9.11.1 or"}],"source_content_type":"text/x-python","patch_set":8,"id":"2dbc6b8c_76b7e699","line":65,"range":{"start_line":65,"start_character":22,"end_line":65,"end_character":26},"in_reply_to":"e09ccdb6_85384585","updated":"2023-02-15 14:13:41.000000000","message":"Ack","commit_id":"d490f70df5c0fba4056c2ee303c00e47de4f46f7"}],"manila/share/drivers/netapp/dataontap/client/rest_api.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1846f255b3a27e82a518bbabcd62ad240c6fa7da","unresolved":true,"context_lines":[{"line_number":167,"context_line":"        \"\"\"Populates the URL with specified filters.\"\"\""},{"line_number":168,"context_line":"        filters \u003d \"\""},{"line_number":169,"context_line":"        for k, v in query.items():"},{"line_number":170,"context_line":"            filters +\u003d \"%(key)s\u003d%(value)s\u0026\" % {\"key\": k, \"value\": v}"},{"line_number":171,"context_line":"        url +\u003d \"?\" + filters"},{"line_number":172,"context_line":"        return url"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a511c24_8c5bd984","line":170,"range":{"start_line":170,"start_character":23,"end_line":170,"end_character":68},"updated":"2022-08-30 21:46:35.000000000","message":"f\u0027{key}\u003d{value}\u0027\nWill make it more readable :)","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        \"\"\"Populates the URL with specified filters.\"\"\""},{"line_number":168,"context_line":"        filters \u003d \"\""},{"line_number":169,"context_line":"        for k, v in query.items():"},{"line_number":170,"context_line":"            filters +\u003d \"%(key)s\u003d%(value)s\u0026\" % {\"key\": k, \"value\": v}"},{"line_number":171,"context_line":"        url +\u003d \"?\" + filters"},{"line_number":172,"context_line":"        return url"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"66ef2e74_bbffbdd5","line":170,"range":{"start_line":170,"start_character":23,"end_line":170,"end_character":68},"in_reply_to":"7a511c24_8c5bd984","updated":"2023-02-15 14:13:41.000000000","message":"Done","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1846f255b3a27e82a518bbabcd62ad240c6fa7da","unresolved":true,"context_lines":[{"line_number":176,"context_line":"        host \u003d self._host"},{"line_number":177,"context_line":"        if \u0027:\u0027 in host:"},{"line_number":178,"context_line":"            host \u003d \u0027[%s]\u0027 % host"},{"line_number":179,"context_line":"        return \u0027%s://%s:%s/api/\u0027 % (self._protocol, host, self._port)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def _build_session(self, headers):"},{"line_number":182,"context_line":"        \"\"\"Builds a session in the client.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"78035665_0d7b2c0c","line":179,"range":{"start_line":179,"start_character":15,"end_line":179,"end_character":69},"updated":"2022-08-30 21:46:35.000000000","message":"you can use an f string here as well\nf\u0027{self._protocol}://{host}/{self._port}\u0027","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        host \u003d self._host"},{"line_number":177,"context_line":"        if \u0027:\u0027 in host:"},{"line_number":178,"context_line":"            host \u003d \u0027[%s]\u0027 % host"},{"line_number":179,"context_line":"        return \u0027%s://%s:%s/api/\u0027 % (self._protocol, host, self._port)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def _build_session(self, headers):"},{"line_number":182,"context_line":"        \"\"\"Builds a session in the client.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"1df8a755_40751324","line":179,"range":{"start_line":179,"start_character":15,"end_line":179,"end_character":69},"in_reply_to":"78035665_0d7b2c0c","updated":"2023-02-15 14:13:41.000000000","message":"Done","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"89b39882024863436d01a6e7c17470514a66846f","unresolved":true,"context_lines":[{"line_number":25,"context_line":"import requests"},{"line_number":26,"context_line":"from requests.adapters import HTTPAdapter"},{"line_number":27,"context_line":"from requests import auth"},{"line_number":28,"context_line":"from requests.packages.urllib3.util.retry import Retry"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"from manila.share.drivers.netapp.dataontap.client import api"},{"line_number":31,"context_line":"from manila.share.drivers.netapp import utils"}],"source_content_type":"text/x-python","patch_set":8,"id":"271c76ea_fb1b25e0","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":54},"updated":"2023-02-13 23:59:22.000000000","message":"don\u0027t import objects, just modules:\n\n from requests.packages.urllib3.util import retry\n ... \n retry.Retry(","commit_id":"d490f70df5c0fba4056c2ee303c00e47de4f46f7"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":false,"context_lines":[{"line_number":25,"context_line":"import requests"},{"line_number":26,"context_line":"from requests.adapters import HTTPAdapter"},{"line_number":27,"context_line":"from requests import auth"},{"line_number":28,"context_line":"from requests.packages.urllib3.util.retry import Retry"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"from manila.share.drivers.netapp.dataontap.client import api"},{"line_number":31,"context_line":"from manila.share.drivers.netapp import utils"}],"source_content_type":"text/x-python","patch_set":8,"id":"07e95927_0b80400f","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":54},"in_reply_to":"271c76ea_fb1b25e0","updated":"2023-02-15 14:13:41.000000000","message":"Done","commit_id":"d490f70df5c0fba4056c2ee303c00e47de4f46f7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"89b39882024863436d01a6e7c17470514a66846f","unresolved":true,"context_lines":[{"line_number":274,"context_line":"            msg \u003d \u0027Clone operation failed: FlexClone not licensed.\u0027"},{"line_number":275,"context_line":"        else:"},{"line_number":276,"context_line":"            msg \u003d (result_error.get(\u0027message\u0027)"},{"line_number":277,"context_line":"                   or \u0027Execution status is failed due to unknown reason\u0027)"},{"line_number":278,"context_line":"        raise api.NaApiError(code, msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"cbd41dc8_d45e617a","line":277,"range":{"start_line":277,"start_character":33,"end_line":277,"end_character":49},"updated":"2023-02-13 23:59:22.000000000","message":"nit: failed\n\ni.e., drop \"status is\"","commit_id":"d490f70df5c0fba4056c2ee303c00e47de4f46f7"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            msg \u003d \u0027Clone operation failed: FlexClone not licensed.\u0027"},{"line_number":275,"context_line":"        else:"},{"line_number":276,"context_line":"            msg \u003d (result_error.get(\u0027message\u0027)"},{"line_number":277,"context_line":"                   or \u0027Execution status is failed due to unknown reason\u0027)"},{"line_number":278,"context_line":"        raise api.NaApiError(code, msg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"60926bac_460840c0","line":277,"range":{"start_line":277,"start_character":33,"end_line":277,"end_character":49},"in_reply_to":"cbd41dc8_d45e617a","updated":"2023-02-15 14:13:41.000000000","message":"Done","commit_id":"d490f70df5c0fba4056c2ee303c00e47de4f46f7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"e3492cd082ce6871bf620c46dcff09cc1e7b5e2c","unresolved":true,"context_lines":[{"line_number":24,"context_line":"import requests"},{"line_number":25,"context_line":"from requests.adapters import HTTPAdapter"},{"line_number":26,"context_line":"from requests import auth"},{"line_number":27,"context_line":"from requests.packages.urllib3.util import retry"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from manila.share.drivers.netapp.dataontap.client import api"},{"line_number":30,"context_line":"from manila.share.drivers.netapp import utils"}],"source_content_type":"text/x-python","patch_set":10,"id":"140660c7_9ad08d1d","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":48},"updated":"2023-02-15 23:26:22.000000000","message":"requests.packages.urllib3 is an alias for urllib3 \n\nso use it directly; might resolve the pylint error here","commit_id":"e3ef58f86bdf31ab0cecaefe0a6e7c656f7765a6"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"52876391cd5b5af5e00d42b33a1bfd6a3c40bf89","unresolved":false,"context_lines":[{"line_number":24,"context_line":"import requests"},{"line_number":25,"context_line":"from requests.adapters import HTTPAdapter"},{"line_number":26,"context_line":"from requests import auth"},{"line_number":27,"context_line":"from requests.packages.urllib3.util import retry"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from manila.share.drivers.netapp.dataontap.client import api"},{"line_number":30,"context_line":"from manila.share.drivers.netapp import utils"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a8e77c1_a220f256","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":48},"in_reply_to":"140660c7_9ad08d1d","updated":"2023-02-16 11:50:45.000000000","message":"Ack","commit_id":"e3ef58f86bdf31ab0cecaefe0a6e7c656f7765a6"}],"manila/tests/share/drivers/netapp/dataontap/client/test_client_cmode_rest.py":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"cadc5db5b9a2ebe5857c3c045832da2ede67a8db","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Alex Meade.  All rights reserved."},{"line_number":2,"context_line":"# Copyright (c) 2015 Clinton Knight.  All rights reserved."},{"line_number":3,"context_line":"# Copyright (c) 2015 Tom Barron.  All rights reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"a23461fa_eb17d886","line":3,"range":{"start_line":1,"start_character":4,"end_line":3,"end_character":54},"updated":"2023-01-05 12:02:35.000000000","message":"copy\u0026paste error, I think","commit_id":"97dfa20a995869becb89d7ec35e68d2a4240cd8f"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Alex Meade.  All rights reserved."},{"line_number":2,"context_line":"# Copyright (c) 2015 Clinton Knight.  All rights reserved."},{"line_number":3,"context_line":"# Copyright (c) 2015 Tom Barron.  All rights reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"adb701f8_4b9db0e5","line":3,"range":{"start_line":1,"start_character":4,"end_line":3,"end_character":54},"in_reply_to":"40f69b33_ebdee2fb","updated":"2023-02-15 14:13:41.000000000","message":"Ack","commit_id":"97dfa20a995869becb89d7ec35e68d2a4240cd8f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"89b39882024863436d01a6e7c17470514a66846f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2014 Alex Meade.  All rights reserved."},{"line_number":2,"context_line":"# Copyright (c) 2015 Clinton Knight.  All rights reserved."},{"line_number":3,"context_line":"# Copyright (c) 2015 Tom Barron.  All rights reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"40f69b33_ebdee2fb","line":3,"range":{"start_line":1,"start_character":4,"end_line":3,"end_character":54},"in_reply_to":"a23461fa_eb17d886","updated":"2023-02-13 23:59:22.000000000","message":"+1","commit_id":"97dfa20a995869becb89d7ec35e68d2a4240cd8f"}],"manila/tests/share/drivers/netapp/dataontap/client/test_rest_api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"89b39882024863436d01a6e7c17470514a66846f","unresolved":true,"context_lines":[{"line_number":16,"context_line":"Tests for NetApp REST API layer"},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_serialization import jsonutils"},{"line_number":20,"context_line":"from unittest import mock"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import ddt"}],"source_content_type":"text/x-python","patch_set":8,"id":"d0e80cce_a69361ae","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":40},"updated":"2023-02-13 23:59:22.000000000","message":"this belongs in the second block","commit_id":"d490f70df5c0fba4056c2ee303c00e47de4f46f7"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Tests for NetApp REST API layer"},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from oslo_serialization import jsonutils"},{"line_number":20,"context_line":"from unittest import mock"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import ddt"}],"source_content_type":"text/x-python","patch_set":8,"id":"d8d583be_85fa4725","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":40},"in_reply_to":"d0e80cce_a69361ae","updated":"2023-02-15 14:13:41.000000000","message":"Ack","commit_id":"d490f70df5c0fba4056c2ee303c00e47de4f46f7"}],"releasenotes/notes/netapp-ontap-rest-api-client-4c83c7b931f950cf.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9a2a39bbe806d4e81229b1117c4be72e39fbce1a","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    NetApp driver: it has now the option to request ONTAP operations through"},{"line_number":5,"context_line":"    REST API. The new option `netapp_use_legacy_client` switch between the"},{"line_number":6,"context_line":"    old ZAPI client approach and new REST client. It is default to `True`,"},{"line_number":7,"context_line":"    meaning that the drivers will keep working as before using ZAPI operations."},{"line_number":8,"context_line":"    If desired, this option can be set to `False` connecting with new REST"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"72d3400f_73c49bdb","line":5,"range":{"start_line":5,"start_character":56,"end_line":5,"end_character":62},"updated":"2022-09-15 19:30:30.000000000","message":"allows switching","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"eb7c6bed42230f3390064f2d310dfa468bd17220","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    NetApp driver: it has now the option to request ONTAP operations through"},{"line_number":5,"context_line":"    REST API. The new option `netapp_use_legacy_client` switch between the"},{"line_number":6,"context_line":"    old ZAPI client approach and new REST client. It is default to `True`,"},{"line_number":7,"context_line":"    meaning that the drivers will keep working as before using ZAPI operations."},{"line_number":8,"context_line":"    If desired, this option can be set to `False` connecting with new REST"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"e7929881_57a62fd8","line":5,"range":{"start_line":5,"start_character":56,"end_line":5,"end_character":62},"in_reply_to":"72d3400f_73c49bdb","updated":"2023-02-15 14:13:41.000000000","message":"Done","commit_id":"647310021f3c7d46bd9801826958a54365308b9d"}]}
