)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":19,"context_line":"  \u003e Basic volume operations - methods used to create, delete,"},{"line_number":20,"context_line":"    attach, detach and extend volumes"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The unit tests covering the functions that were migrated were also"},{"line_number":23,"context_line":"included in this patch set."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Co-authored-by: Fábio Oliveira \u003cfabioaurelio1269@gmail.com\u003e"},{"line_number":26,"context_line":"Co-authored-by: Fernando Ferraz \u003csfernand@netapp.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"6e833cab_f0173f8b","line":23,"range":{"start_line":22,"start_character":0,"end_line":23,"end_character":27},"updated":"2022-08-24 18:30:55.000000000","message":"I don\u0027t think it is really needed. The unit tests are a requirement for all patches.","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  \u003e Basic volume operations - methods used to create, delete,"},{"line_number":20,"context_line":"    attach, detach and extend volumes"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The unit tests covering the functions that were migrated were also"},{"line_number":23,"context_line":"included in this patch set."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Co-authored-by: Fábio Oliveira \u003cfabioaurelio1269@gmail.com\u003e"},{"line_number":26,"context_line":"Co-authored-by: Fernando Ferraz \u003csfernand@netapp.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"27efb779_9a22b2cf","line":23,"range":{"start_line":22,"start_character":0,"end_line":23,"end_character":27},"in_reply_to":"6e833cab_f0173f8b","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"4617a811551fc35c7fee786b66cad1bbf67c1b1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"77194a15_737e65cc","updated":"2022-08-29 01:13:59.000000000","message":"I realized that you\u0027ve just missed the release notes.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"6ebbdc77_b738b8c5","updated":"2022-08-24 18:30:55.000000000","message":"Thank you all for providing this new REST support. I added some comments, please, review them.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"43955621fe7ec398989e4f21bfbc0139c75c4452","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"56d97e03_a22f071f","updated":"2022-08-24 14:50:05.000000000","message":"recheck - py39 time out","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"dc0cb6ac50c0581255672b789708dee1c2cc13f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"f1d51758_72eef469","updated":"2022-08-30 10:48:12.000000000","message":"run-NetApp CI","commit_id":"d19823c2580d97f97f41a8be0fa2f4c0cde3d50f"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"0d5f89e0_5dccd2e6","updated":"2022-08-30 15:38:41.000000000","message":"Felipe, thank you so much for your review. I updated the patch with the fixes.","commit_id":"5297d1c421c712f7d59c76548564584b93533337"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"3ebbe9aeab10d5a3f0a1ff8d585a3e5212d4f923","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"be3e18aa_cca38c7e","updated":"2022-09-01 04:37:21.000000000","message":"recheck: failure is not related to the change","commit_id":"30ca341bb95fc9d2f1ad11aca17334e791c5302a"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"f4ba7b876508ad14a53ac4ba9b63650c91a2dfd1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"1a1b1967_27e99b1b","updated":"2022-08-31 12:54:11.000000000","message":"run-NetApp CI","commit_id":"30ca341bb95fc9d2f1ad11aca17334e791c5302a"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"78defeff3bf41e9a2d2dccbd2f9f939978fccde6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"930e7dce_57ef8923","updated":"2022-09-02 12:38:03.000000000","message":"lgtm","commit_id":"4a34ffbec778c1aa8e89014263773607134f1999"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"b12e9654e0bab29fde7abe38d6d78c36d6e8a40a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"d984669e_09881959","updated":"2022-09-06 15:30:40.000000000","message":"recheck: failure is unrelated to the patch","commit_id":"e61027fc1a8598d213149d24b57447dded16278d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"97cfd4d573967c5c086423e2296b44b89f165e7b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"ee871908_67ea5f26","updated":"2022-09-09 02:12:36.000000000","message":"Code looks fine, good test coverage, CI is happy.","commit_id":"00481aed748da34a1b0017a26598e2510505e50c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"abd4af2a688ccc7679c3b6ccb986f04ff3b64684","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"dea8e5df_c65127f3","updated":"2022-09-07 12:44:43.000000000","message":"Honestly I didn\u0027t went through the whole code but there aren\u0027t any driver changes and most of the changes are to support the REST client interaction between the driver and backend. Test coverage also looks good.\n\nNetApp CI has passed for FC and NFS, rechecked for iSCSI but overall LGTM.","commit_id":"00481aed748da34a1b0017a26598e2510505e50c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ca1e9f890d60896eaa60e072c65a3cd7be77a1d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"3af0ece6_304d584b","updated":"2022-09-07 12:43:12.000000000","message":"run-NetApp CI","commit_id":"00481aed748da34a1b0017a26598e2510505e50c"}],"cinder/volume/drivers/netapp/dataontap/client/client_cmode_rest.py":[{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":312,"context_line":"            # permissions."},{"line_number":313,"context_line":"            self.send_request(\u0027%s?return_records\u003dfalse\u0027 % api, \u0027get\u0027,"},{"line_number":314,"context_line":"                              enable_tunneling\u003dFalse)"},{"line_number":315,"context_line":"        except netapp_api.NaApiError as ex:"},{"line_number":316,"context_line":"            if ex.code \u003d\u003d netapp_api.REST_UNAUTHORIZED:"},{"line_number":317,"context_line":"                return False"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        return True"},{"line_number":320,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fed8e215_9e509970","line":317,"range":{"start_line":315,"start_character":7,"end_line":317,"end_character":28},"updated":"2022-08-24 18:30:55.000000000","message":"An api error different from \"REST_UNAUTHORIZED\" would return True. I think that is not the expected behavior, right ?\n\nFor example, you want to know if the user have access to the endpoint `/snapmirror/relationships` and during this request the HTTP fails. The code will return saying that the user supports it, which might not be true.","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"34107e12ce80b199afce13de1cadd12f16721efe","unresolved":false,"context_lines":[{"line_number":312,"context_line":"            # permissions."},{"line_number":313,"context_line":"            self.send_request(\u0027%s?return_records\u003dfalse\u0027 % api, \u0027get\u0027,"},{"line_number":314,"context_line":"                              enable_tunneling\u003dFalse)"},{"line_number":315,"context_line":"        except netapp_api.NaApiError as ex:"},{"line_number":316,"context_line":"            if ex.code \u003d\u003d netapp_api.REST_UNAUTHORIZED:"},{"line_number":317,"context_line":"                return False"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        return True"},{"line_number":320,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dfaee3ef_b4efce9c","line":317,"range":{"start_line":315,"start_character":7,"end_line":317,"end_character":28},"in_reply_to":"694343a5_84b26def","updated":"2022-08-31 04:21:42.000000000","message":"Done","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":true,"context_lines":[{"line_number":312,"context_line":"            # permissions."},{"line_number":313,"context_line":"            self.send_request(\u0027%s?return_records\u003dfalse\u0027 % api, \u0027get\u0027,"},{"line_number":314,"context_line":"                              enable_tunneling\u003dFalse)"},{"line_number":315,"context_line":"        except netapp_api.NaApiError as ex:"},{"line_number":316,"context_line":"            if ex.code \u003d\u003d netapp_api.REST_UNAUTHORIZED:"},{"line_number":317,"context_line":"                return False"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        return True"},{"line_number":320,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"694343a5_84b26def","line":317,"range":{"start_line":315,"start_character":7,"end_line":317,"end_character":28},"in_reply_to":"fed8e215_9e509970","updated":"2022-08-30 15:38:41.000000000","message":"Since this is the same behavior of ZAPI, I think we could keep the code as is. I understand that this function only checks if the user is authorized. If other error is returned, it will be handled when a function calls the same endpoint. \n\nI can add a comment in the code with this explanation. \n\nAre you ok with this approach?","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":366,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"        records \u003d response.get(\u0027records\u0027, [])"},{"line_number":369,"context_line":"        volumes \u003d []"},{"line_number":370,"context_line":"        for volume in records:"},{"line_number":371,"context_line":"            volumes.append(volume[\u0027name\u0027])"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        return volumes"},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"aabf2a23_3c776f63","line":371,"range":{"start_line":369,"start_character":17,"end_line":371,"end_character":42},"updated":"2022-08-24 18:30:55.000000000","message":"volumes \u003d [volume[\u0027name\u0027] for volume in records]","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":366,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"        records \u003d response.get(\u0027records\u0027, [])"},{"line_number":369,"context_line":"        volumes \u003d []"},{"line_number":370,"context_line":"        for volume in records:"},{"line_number":371,"context_line":"            volumes.append(volume[\u0027name\u0027])"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        return volumes"},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f45e3d1_198ec702","line":371,"range":{"start_line":369,"start_character":17,"end_line":371,"end_character":42},"in_reply_to":"aabf2a23_3c776f63","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":373,"context_line":"        return volumes"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    def _get_unique_volume(self, records):"},{"line_number":376,"context_line":"        \"\"\"Get the unique FlexVol or FlexGroup volume from a volume list\"\"\""},{"line_number":377,"context_line":"        volume_list \u003d []"},{"line_number":378,"context_line":"        for volume in records:"},{"line_number":379,"context_line":"            style \u003d volume.get(\u0027style\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"eccaa1f9_2c6cbeaf","line":376,"range":{"start_line":376,"start_character":68,"end_line":376,"end_character":72},"updated":"2022-08-24 18:30:55.000000000","message":"nit: list.","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":373,"context_line":"        return volumes"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    def _get_unique_volume(self, records):"},{"line_number":376,"context_line":"        \"\"\"Get the unique FlexVol or FlexGroup volume from a volume list\"\"\""},{"line_number":377,"context_line":"        volume_list \u003d []"},{"line_number":378,"context_line":"        for volume in records:"},{"line_number":379,"context_line":"            style \u003d volume.get(\u0027style\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"e83310a6_c07f5c7d","line":376,"range":{"start_line":376,"start_character":68,"end_line":376,"end_character":72},"in_reply_to":"eccaa1f9_2c6cbeaf","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":418,"context_line":""},{"line_number":419,"context_line":"        junction_path \u003d ("},{"line_number":420,"context_line":"            unique_volume.get(\u0027nas\u0027, {})"},{"line_number":421,"context_line":"            .get(\u0027path\u0027, netapp_api.NaElement(\u0027none\u0027)))"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        aggregate \u003d None"},{"line_number":424,"context_line":"        if unique_volume[\u0027style\u0027] \u003d\u003d \u0027flexvol\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"8b4130b9_f17d0336","line":421,"range":{"start_line":421,"start_character":25,"end_line":421,"end_character":52},"updated":"2022-08-24 18:30:55.000000000","message":"why does the default state  is a NaElement ? NaElement is an object used by translating ZAPI. It should not be used on REST scope, otherwise it would make REST depending on ZAPI style.","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":418,"context_line":""},{"line_number":419,"context_line":"        junction_path \u003d ("},{"line_number":420,"context_line":"            unique_volume.get(\u0027nas\u0027, {})"},{"line_number":421,"context_line":"            .get(\u0027path\u0027, netapp_api.NaElement(\u0027none\u0027)))"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        aggregate \u003d None"},{"line_number":424,"context_line":"        if unique_volume[\u0027style\u0027] \u003d\u003d \u0027flexvol\u0027:"}],"source_content_type":"text/x-python","patch_set":7,"id":"fac7c075_c9096559","line":421,"range":{"start_line":421,"start_character":25,"end_line":421,"end_character":52},"in_reply_to":"8b4130b9_f17d0336","updated":"2022-08-30 15:38:41.000000000","message":"Probably the idea here was to keep the same result as ZAPI, but now I see this is not needed. I\u0027ll change the code.","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":424,"context_line":"        if unique_volume[\u0027style\u0027] \u003d\u003d \u0027flexvol\u0027:"},{"line_number":425,"context_line":"            aggregate \u003d (unique_volume[\u0027aggregates\u0027][0][\u0027name\u0027]"},{"line_number":426,"context_line":"                         if len(unique_volume.get(\u0027aggregates\u0027, [])) \u003e 0"},{"line_number":427,"context_line":"                         else netapp_api.NaElement(\u0027none\u0027))"},{"line_number":428,"context_line":"        else:"},{"line_number":429,"context_line":"            aggregate \u003d [aggr[\"name\"]"},{"line_number":430,"context_line":"                         for aggr in unique_volume.get(\u0027aggregates\u0027, [])]"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf5f01b0_0b244630","line":427,"range":{"start_line":427,"start_character":31,"end_line":427,"end_character":58},"updated":"2022-08-24 18:30:55.000000000","message":"same about naElement","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        if unique_volume[\u0027style\u0027] \u003d\u003d \u0027flexvol\u0027:"},{"line_number":425,"context_line":"            aggregate \u003d (unique_volume[\u0027aggregates\u0027][0][\u0027name\u0027]"},{"line_number":426,"context_line":"                         if len(unique_volume.get(\u0027aggregates\u0027, [])) \u003e 0"},{"line_number":427,"context_line":"                         else netapp_api.NaElement(\u0027none\u0027))"},{"line_number":428,"context_line":"        else:"},{"line_number":429,"context_line":"            aggregate \u003d [aggr[\"name\"]"},{"line_number":430,"context_line":"                         for aggr in unique_volume.get(\u0027aggregates\u0027, [])]"}],"source_content_type":"text/x-python","patch_set":7,"id":"688c2ec8_fbd0a9c2","line":427,"range":{"start_line":427,"start_character":31,"end_line":427,"end_character":58},"in_reply_to":"bf5f01b0_0b244630","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":432,"context_line":"        qos_policy_group \u003d ("},{"line_number":433,"context_line":"            unique_volume.get(\u0027qos\u0027, {})"},{"line_number":434,"context_line":"            .get(\u0027policy\u0027, {})"},{"line_number":435,"context_line":"            .get(\u0027name\u0027, netapp_api.NaElement(\u0027none\u0027)))"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        volume \u003d {"},{"line_number":438,"context_line":"            \u0027name\u0027: unique_volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"ee3e0901_eb0d7075","line":435,"range":{"start_line":435,"start_character":24,"end_line":435,"end_character":53},"updated":"2022-08-24 18:30:55.000000000","message":"same about NaElement","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        qos_policy_group \u003d ("},{"line_number":433,"context_line":"            unique_volume.get(\u0027qos\u0027, {})"},{"line_number":434,"context_line":"            .get(\u0027policy\u0027, {})"},{"line_number":435,"context_line":"            .get(\u0027name\u0027, netapp_api.NaElement(\u0027none\u0027)))"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        volume \u003d {"},{"line_number":438,"context_line":"            \u0027name\u0027: unique_volume[\u0027name\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"35a231e8_b51ec42e","line":435,"range":{"start_line":435,"start_character":24,"end_line":435,"end_character":53},"in_reply_to":"ee3e0901_eb0d7075","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"d228cf49cb21723fd6603769eddd275c0a3a5a27"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        return volumes"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    def _get_unique_volume(self, records):"},{"line_number":376,"context_line":"        \"\"\"Get the unique FlexVol or FlexGroup volume from a volume list\"\"\""},{"line_number":377,"context_line":"        volume_list \u003d []"},{"line_number":378,"context_line":"        for volume in records:"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba386e16_206fe1fb","line":375,"range":{"start_line":375,"start_character":8,"end_line":375,"end_character":26},"updated":"2022-08-24 18:30:55.000000000","message":"I think we don\u0027t need this function on the REST get volumes request. This method was inserted with FlexGroup support [1]. The reason for that was because calling the ZAPI \"get-volume-iter\" it also returns the FlexGroup Constituents volumes (volumes that form the FlexGroup volume). So, this method is parsing the returned volume and removing the non flexvol/flexgroup style (that\u0027s it, removing the constituents). In the REST context, calling the GET /storage/volumes with style\u003dflex* does not return the constituents (at least on my tests, am I right ?). So, this function is not required. The check len() !\u003d 1 can be kept, though,\n\n[1]https://review.opendev.org/c/openstack/cinder/+/776713/6/cinder/volume/drivers/netapp/dataontap/client/client_cmode.py#1052","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":true,"context_lines":[{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        return volumes"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    def _get_unique_volume(self, records):"},{"line_number":376,"context_line":"        \"\"\"Get the unique FlexVol or FlexGroup volume from a volume list\"\"\""},{"line_number":377,"context_line":"        volume_list \u003d []"},{"line_number":378,"context_line":"        for volume in records:"}],"source_content_type":"text/x-python","patch_set":8,"id":"d586e3a1_48db51ca","line":375,"range":{"start_line":375,"start_character":8,"end_line":375,"end_character":26},"in_reply_to":"ba386e16_206fe1fb","updated":"2022-08-30 15:38:41.000000000","message":"I agree. We added this to replicate the ZAPI behavior, but REST API does not return the constituents. I think I can keep the function and the length verification because it still makes sense to check if the list of records is not empty.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"34107e12ce80b199afce13de1cadd12f16721efe","unresolved":false,"context_lines":[{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        return volumes"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    def _get_unique_volume(self, records):"},{"line_number":376,"context_line":"        \"\"\"Get the unique FlexVol or FlexGroup volume from a volume list\"\"\""},{"line_number":377,"context_line":"        volume_list \u003d []"},{"line_number":378,"context_line":"        for volume in records:"}],"source_content_type":"text/x-python","patch_set":8,"id":"2c17a920_92186825","line":375,"range":{"start_line":375,"start_character":8,"end_line":375,"end_character":26},"in_reply_to":"d586e3a1_48db51ca","updated":"2022-08-31 04:21:42.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":423,"context_line":"        aggregate \u003d None"},{"line_number":424,"context_line":"        if unique_volume[\u0027style\u0027] \u003d\u003d \u0027flexvol\u0027:"},{"line_number":425,"context_line":"            aggregate \u003d (unique_volume[\u0027aggregates\u0027][0][\u0027name\u0027]"},{"line_number":426,"context_line":"                         if len(unique_volume.get(\u0027aggregates\u0027, [])) \u003e 0"},{"line_number":427,"context_line":"                         else netapp_api.NaElement(\u0027none\u0027))"},{"line_number":428,"context_line":"        else:"},{"line_number":429,"context_line":"            aggregate \u003d [aggr[\"name\"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"2515b32c_9d0c0fa1","line":426,"range":{"start_line":426,"start_character":25,"end_line":426,"end_character":72},"updated":"2022-08-24 18:30:55.000000000","message":"can the REST API respond with a FlexVol containing an aggregates list with length less or equal 0 ?","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        aggregate \u003d None"},{"line_number":424,"context_line":"        if unique_volume[\u0027style\u0027] \u003d\u003d \u0027flexvol\u0027:"},{"line_number":425,"context_line":"            aggregate \u003d (unique_volume[\u0027aggregates\u0027][0][\u0027name\u0027]"},{"line_number":426,"context_line":"                         if len(unique_volume.get(\u0027aggregates\u0027, [])) \u003e 0"},{"line_number":427,"context_line":"                         else netapp_api.NaElement(\u0027none\u0027))"},{"line_number":428,"context_line":"        else:"},{"line_number":429,"context_line":"            aggregate \u003d [aggr[\"name\"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"e2ada5f8_4452841d","line":426,"range":{"start_line":426,"start_character":25,"end_line":426,"end_character":72},"in_reply_to":"2515b32c_9d0c0fa1","updated":"2022-08-30 15:38:41.000000000","message":"We got confused with \u0027aggregate\u0027 and \u0027aggr-list\u0027 here. In ZAPI these fields were separated and one of them could be empty. The only thing we needed is to return one element when volume is a \u0027flexvol\u0027 and a list when volume is a \u0027flexgroup\u0027. I\u0027ll change the code.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":465,"context_line":"        try:"},{"line_number":466,"context_line":"            response \u003d self.send_request(\u0027/snapmirror/relationships/\u0027,"},{"line_number":467,"context_line":"                                         \u0027get\u0027, query\u003dquery)"},{"line_number":468,"context_line":"            if response[\u0027num_records\u0027] \u003e 0:"},{"line_number":469,"context_line":"                return True"},{"line_number":470,"context_line":"        except netapp_api.NaApiError:"},{"line_number":471,"context_line":"            LOG.exception(\u0027Failed to get SnapMirror info for volume %s.\u0027,"},{"line_number":472,"context_line":"                          flexvol_name)"}],"source_content_type":"text/x-python","patch_set":8,"id":"b021bfaa_c512bbfe","line":469,"range":{"start_line":468,"start_character":11,"end_line":469,"end_character":27},"updated":"2022-08-24 18:30:55.000000000","message":"with the response you could return:\n\nreturn response[\u0027num_records\u0027] \u003e 0","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        try:"},{"line_number":466,"context_line":"            response \u003d self.send_request(\u0027/snapmirror/relationships/\u0027,"},{"line_number":467,"context_line":"                                         \u0027get\u0027, query\u003dquery)"},{"line_number":468,"context_line":"            if response[\u0027num_records\u0027] \u003e 0:"},{"line_number":469,"context_line":"                return True"},{"line_number":470,"context_line":"        except netapp_api.NaApiError:"},{"line_number":471,"context_line":"            LOG.exception(\u0027Failed to get SnapMirror info for volume %s.\u0027,"},{"line_number":472,"context_line":"                          flexvol_name)"}],"source_content_type":"text/x-python","patch_set":8,"id":"c7560ef3_cd17682a","line":469,"range":{"start_line":468,"start_character":11,"end_line":469,"end_character":27},"in_reply_to":"b021bfaa_c512bbfe","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":470,"context_line":"        except netapp_api.NaApiError:"},{"line_number":471,"context_line":"            LOG.exception(\u0027Failed to get SnapMirror info for volume %s.\u0027,"},{"line_number":472,"context_line":"                          flexvol_name)"},{"line_number":473,"context_line":"            return False"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        return False"},{"line_number":476,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"05878086_d5ac3108","line":473,"range":{"start_line":473,"start_character":11,"end_line":473,"end_character":24},"updated":"2022-08-24 18:30:55.000000000","message":"can be removed, since the line 475 is already returning False.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":470,"context_line":"        except netapp_api.NaApiError:"},{"line_number":471,"context_line":"            LOG.exception(\u0027Failed to get SnapMirror info for volume %s.\u0027,"},{"line_number":472,"context_line":"                          flexvol_name)"},{"line_number":473,"context_line":"            return False"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        return False"},{"line_number":476,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ebbbb2f6_2fd8e9b7","line":473,"range":{"start_line":473,"start_character":11,"end_line":473,"end_character":24},"in_reply_to":"05878086_d5ac3108","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":490,"context_line":"        try:"},{"line_number":491,"context_line":"            response \u003d self.send_request("},{"line_number":492,"context_line":"                \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":493,"context_line":"            if response[\u0027num_records\u0027] \u003e 0:"},{"line_number":494,"context_line":"                return True"},{"line_number":495,"context_line":"        except netapp_api.NaApiError:"},{"line_number":496,"context_line":"            LOG.exception(\u0027Failed to get Encryption info for volume %s.\u0027,"},{"line_number":497,"context_line":"                          flexvol_name)"}],"source_content_type":"text/x-python","patch_set":8,"id":"be672388_7a78efc1","line":494,"range":{"start_line":493,"start_character":11,"end_line":494,"end_character":27},"updated":"2022-08-24 18:30:55.000000000","message":"could return anyway:\n\nreturn response[\u0027num_records\u0027] \u003e 0","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        try:"},{"line_number":491,"context_line":"            response \u003d self.send_request("},{"line_number":492,"context_line":"                \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":493,"context_line":"            if response[\u0027num_records\u0027] \u003e 0:"},{"line_number":494,"context_line":"                return True"},{"line_number":495,"context_line":"        except netapp_api.NaApiError:"},{"line_number":496,"context_line":"            LOG.exception(\u0027Failed to get Encryption info for volume %s.\u0027,"},{"line_number":497,"context_line":"                          flexvol_name)"}],"source_content_type":"text/x-python","patch_set":8,"id":"19e6ad14_f72ed119","line":494,"range":{"start_line":493,"start_character":11,"end_line":494,"end_character":27},"in_reply_to":"be672388_7a78efc1","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":495,"context_line":"        except netapp_api.NaApiError:"},{"line_number":496,"context_line":"            LOG.exception(\u0027Failed to get Encryption info for volume %s.\u0027,"},{"line_number":497,"context_line":"                          flexvol_name)"},{"line_number":498,"context_line":"            return False"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"        return False"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fd01e7bb_1f3acc69","line":498,"range":{"start_line":498,"start_character":10,"end_line":498,"end_character":24},"updated":"2022-08-24 18:30:55.000000000","message":"can be removed, line 500 will return it in case of catching exception.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        except netapp_api.NaApiError:"},{"line_number":496,"context_line":"            LOG.exception(\u0027Failed to get Encryption info for volume %s.\u0027,"},{"line_number":497,"context_line":"                          flexvol_name)"},{"line_number":498,"context_line":"            return False"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"        return False"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"b003884e_4b812bf9","line":498,"range":{"start_line":498,"start_character":10,"end_line":498,"end_character":24},"in_reply_to":"fd01e7bb_1f3acc69","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":502,"context_line":"    def get_aggregate_disk_types(self, aggregate_name):"},{"line_number":503,"context_line":"        \"\"\"Get the disk type(s) of an aggregate.\"\"\""},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"        disk_types \u003d set()"},{"line_number":506,"context_line":"        disk_types.update(self._get_aggregate_disk_types(aggregate_name))"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        return list(disk_types) if disk_types else None"},{"line_number":509,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bb2abb17_458f7610","line":506,"range":{"start_line":505,"start_character":8,"end_line":506,"end_character":73},"updated":"2022-08-24 18:30:55.000000000","message":"the function _get_aggregate_disk_types already returns a set, so it doesnt need the update call:\n\ndisk_types \u003d self._get_aggregate_disk_types(aggregate_name)","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":502,"context_line":"    def get_aggregate_disk_types(self, aggregate_name):"},{"line_number":503,"context_line":"        \"\"\"Get the disk type(s) of an aggregate.\"\"\""},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"        disk_types \u003d set()"},{"line_number":506,"context_line":"        disk_types.update(self._get_aggregate_disk_types(aggregate_name))"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        return list(disk_types) if disk_types else None"},{"line_number":509,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9e6214f5_f5bdff46","line":506,"range":{"start_line":505,"start_character":8,"end_line":506,"end_character":73},"in_reply_to":"bb2abb17_458f7610","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":508,"context_line":"        return list(disk_types) if disk_types else None"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    def _get_aggregate_disk_types(self, aggregate_name):"},{"line_number":511,"context_line":"        \"\"\"Get the disk type(s) of an aggregate (may be a list).\"\"\""},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        disk_types \u003d set()"},{"line_number":514,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"687a4faf_4a3ccd62","line":511,"range":{"start_line":511,"start_character":50,"end_line":511,"end_character":62},"updated":"2022-08-24 18:30:55.000000000","message":"the returned data is always a set, see line 513","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":508,"context_line":"        return list(disk_types) if disk_types else None"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    def _get_aggregate_disk_types(self, aggregate_name):"},{"line_number":511,"context_line":"        \"\"\"Get the disk type(s) of an aggregate (may be a list).\"\"\""},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        disk_types \u003d set()"},{"line_number":514,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"de7a11f6_dd8f6e62","line":511,"range":{"start_line":511,"start_character":50,"end_line":511,"end_character":62},"in_reply_to":"687a4faf_4a3ccd62","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":550,"context_line":"        if not aggregate_name:"},{"line_number":551,"context_line":"            return {}"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        # TODO(nahimsouza): As soon NetApp REST API supports \u0027is-hybrid\u0027"},{"line_number":554,"context_line":"        # attribute, it shall be added to the following list."},{"line_number":555,"context_line":"        fields \u003d \u0027name,block_storage.primary.raid_type,home_node.name\u0027"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"fcadd13e_dcc960d6","line":554,"range":{"start_line":553,"start_character":8,"end_line":554,"end_character":61},"updated":"2022-08-24 18:30:55.000000000","message":"can the `is-hybrid` information be retrieved from the storage type ? Doing:\n\nis_hybrid \u003d block_storage.storage_type \u003d\u003d \u0027hybrid\u0027","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":550,"context_line":"        if not aggregate_name:"},{"line_number":551,"context_line":"            return {}"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"        # TODO(nahimsouza): As soon NetApp REST API supports \u0027is-hybrid\u0027"},{"line_number":554,"context_line":"        # attribute, it shall be added to the following list."},{"line_number":555,"context_line":"        fields \u003d \u0027name,block_storage.primary.raid_type,home_node.name\u0027"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5d7eb070_bc478578","line":554,"range":{"start_line":553,"start_character":8,"end_line":554,"end_character":61},"in_reply_to":"fcadd13e_dcc960d6","updated":"2022-08-30 15:38:41.000000000","message":"Yes, this works. When this function was implemented this field was not available in the API, but according to the doc, this field is available now in the latest version of ONTAP (9.11.1). I\u0027ll update the code. Good catch!","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"    def is_qos_min_supported(self, is_nfs, node_name):"},{"line_number":581,"context_line":"        \"\"\"Check if the node supports QoS minimum.\"\"\""},{"line_number":582,"context_line":"        qos_min_name \u003d na_utils.qos_min_feature_name(is_nfs, node_name)"},{"line_number":583,"context_line":"        return getattr(self.features, qos_min_name, False).__bool__()"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    def get_flexvol_dedupe_info(self, flexvol_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"f594b0d8_34ef10c1","line":582,"updated":"2022-08-24 18:30:55.000000000","message":"please, add the same flow as the client_cmode, before checking the node_name is set:\n\nif node_name is None:\n            # whether no access to node name (SVM account or error), the QoS\n            # min support is dropped.\n            return False","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"    def is_qos_min_supported(self, is_nfs, node_name):"},{"line_number":581,"context_line":"        \"\"\"Check if the node supports QoS minimum.\"\"\""},{"line_number":582,"context_line":"        qos_min_name \u003d na_utils.qos_min_feature_name(is_nfs, node_name)"},{"line_number":583,"context_line":"        return getattr(self.features, qos_min_name, False).__bool__()"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    def get_flexvol_dedupe_info(self, flexvol_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5ea839e0_7f91702f","line":582,"in_reply_to":"f594b0d8_34ef10c1","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":611,"context_line":""},{"line_number":612,"context_line":"        state \u003d response[\"records\"][0][\"efficiency\"][\"state\"]"},{"line_number":613,"context_line":"        compression \u003d response[\"records\"][0][\"efficiency\"][\"compression\"]"},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"        # TODO(nahimsouza): As soon as REST API suuports"},{"line_number":616,"context_line":"        # \u0027logical-data-size and \u0027logical-data-limit\u0027, we should include"},{"line_number":617,"context_line":"        # them in the query and set them correctly."},{"line_number":618,"context_line":"        logical_data_size \u003d \\"},{"line_number":619,"context_line":"            response[\"records\"][0][\"efficiency\"].get(\u0027logical_data_size\u0027, 0)"},{"line_number":620,"context_line":"        logical_data_limit \u003d \\"}],"source_content_type":"text/x-python","patch_set":8,"id":"9b21e67a_83f90785","line":617,"range":{"start_line":614,"start_character":0,"end_line":617,"end_character":51},"updated":"2022-08-24 18:30:55.000000000","message":"How would it affect the driver ? Does it have any estimation for this feature be on ONTAP REST API ?","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":611,"context_line":""},{"line_number":612,"context_line":"        state \u003d response[\"records\"][0][\"efficiency\"][\"state\"]"},{"line_number":613,"context_line":"        compression \u003d response[\"records\"][0][\"efficiency\"][\"compression\"]"},{"line_number":614,"context_line":""},{"line_number":615,"context_line":"        # TODO(nahimsouza): As soon as REST API suuports"},{"line_number":616,"context_line":"        # \u0027logical-data-size and \u0027logical-data-limit\u0027, we should include"},{"line_number":617,"context_line":"        # them in the query and set them correctly."},{"line_number":618,"context_line":"        logical_data_size \u003d \\"},{"line_number":619,"context_line":"            response[\"records\"][0][\"efficiency\"].get(\u0027logical_data_size\u0027, 0)"},{"line_number":620,"context_line":"        logical_data_limit \u003d \\"}],"source_content_type":"text/x-python","patch_set":8,"id":"42073b24_a7e03f22","line":617,"range":{"start_line":614,"start_character":0,"end_line":617,"end_character":51},"in_reply_to":"9b21e67a_83f90785","updated":"2022-08-30 15:38:41.000000000","message":"These fields are used only by the client function `get_flexvol_dedupe_used_percent`, which was not implemented in the REST client yet. Therefore, ZAPI client will be used and it will not affect the driver behavior in anyway. \n\nWe still don\u0027t have an estimation for the support of this feature in the REST API.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":620,"context_line":"        logical_data_limit \u003d \\"},{"line_number":621,"context_line":"            response[\"records\"][0][\"efficiency\"].get(\u0027logical_data_limit\u0027, 1)"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        sis \u003d {"},{"line_number":624,"context_line":"            \u0027compression\u0027: False if compression \u003d\u003d \"none\" else True,"},{"line_number":625,"context_line":"            \u0027dedupe\u0027: False if state \u003d\u003d \"disabled\" else True,"},{"line_number":626,"context_line":"            \u0027logical-data-size\u0027: logical_data_size,"}],"source_content_type":"text/x-python","patch_set":8,"id":"dc9fc7b2_5b61df94","line":623,"range":{"start_line":623,"start_character":8,"end_line":623,"end_character":12},"updated":"2022-08-24 18:30:55.000000000","message":"sis ? it is used on ZAPI because of the ZAPI call name, here, it has no meaning. Maybe: dedupe_info","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        logical_data_limit \u003d \\"},{"line_number":621,"context_line":"            response[\"records\"][0][\"efficiency\"].get(\u0027logical_data_limit\u0027, 1)"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        sis \u003d {"},{"line_number":624,"context_line":"            \u0027compression\u0027: False if compression \u003d\u003d \"none\" else True,"},{"line_number":625,"context_line":"            \u0027dedupe\u0027: False if state \u003d\u003d \"disabled\" else True,"},{"line_number":626,"context_line":"            \u0027logical-data-size\u0027: logical_data_size,"}],"source_content_type":"text/x-python","patch_set":8,"id":"c08cda95_5e2350d5","line":623,"range":{"start_line":623,"start_character":8,"end_line":623,"end_character":12},"in_reply_to":"dc9fc7b2_5b61df94","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        return lun_list"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def _get_volumes_by_name(self, vol_name):"},{"line_number":715,"context_line":"        query \u003d {"},{"line_number":716,"context_line":"            \u0027type\u0027: \u0027rw\u0027,"},{"line_number":717,"context_line":"            \u0027style\u0027: \u0027flex*\u0027,"},{"line_number":718,"context_line":"            \u0027is_svm_root\u0027: \u0027false\u0027,"},{"line_number":719,"context_line":"            \u0027error_state.is_inconsistent\u0027: \u0027false\u0027,"},{"line_number":720,"context_line":"            \u0027state\u0027: \u0027online\u0027,"},{"line_number":721,"context_line":"            \u0027name\u0027: vol_name,"},{"line_number":722,"context_line":"            \u0027fields\u0027: \u0027name,style\u0027"},{"line_number":723,"context_line":"        }"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        volumes_response \u003d self.send_request("},{"line_number":726,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        return volumes_response.get(\u0027records\u0027, [])"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    def _get_unique_volume_by_name(self, vol_name):"},{"line_number":731,"context_line":"        records \u003d self._get_volumes_by_name(vol_name)"},{"line_number":732,"context_line":"        return self._get_unique_volume(records)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"    def get_lun_sizes_by_volume(self, volume_name):"},{"line_number":735,"context_line":"        \"\"\"\"Gets the list of LUNs and their sizes from a given volume name\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"6877164f_dc692024","line":732,"range":{"start_line":714,"start_character":0,"end_line":732,"end_character":47},"updated":"2022-08-24 18:30:55.000000000","message":"this auxiliary function will be very useful, but: why is it divided in two functions: `get_volumeS_by_name` and `get_unique_volume_by_name` ? Actually, the is volume name is unique in the SVM scope, so there is no need to have one to get \"volumes\" and other to get \"unique\", it always will be unique if context is SVM scoped. Maybe just one function: \"_get_volume_by_name\"","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":true,"context_lines":[{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        return lun_list"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def _get_volumes_by_name(self, vol_name):"},{"line_number":715,"context_line":"        query \u003d {"},{"line_number":716,"context_line":"            \u0027type\u0027: \u0027rw\u0027,"},{"line_number":717,"context_line":"            \u0027style\u0027: \u0027flex*\u0027,"},{"line_number":718,"context_line":"            \u0027is_svm_root\u0027: \u0027false\u0027,"},{"line_number":719,"context_line":"            \u0027error_state.is_inconsistent\u0027: \u0027false\u0027,"},{"line_number":720,"context_line":"            \u0027state\u0027: \u0027online\u0027,"},{"line_number":721,"context_line":"            \u0027name\u0027: vol_name,"},{"line_number":722,"context_line":"            \u0027fields\u0027: \u0027name,style\u0027"},{"line_number":723,"context_line":"        }"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        volumes_response \u003d self.send_request("},{"line_number":726,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        return volumes_response.get(\u0027records\u0027, [])"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    def _get_unique_volume_by_name(self, vol_name):"},{"line_number":731,"context_line":"        records \u003d self._get_volumes_by_name(vol_name)"},{"line_number":732,"context_line":"        return self._get_unique_volume(records)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"    def get_lun_sizes_by_volume(self, volume_name):"},{"line_number":735,"context_line":"        \"\"\"\"Gets the list of LUNs and their sizes from a given volume name\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a4517d9_d6b2d04c","line":732,"range":{"start_line":714,"start_character":0,"end_line":732,"end_character":47},"in_reply_to":"6877164f_dc692024","updated":"2022-08-30 15:38:41.000000000","message":"Makes sense. I decided to make a small refactoring, changing the name to \u0027get_volume_by_args\u0027, so it can be reused in more cases. The idea is to use this function whenever we need info from a single volume. Please take a look in the latest patch and let me know if you have any concerns about this.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"34107e12ce80b199afce13de1cadd12f16721efe","unresolved":false,"context_lines":[{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        return lun_list"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def _get_volumes_by_name(self, vol_name):"},{"line_number":715,"context_line":"        query \u003d {"},{"line_number":716,"context_line":"            \u0027type\u0027: \u0027rw\u0027,"},{"line_number":717,"context_line":"            \u0027style\u0027: \u0027flex*\u0027,"},{"line_number":718,"context_line":"            \u0027is_svm_root\u0027: \u0027false\u0027,"},{"line_number":719,"context_line":"            \u0027error_state.is_inconsistent\u0027: \u0027false\u0027,"},{"line_number":720,"context_line":"            \u0027state\u0027: \u0027online\u0027,"},{"line_number":721,"context_line":"            \u0027name\u0027: vol_name,"},{"line_number":722,"context_line":"            \u0027fields\u0027: \u0027name,style\u0027"},{"line_number":723,"context_line":"        }"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"        volumes_response \u003d self.send_request("},{"line_number":726,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"        return volumes_response.get(\u0027records\u0027, [])"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    def _get_unique_volume_by_name(self, vol_name):"},{"line_number":731,"context_line":"        records \u003d self._get_volumes_by_name(vol_name)"},{"line_number":732,"context_line":"        return self._get_unique_volume(records)"},{"line_number":733,"context_line":""},{"line_number":734,"context_line":"    def get_lun_sizes_by_volume(self, volume_name):"},{"line_number":735,"context_line":"        \"\"\"\"Gets the list of LUNs and their sizes from a given volume name\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"c1d19aaf_319d8396","line":732,"range":{"start_line":714,"start_character":0,"end_line":732,"end_character":47},"in_reply_to":"9a4517d9_d6b2d04c","updated":"2022-08-31 04:21:42.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":740,"context_line":"        }"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"        response \u003d self.send_request("},{"line_number":743,"context_line":"            \u0027/storage/luns/\u0027, \u0027get\u0027, query\u003dquery, max_page_length\u003d100)"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"        if response[\u0027num_records\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":746,"context_line":"            return []"}],"source_content_type":"text/x-python","patch_set":8,"id":"353541ed_91683f7d","line":743,"range":{"start_line":743,"start_character":49,"end_line":743,"end_character":68},"updated":"2022-08-24 18:30:55.000000000","message":"why is this page being set ? It might use the default one. On ZAPI it makes sense, because the default is 50, so it increases to 100. For REST, the default already is a huge value (10000), right ?","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":740,"context_line":"        }"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"        response \u003d self.send_request("},{"line_number":743,"context_line":"            \u0027/storage/luns/\u0027, \u0027get\u0027, query\u003dquery, max_page_length\u003d100)"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"        if response[\u0027num_records\u0027] \u003d\u003d \u00270\u0027:"},{"line_number":746,"context_line":"            return []"}],"source_content_type":"text/x-python","patch_set":8,"id":"581335c3_8a41ae26","line":743,"range":{"start_line":743,"start_character":49,"end_line":743,"end_character":68},"in_reply_to":"353541ed_91683f7d","updated":"2022-08-30 15:38:41.000000000","message":"I agree, this was just a copy-and-paste from ZAPI, but I\u0027m going to remove.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":762,"context_line":"            \u0027fields\u0027: \u0027size,name\u0027"},{"line_number":763,"context_line":"        }"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"        # get the relative file path in volume"},{"line_number":766,"context_line":"        full_path \u003d f\u0027/vol/{dir_path}\u0027"},{"line_number":767,"context_line":"        relative_path \u003d \u0027/\u0027.join(full_path.split(\u0027/\u0027)[3:])"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"        # Path requires \"%2E\" to represent \".\" and \"%2F\" to represent \"/\"."},{"line_number":770,"context_line":"        relative_path \u003d relative_path.replace(\u0027.\u0027, \u0027%2E\u0027).replace(\u0027/\u0027, \u0027%2F\u0027)"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"        vol_uuid \u003d unique_volume[\u0027uuid\u0027]"},{"line_number":773,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"56b855fa_19a6efab","line":770,"range":{"start_line":765,"start_character":8,"end_line":770,"end_character":77},"updated":"2022-08-24 18:30:55.000000000","message":"could you please explain why this code is used for ? From my analysis, the dir_path will always be a FlexVol name (not a dir path). So, the `relative_path` will always be empty string. am I wrong ?","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":762,"context_line":"            \u0027fields\u0027: \u0027size,name\u0027"},{"line_number":763,"context_line":"        }"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"        # get the relative file path in volume"},{"line_number":766,"context_line":"        full_path \u003d f\u0027/vol/{dir_path}\u0027"},{"line_number":767,"context_line":"        relative_path \u003d \u0027/\u0027.join(full_path.split(\u0027/\u0027)[3:])"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"        # Path requires \"%2E\" to represent \".\" and \"%2F\" to represent \"/\"."},{"line_number":770,"context_line":"        relative_path \u003d relative_path.replace(\u0027.\u0027, \u0027%2E\u0027).replace(\u0027/\u0027, \u0027%2F\u0027)"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"        vol_uuid \u003d unique_volume[\u0027uuid\u0027]"},{"line_number":773,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f3c05a8_a8506dd9","line":770,"range":{"start_line":765,"start_character":8,"end_line":770,"end_character":77},"in_reply_to":"56b855fa_19a6efab","updated":"2022-08-30 15:38:41.000000000","message":"I think this was implemented to make the function more generic, but you are correct, currently \u0027dir_path\u0027 will be always a FlexVol name. I\u0027ll remove these lines to avoid any confusion.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":773,"context_line":"        try:"},{"line_number":774,"context_line":"            response \u003d self.send_request("},{"line_number":775,"context_line":"                f\u0027/storage/volumes/{vol_uuid}/files/{relative_path}\u0027,"},{"line_number":776,"context_line":"                \u0027get\u0027, query\u003dquery, max_page_length\u003d100)"},{"line_number":777,"context_line":"        except netapp_api.NaApiError as e:"},{"line_number":778,"context_line":"            if e.code \u003d\u003d netapp_api.REST_NO_SUCH_FILE:"},{"line_number":779,"context_line":"                return []"}],"source_content_type":"text/x-python","patch_set":8,"id":"15982b64_3d9db41a","line":776,"range":{"start_line":776,"start_character":36,"end_line":776,"end_character":55},"updated":"2022-08-24 18:30:55.000000000","message":"same about page length","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":773,"context_line":"        try:"},{"line_number":774,"context_line":"            response \u003d self.send_request("},{"line_number":775,"context_line":"                f\u0027/storage/volumes/{vol_uuid}/files/{relative_path}\u0027,"},{"line_number":776,"context_line":"                \u0027get\u0027, query\u003dquery, max_page_length\u003d100)"},{"line_number":777,"context_line":"        except netapp_api.NaApiError as e:"},{"line_number":778,"context_line":"            if e.code \u003d\u003d netapp_api.REST_NO_SUCH_FILE:"},{"line_number":779,"context_line":"                return []"}],"source_content_type":"text/x-python","patch_set":8,"id":"155fca3a_abef57a1","line":776,"range":{"start_line":776,"start_character":36,"end_line":776,"end_character":55},"in_reply_to":"15982b64_3d9db41a","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":789,"context_line":"        return files"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"    def get_volume_state(self, junction_path\u003dNone, name\u003dNone):"},{"line_number":792,"context_line":"        \"\"\"Returns volume state for a given name or junction path\"\"\""},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"        query_args \u003d {}"},{"line_number":795,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"f27dcb6e_26faf06f","line":792,"range":{"start_line":792,"start_character":61,"end_line":792,"end_character":65},"updated":"2022-08-24 18:30:55.000000000","message":"nit: path.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":789,"context_line":"        return files"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"    def get_volume_state(self, junction_path\u003dNone, name\u003dNone):"},{"line_number":792,"context_line":"        \"\"\"Returns volume state for a given name or junction path\"\"\""},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"        query_args \u003d {}"},{"line_number":795,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9df9f512_23acb2fe","line":792,"range":{"start_line":792,"start_character":61,"end_line":792,"end_character":65},"in_reply_to":"f27dcb6e_26faf06f","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":798,"context_line":"        if junction_path:"},{"line_number":799,"context_line":"            query_args[\u0027nas.path\u0027] \u003d junction_path"},{"line_number":800,"context_line":""},{"line_number":801,"context_line":"        query_args[\u0027fields\u0027] \u003d \u0027state,style\u0027"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"        response \u003d self.send_request(\u0027storage/volumes/\u0027,"},{"line_number":804,"context_line":"                                     \u0027get\u0027, query\u003dquery_args)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9813dd7f_50e0f06d","line":801,"range":{"start_line":801,"start_character":38,"end_line":801,"end_character":43},"updated":"2022-08-24 18:30:55.000000000","message":"don\u0027t need if _get_unique_volume is dropped. As mentioned, there is a problem with ZAPI get volume with FlexGroup that does not exist with REST (at least from my tests).","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":798,"context_line":"        if junction_path:"},{"line_number":799,"context_line":"            query_args[\u0027nas.path\u0027] \u003d junction_path"},{"line_number":800,"context_line":""},{"line_number":801,"context_line":"        query_args[\u0027fields\u0027] \u003d \u0027state,style\u0027"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"        response \u003d self.send_request(\u0027storage/volumes/\u0027,"},{"line_number":804,"context_line":"                                     \u0027get\u0027, query\u003dquery_args)"}],"source_content_type":"text/x-python","patch_set":8,"id":"c5641aeb_ca4ea18d","line":801,"range":{"start_line":801,"start_character":38,"end_line":801,"end_character":43},"in_reply_to":"9813dd7f_50e0f06d","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":800,"context_line":""},{"line_number":801,"context_line":"        query_args[\u0027fields\u0027] \u003d \u0027state,style\u0027"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"        response \u003d self.send_request(\u0027storage/volumes/\u0027,"},{"line_number":804,"context_line":"                                     \u0027get\u0027, query\u003dquery_args)"},{"line_number":805,"context_line":"        try:"},{"line_number":806,"context_line":"            records \u003d response.get(\u0027records\u0027, [])"}],"source_content_type":"text/x-python","patch_set":8,"id":"5805b663_89653fc0","line":803,"range":{"start_line":803,"start_character":38,"end_line":803,"end_character":54},"updated":"2022-08-24 18:30:55.000000000","message":"some path are being passed as \"/my_path..\" other as \"my_path..\". Even both work, I think it should be better to keep consistent.. Please, normalize all of them with the selected way.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":800,"context_line":""},{"line_number":801,"context_line":"        query_args[\u0027fields\u0027] \u003d \u0027state,style\u0027"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"        response \u003d self.send_request(\u0027storage/volumes/\u0027,"},{"line_number":804,"context_line":"                                     \u0027get\u0027, query\u003dquery_args)"},{"line_number":805,"context_line":"        try:"},{"line_number":806,"context_line":"            records \u003d response.get(\u0027records\u0027, [])"}],"source_content_type":"text/x-python","patch_set":8,"id":"f4ee4884_9ee808c5","line":803,"range":{"start_line":803,"start_character":38,"end_line":803,"end_character":54},"in_reply_to":"5805b663_89653fc0","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":804,"context_line":"                                     \u0027get\u0027, query\u003dquery_args)"},{"line_number":805,"context_line":"        try:"},{"line_number":806,"context_line":"            records \u003d response.get(\u0027records\u0027, [])"},{"line_number":807,"context_line":"            unique_volume \u003d self._get_unique_volume(records)"},{"line_number":808,"context_line":"        except exception.VolumeBackendAPIException:"},{"line_number":809,"context_line":"            return None"},{"line_number":810,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"52ddba6c_50607f9f","line":807,"range":{"start_line":807,"start_character":33,"end_line":807,"end_character":51},"updated":"2022-08-24 18:30:55.000000000","message":"same before: it is not required on REST: seting either the name or the nas.path on the query it returns only one FlexVol or FlexGroup volume.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":804,"context_line":"                                     \u0027get\u0027, query\u003dquery_args)"},{"line_number":805,"context_line":"        try:"},{"line_number":806,"context_line":"            records \u003d response.get(\u0027records\u0027, [])"},{"line_number":807,"context_line":"            unique_volume \u003d self._get_unique_volume(records)"},{"line_number":808,"context_line":"        except exception.VolumeBackendAPIException:"},{"line_number":809,"context_line":"            return None"},{"line_number":810,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"efeba8f9_3e2ef9b3","line":807,"range":{"start_line":807,"start_character":33,"end_line":807,"end_character":51},"in_reply_to":"52ddba6c_50607f9f","updated":"2022-08-30 15:38:41.000000000","message":"Ack. The code was changed a little bit, but I decided to keep this function to validate that the result is not empty and contains only one volume - if both params are \u0027None\u0027 REST API can return a list of records.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":805,"context_line":"        try:"},{"line_number":806,"context_line":"            records \u003d response.get(\u0027records\u0027, [])"},{"line_number":807,"context_line":"            unique_volume \u003d self._get_unique_volume(records)"},{"line_number":808,"context_line":"        except exception.VolumeBackendAPIException:"},{"line_number":809,"context_line":"            return None"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        return unique_volume[\u0027state\u0027]"},{"line_number":812,"context_line":""},{"line_number":813,"context_line":"    def delete_snapshot(self, volume_name, snapshot_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"425a1e65_3566e752","line":810,"range":{"start_line":808,"start_character":8,"end_line":810,"end_character":0},"updated":"2022-08-24 18:30:55.000000000","message":"dont need if _get_unique_volume is dropped","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":805,"context_line":"        try:"},{"line_number":806,"context_line":"            records \u003d response.get(\u0027records\u0027, [])"},{"line_number":807,"context_line":"            unique_volume \u003d self._get_unique_volume(records)"},{"line_number":808,"context_line":"        except exception.VolumeBackendAPIException:"},{"line_number":809,"context_line":"            return None"},{"line_number":810,"context_line":""},{"line_number":811,"context_line":"        return unique_volume[\u0027state\u0027]"},{"line_number":812,"context_line":""},{"line_number":813,"context_line":"    def delete_snapshot(self, volume_name, snapshot_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"d6348888_0b288c0d","line":810,"range":{"start_line":808,"start_character":8,"end_line":810,"end_character":0},"in_reply_to":"425a1e65_3566e752","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":815,"context_line":"        query \u003d {"},{"line_number":816,"context_line":"            \u0027name\u0027: volume_name,"},{"line_number":817,"context_line":"            \u0027state\u0027: \u0027online\u0027,"},{"line_number":818,"context_line":"            \u0027fields\u0027: \u0027style\u0027"},{"line_number":819,"context_line":"        }"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        response \u003d self.send_request("}],"source_content_type":"text/x-python","patch_set":8,"id":"661366a4_bd68db3d","line":818,"range":{"start_line":818,"start_character":13,"end_line":818,"end_character":29},"updated":"2022-08-24 18:30:55.000000000","message":"don\u0027t need if _get_unique_volume is dropped","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":815,"context_line":"        query \u003d {"},{"line_number":816,"context_line":"            \u0027name\u0027: volume_name,"},{"line_number":817,"context_line":"            \u0027state\u0027: \u0027online\u0027,"},{"line_number":818,"context_line":"            \u0027fields\u0027: \u0027style\u0027"},{"line_number":819,"context_line":"        }"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        response \u003d self.send_request("}],"source_content_type":"text/x-python","patch_set":8,"id":"2552c22b_75468583","line":818,"range":{"start_line":818,"start_character":13,"end_line":818,"end_character":29},"in_reply_to":"661366a4_bd68db3d","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":818,"context_line":"            \u0027fields\u0027: \u0027style\u0027"},{"line_number":819,"context_line":"        }"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        response \u003d self.send_request("},{"line_number":822,"context_line":"            \u0027/storage/volumes\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        records \u003d response.get(\u0027records\u0027, [])"},{"line_number":825,"context_line":"        unique_volume \u003d self._get_unique_volume(records)"}],"source_content_type":"text/x-python","patch_set":8,"id":"0876a54e_4374a9cb","line":822,"range":{"start_line":821,"start_character":7,"end_line":822,"end_character":51},"updated":"2022-08-24 18:30:55.000000000","message":"It can call the method: _get_unique_volume_by_name as done `get_file_sizes_by_dir` to retrieve the volume uuid","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":818,"context_line":"            \u0027fields\u0027: \u0027style\u0027"},{"line_number":819,"context_line":"        }"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"        response \u003d self.send_request("},{"line_number":822,"context_line":"            \u0027/storage/volumes\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        records \u003d response.get(\u0027records\u0027, [])"},{"line_number":825,"context_line":"        unique_volume \u003d self._get_unique_volume(records)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba98c594_c8288c3b","line":822,"range":{"start_line":821,"start_character":7,"end_line":822,"end_character":51},"in_reply_to":"0876a54e_4374a9cb","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":822,"context_line":"            \u0027/storage/volumes\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        records \u003d response.get(\u0027records\u0027, [])"},{"line_number":825,"context_line":"        unique_volume \u003d self._get_unique_volume(records)"},{"line_number":826,"context_line":""},{"line_number":827,"context_line":"        self.send_request("},{"line_number":828,"context_line":"            f\u0027/storage/volumes/{unique_volume[\"uuid\"]}/snapshots\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5582cbc5_53dc5027","line":825,"range":{"start_line":825,"start_character":8,"end_line":825,"end_character":56},"updated":"2022-08-24 18:30:55.000000000","message":"again: I dont think it is needed on REST get calls.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":822,"context_line":"            \u0027/storage/volumes\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"        records \u003d response.get(\u0027records\u0027, [])"},{"line_number":825,"context_line":"        unique_volume \u003d self._get_unique_volume(records)"},{"line_number":826,"context_line":""},{"line_number":827,"context_line":"        self.send_request("},{"line_number":828,"context_line":"            f\u0027/storage/volumes/{unique_volume[\"uuid\"]}/snapshots\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"cd2ffadf_e42b3468","line":825,"range":{"start_line":825,"start_character":8,"end_line":825,"end_character":56},"in_reply_to":"5582cbc5_53dc5027","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":850,"context_line":"        response \u003d self.send_request(\u0027/svm/svms\u0027, \u0027get\u0027, query\u003dquery,"},{"line_number":851,"context_line":"                                     enable_tunneling\u003dFalse)"},{"line_number":852,"context_line":"        if response.get(\u0027records\u0027):"},{"line_number":853,"context_line":"            return [record[\u0027name\u0027] for record in response[\u0027records\u0027]]"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"        return []"},{"line_number":856,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"734fbbf1_e6557866","line":853,"range":{"start_line":853,"start_character":39,"end_line":853,"end_character":45},"updated":"2022-08-24 18:30:55.000000000","message":"please specify the name of the record rather than a generic one:\n\n..svm[\u0027name\u0027] for svm in response[\u0027records\u0027]..","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":850,"context_line":"        response \u003d self.send_request(\u0027/svm/svms\u0027, \u0027get\u0027, query\u003dquery,"},{"line_number":851,"context_line":"                                     enable_tunneling\u003dFalse)"},{"line_number":852,"context_line":"        if response.get(\u0027records\u0027):"},{"line_number":853,"context_line":"            return [record[\u0027name\u0027] for record in response[\u0027records\u0027]]"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"        return []"},{"line_number":856,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"31fbde6c_39ba3d6e","line":853,"range":{"start_line":853,"start_character":39,"end_line":853,"end_character":45},"in_reply_to":"734fbbf1_e6557866","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":849,"context_line":"        }"},{"line_number":850,"context_line":"        response \u003d self.send_request(\u0027/svm/svms\u0027, \u0027get\u0027, query\u003dquery,"},{"line_number":851,"context_line":"                                     enable_tunneling\u003dFalse)"},{"line_number":852,"context_line":"        if response.get(\u0027records\u0027):"},{"line_number":853,"context_line":"            return [record[\u0027name\u0027] for record in response[\u0027records\u0027]]"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"        return []"},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"    def _get_ems_log_destination_vserver(self):"},{"line_number":858,"context_line":"        \"\"\"Returns the best vserver destination for EMS messages.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"8d8e9b9f_544645c8","line":855,"range":{"start_line":852,"start_character":8,"end_line":855,"end_character":17},"updated":"2022-08-24 18:30:55.000000000","message":"why is it using just a single line ? Since the records field is always part of the response and it is a list:\n\nreturn [record[\u0027name\u0027] for record in response[\u0027records\u0027]]","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":849,"context_line":"        }"},{"line_number":850,"context_line":"        response \u003d self.send_request(\u0027/svm/svms\u0027, \u0027get\u0027, query\u003dquery,"},{"line_number":851,"context_line":"                                     enable_tunneling\u003dFalse)"},{"line_number":852,"context_line":"        if response.get(\u0027records\u0027):"},{"line_number":853,"context_line":"            return [record[\u0027name\u0027] for record in response[\u0027records\u0027]]"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"        return []"},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"    def _get_ems_log_destination_vserver(self):"},{"line_number":858,"context_line":"        \"\"\"Returns the best vserver destination for EMS messages.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"af8c5508_bd0d8ef3","line":855,"range":{"start_line":852,"start_character":8,"end_line":855,"end_character":17},"in_reply_to":"8d8e9b9f_544645c8","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1067,"context_line":"            if len(aggrs) \u003e 0:"},{"line_number":1068,"context_line":"                aggr \u003d aggrs[0]"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"                available \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027available\u0027]"},{"line_number":1071,"context_line":"                total \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027size\u0027]"},{"line_number":1072,"context_line":"                percent_used \u003d ((total - available) * 100) // total"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"                result \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"eced830d_b5c7adcd","line":1071,"range":{"start_line":1070,"start_character":16,"end_line":1071,"end_character":62},"updated":"2022-08-24 18:30:55.000000000","message":"the ZAPI is setting them \"available\" and \"total\" as float value, please, keep as ZAPI to avoid issue on driver layer.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1067,"context_line":"            if len(aggrs) \u003e 0:"},{"line_number":1068,"context_line":"                aggr \u003d aggrs[0]"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"                available \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027available\u0027]"},{"line_number":1071,"context_line":"                total \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027size\u0027]"},{"line_number":1072,"context_line":"                percent_used \u003d ((total - available) * 100) // total"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"                result \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"ca2c8b5b_f0c62538","line":1071,"range":{"start_line":1070,"start_character":16,"end_line":1071,"end_character":62},"in_reply_to":"eced830d_b5c7adcd","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"                available \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027available\u0027]"},{"line_number":1071,"context_line":"                total \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027size\u0027]"},{"line_number":1072,"context_line":"                percent_used \u003d ((total - available) * 100) // total"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"                result \u003d {"},{"line_number":1075,"context_line":"                    \u0027percent-used\u0027: percent_used,"}],"source_content_type":"text/x-python","patch_set":8,"id":"0bf6d441_5f959b44","line":1072,"range":{"start_line":1072,"start_character":16,"end_line":1072,"end_character":28},"updated":"2022-08-24 18:30:55.000000000","message":"the ZAPI is setting it as \"int\", please, make sure the data keeps as int to avoid issue on driver layer.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"                available \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027available\u0027]"},{"line_number":1071,"context_line":"                total \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027size\u0027]"},{"line_number":1072,"context_line":"                percent_used \u003d ((total - available) * 100) // total"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"                result \u003d {"},{"line_number":1075,"context_line":"                    \u0027percent-used\u0027: percent_used,"}],"source_content_type":"text/x-python","patch_set":8,"id":"f0098493_66ca2460","line":1072,"range":{"start_line":1072,"start_character":33,"end_line":1072,"end_character":50},"updated":"2022-08-24 18:30:55.000000000","message":"there is a used field: `space.block_storage.used` dont need this math","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"                available \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027available\u0027]"},{"line_number":1071,"context_line":"                total \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027size\u0027]"},{"line_number":1072,"context_line":"                percent_used \u003d ((total - available) * 100) // total"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"                result \u003d {"},{"line_number":1075,"context_line":"                    \u0027percent-used\u0027: percent_used,"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa612f2b_17e1e20e","line":1072,"range":{"start_line":1072,"start_character":16,"end_line":1072,"end_character":28},"in_reply_to":"0bf6d441_5f959b44","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"                available \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027available\u0027]"},{"line_number":1071,"context_line":"                total \u003d aggr[\u0027space\u0027][\u0027block_storage\u0027][\u0027size\u0027]"},{"line_number":1072,"context_line":"                percent_used \u003d ((total - available) * 100) // total"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"                result \u003d {"},{"line_number":1075,"context_line":"                    \u0027percent-used\u0027: percent_used,"}],"source_content_type":"text/x-python","patch_set":8,"id":"e6b80188_fe49e415","line":1072,"range":{"start_line":1072,"start_character":33,"end_line":1072,"end_character":50},"in_reply_to":"f0098493_66ca2460","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1145,"context_line":"            self._qos_policy_group_modify(spec, is_adaptive,"},{"line_number":1146,"context_line":"                                          qos_policy_group)"},{"line_number":1147,"context_line":""},{"line_number":1148,"context_line":"    def _qos_first_policy_group_by_name(self, qos_policy_group_name):"},{"line_number":1149,"context_line":"        records \u003d self._qos_policy_group_by_name(qos_policy_group_name)"},{"line_number":1150,"context_line":"        if len(records) \u003d\u003d 0:"},{"line_number":1151,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a7eef44_a24ff72e","line":1148,"range":{"start_line":1148,"start_character":8,"end_line":1148,"end_character":39},"updated":"2022-08-24 18:30:55.000000000","message":"_get_first_qos..","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1145,"context_line":"            self._qos_policy_group_modify(spec, is_adaptive,"},{"line_number":1146,"context_line":"                                          qos_policy_group)"},{"line_number":1147,"context_line":""},{"line_number":1148,"context_line":"    def _qos_first_policy_group_by_name(self, qos_policy_group_name):"},{"line_number":1149,"context_line":"        records \u003d self._qos_policy_group_by_name(qos_policy_group_name)"},{"line_number":1150,"context_line":"        if len(records) \u003d\u003d 0:"},{"line_number":1151,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":8,"id":"037429eb_d0925cec","line":1148,"range":{"start_line":1148,"start_character":8,"end_line":1148,"end_character":39},"in_reply_to":"7a7eef44_a24ff72e","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1152,"context_line":""},{"line_number":1153,"context_line":"        return records[0]"},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"    def _qos_policy_group_by_name(self, qos_policy_group_name):"},{"line_number":1156,"context_line":"        query \u003d {\u0027name\u0027: qos_policy_group_name}"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"        response \u003d self.send_request(\u0027/storage/qos/policies/\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"6bad81a2_591d393d","line":1155,"range":{"start_line":1155,"start_character":8,"end_line":1155,"end_character":33},"updated":"2022-08-24 18:30:55.000000000","message":"_get_qos_..","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1152,"context_line":""},{"line_number":1153,"context_line":"        return records[0]"},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"    def _qos_policy_group_by_name(self, qos_policy_group_name):"},{"line_number":1156,"context_line":"        query \u003d {\u0027name\u0027: qos_policy_group_name}"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"        response \u003d self.send_request(\u0027/storage/qos/policies/\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"6e6cd10f_e757c745","line":1155,"range":{"start_line":1155,"start_character":8,"end_line":1155,"end_character":33},"in_reply_to":"6bad81a2_591d393d","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1164,"context_line":""},{"line_number":1165,"context_line":"        return records"},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"    def _qos_spec_to_api_args(self, spec, is_adaptive\u003dFalse, **kwargs):"},{"line_number":1168,"context_line":"        \"\"\"Convert a QoS spec to REST args.\"\"\""},{"line_number":1169,"context_line":"        rest_args \u003d {}"},{"line_number":1170,"context_line":"        if is_adaptive:"}],"source_content_type":"text/x-python","patch_set":8,"id":"cc12238a_8c4978af","line":1167,"range":{"start_line":1167,"start_character":63,"end_line":1167,"end_character":69},"updated":"2022-08-24 18:30:55.000000000","message":"why are you using a kwargs ? Would it be simpler and more clear specify the \"vserver\u003dNone\" ?","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1164,"context_line":""},{"line_number":1165,"context_line":"        return records"},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"    def _qos_spec_to_api_args(self, spec, is_adaptive\u003dFalse, **kwargs):"},{"line_number":1168,"context_line":"        \"\"\"Convert a QoS spec to REST args.\"\"\""},{"line_number":1169,"context_line":"        rest_args \u003d {}"},{"line_number":1170,"context_line":"        if is_adaptive:"}],"source_content_type":"text/x-python","patch_set":8,"id":"f39af26d_4f400d6d","line":1167,"range":{"start_line":1167,"start_character":42,"end_line":1167,"end_character":59},"updated":"2022-08-24 18:30:55.000000000","message":"why is it optional ? From the callers here, all are passing this parameter","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1164,"context_line":""},{"line_number":1165,"context_line":"        return records"},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"    def _qos_spec_to_api_args(self, spec, is_adaptive\u003dFalse, **kwargs):"},{"line_number":1168,"context_line":"        \"\"\"Convert a QoS spec to REST args.\"\"\""},{"line_number":1169,"context_line":"        rest_args \u003d {}"},{"line_number":1170,"context_line":"        if is_adaptive:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1be63bd2_2883f645","line":1167,"range":{"start_line":1167,"start_character":63,"end_line":1167,"end_character":69},"in_reply_to":"cc12238a_8c4978af","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1164,"context_line":""},{"line_number":1165,"context_line":"        return records"},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"    def _qos_spec_to_api_args(self, spec, is_adaptive\u003dFalse, **kwargs):"},{"line_number":1168,"context_line":"        \"\"\"Convert a QoS spec to REST args.\"\"\""},{"line_number":1169,"context_line":"        rest_args \u003d {}"},{"line_number":1170,"context_line":"        if is_adaptive:"}],"source_content_type":"text/x-python","patch_set":8,"id":"4600dbd3_d32f7c4e","line":1167,"range":{"start_line":1167,"start_character":42,"end_line":1167,"end_character":59},"in_reply_to":"f39af26d_4f400d6d","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1205,"context_line":"        return rest_args"},{"line_number":1206,"context_line":""},{"line_number":1207,"context_line":"    def _sanitize_qos_spec_value(self, value):"},{"line_number":1208,"context_line":"        if not isinstance(value, str):"},{"line_number":1209,"context_line":"            return value"},{"line_number":1210,"context_line":""},{"line_number":1211,"context_line":"        value \u003d value.lower()"},{"line_number":1212,"context_line":"        value \u003d value.replace(\u0027iops\u0027, \u0027\u0027).replace(\u0027b/s\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1cb4712b_ce5400da","line":1209,"range":{"start_line":1208,"start_character":6,"end_line":1209,"end_character":24},"updated":"2022-08-24 18:30:55.000000000","message":"is it possible to be non str ?","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1205,"context_line":"        return rest_args"},{"line_number":1206,"context_line":""},{"line_number":1207,"context_line":"    def _sanitize_qos_spec_value(self, value):"},{"line_number":1208,"context_line":"        if not isinstance(value, str):"},{"line_number":1209,"context_line":"            return value"},{"line_number":1210,"context_line":""},{"line_number":1211,"context_line":"        value \u003d value.lower()"},{"line_number":1212,"context_line":"        value \u003d value.replace(\u0027iops\u0027, \u0027\u0027).replace(\u0027b/s\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"42e5bf41_5a23429e","line":1209,"range":{"start_line":1208,"start_character":6,"end_line":1209,"end_character":24},"in_reply_to":"1cb4712b_ce5400da","updated":"2022-08-30 15:38:41.000000000","message":"I don\u0027t think so. Will remove this.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1209,"context_line":"            return value"},{"line_number":1210,"context_line":""},{"line_number":1211,"context_line":"        value \u003d value.lower()"},{"line_number":1212,"context_line":"        value \u003d value.replace(\u0027iops\u0027, \u0027\u0027).replace(\u0027b/s\u0027, \u0027\u0027)"},{"line_number":1213,"context_line":""},{"line_number":1214,"context_line":"        return value"},{"line_number":1215,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"aa5006bb_cdfe7a82","line":1212,"range":{"start_line":1212,"start_character":42,"end_line":1212,"end_character":60},"updated":"2022-08-24 18:30:55.000000000","message":"That\u0027s a bit problematic: the user is setting a QoS as \"maxBPS\", and the REST api is setting the value as \"max_iops\". Actually, the \"maxBPS\" should be dropped with REST client and added to the documentation. What we could include is a \"maxMBPS\" and use the \"max_throughput_mbps\".\n\nAnother approach is keeping the \"maxBPS\" with REST and convert from BPS -\u003e MPS. Since the value is an integer if maxBPS \u003c 1024*1024 it should be denied. Also, some passed values might not be respected exactly as informed, because of rounding value.\n\nWhat are the effects of dropping the config with REST:\n\n1. An user may be used to set the maximum as BPS, instead of IOPS. Of course, adding the \"MBPS\" to rest would add an alternative to him.\n\n2. Pre-existent system: \n  - Users may already have their types with the QoS, it would require change the QoS values from BPS to MPBS in a new QoS. \n  \n   - A volume with QoS during extend, migration or revert to snapshot reapply the QoS. So, if the volume is using BPS and we block it with REST, the operation will fail. \n   \n \nWdyt ?","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":true,"context_lines":[{"line_number":1209,"context_line":"            return value"},{"line_number":1210,"context_line":""},{"line_number":1211,"context_line":"        value \u003d value.lower()"},{"line_number":1212,"context_line":"        value \u003d value.replace(\u0027iops\u0027, \u0027\u0027).replace(\u0027b/s\u0027, \u0027\u0027)"},{"line_number":1213,"context_line":""},{"line_number":1214,"context_line":"        return value"},{"line_number":1215,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"f42ec4d1_4dde2481","line":1212,"range":{"start_line":1212,"start_character":42,"end_line":1212,"end_character":60},"in_reply_to":"aa5006bb_cdfe7a82","updated":"2022-08-30 15:38:41.000000000","message":"You are correct, this need to be fixed. We chose the approach of keeping the \"maxBPS\" and, converting BPS to MBPS and rounding the value up when needed. The idea is to avoid the problems with the pre-existent systems and keep the compatibility.\n\nAlso, I added a condition in the function _qos_spec_to_api_args to set the field \"max_throughput_mbps\" in the case MBPS is used.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"34107e12ce80b199afce13de1cadd12f16721efe","unresolved":false,"context_lines":[{"line_number":1209,"context_line":"            return value"},{"line_number":1210,"context_line":""},{"line_number":1211,"context_line":"        value \u003d value.lower()"},{"line_number":1212,"context_line":"        value \u003d value.replace(\u0027iops\u0027, \u0027\u0027).replace(\u0027b/s\u0027, \u0027\u0027)"},{"line_number":1213,"context_line":""},{"line_number":1214,"context_line":"        return value"},{"line_number":1215,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"a768d603_938335f8","line":1212,"range":{"start_line":1212,"start_character":42,"end_line":1212,"end_character":60},"in_reply_to":"f42ec4d1_4dde2481","updated":"2022-08-31 04:21:42.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1213,"context_line":""},{"line_number":1214,"context_line":"        return value"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"    def _qos_policy_group_create(self, spec, is_adaptive):"},{"line_number":1217,"context_line":"        \"\"\"Creates a QOS policy group.\"\"\""},{"line_number":1218,"context_line":"        body \u003d self._qos_spec_to_api_args("},{"line_number":1219,"context_line":"            spec, is_adaptive, vserver\u003dself.vserver)"}],"source_content_type":"text/x-python","patch_set":8,"id":"0c3e4d7f_08696aa4","line":1216,"range":{"start_line":1216,"start_character":8,"end_line":1216,"end_character":32},"updated":"2022-08-24 18:30:55.000000000","message":"The functions are named as: \u003coperation\u003e_\u003cresource\u003e: like: provision_qos_policy_group, list_vserrver, get_volume and so on...\n\nSo: _create_qos_policy_group","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1213,"context_line":""},{"line_number":1214,"context_line":"        return value"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"    def _qos_policy_group_create(self, spec, is_adaptive):"},{"line_number":1217,"context_line":"        \"\"\"Creates a QOS policy group.\"\"\""},{"line_number":1218,"context_line":"        body \u003d self._qos_spec_to_api_args("},{"line_number":1219,"context_line":"            spec, is_adaptive, vserver\u003dself.vserver)"}],"source_content_type":"text/x-python","patch_set":8,"id":"a263aed7_997b9978","line":1216,"range":{"start_line":1216,"start_character":8,"end_line":1216,"end_character":32},"in_reply_to":"0c3e4d7f_08696aa4","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1214,"context_line":"        return value"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"    def _qos_policy_group_create(self, spec, is_adaptive):"},{"line_number":1217,"context_line":"        \"\"\"Creates a QOS policy group.\"\"\""},{"line_number":1218,"context_line":"        body \u003d self._qos_spec_to_api_args("},{"line_number":1219,"context_line":"            spec, is_adaptive, vserver\u003dself.vserver)"},{"line_number":1220,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"49d67318_240d75a2","line":1217,"range":{"start_line":1217,"start_character":21,"end_line":1217,"end_character":24},"updated":"2022-08-24 18:30:55.000000000","message":"nit: QoS","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1214,"context_line":"        return value"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"    def _qos_policy_group_create(self, spec, is_adaptive):"},{"line_number":1217,"context_line":"        \"\"\"Creates a QOS policy group.\"\"\""},{"line_number":1218,"context_line":"        body \u003d self._qos_spec_to_api_args("},{"line_number":1219,"context_line":"            spec, is_adaptive, vserver\u003dself.vserver)"},{"line_number":1220,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"f3ba8871_6cff6f8f","line":1217,"range":{"start_line":1217,"start_character":21,"end_line":1217,"end_character":24},"in_reply_to":"49d67318_240d75a2","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1218,"context_line":"        body \u003d self._qos_spec_to_api_args("},{"line_number":1219,"context_line":"            spec, is_adaptive, vserver\u003dself.vserver)"},{"line_number":1220,"context_line":""},{"line_number":1221,"context_line":"        self.send_request(\u0027/storage/qos/policies/\u0027, \u0027post\u0027, body\u003dbody)"},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    def _qos_policy_group_modify(self, spec, is_adaptive, qos_policy_group):"},{"line_number":1224,"context_line":"        \"\"\"Modifies a QOS policy group.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"cb72c1b0_1172ebb9","line":1221,"range":{"start_line":1221,"start_character":25,"end_line":1221,"end_character":70},"updated":"2022-08-24 18:30:55.000000000","message":"You\u0027re already setting the vserver on the body, so you can use no tunneling mode (as ZAPI does). Right ?","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1218,"context_line":"        body \u003d self._qos_spec_to_api_args("},{"line_number":1219,"context_line":"            spec, is_adaptive, vserver\u003dself.vserver)"},{"line_number":1220,"context_line":""},{"line_number":1221,"context_line":"        self.send_request(\u0027/storage/qos/policies/\u0027, \u0027post\u0027, body\u003dbody)"},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    def _qos_policy_group_modify(self, spec, is_adaptive, qos_policy_group):"},{"line_number":1224,"context_line":"        \"\"\"Modifies a QOS policy group.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"9882eda4_126efac1","line":1221,"range":{"start_line":1221,"start_character":25,"end_line":1221,"end_character":70},"in_reply_to":"cb72c1b0_1172ebb9","updated":"2022-08-30 15:38:41.000000000","message":"Right. Done.","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1220,"context_line":""},{"line_number":1221,"context_line":"        self.send_request(\u0027/storage/qos/policies/\u0027, \u0027post\u0027, body\u003dbody)"},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    def _qos_policy_group_modify(self, spec, is_adaptive, qos_policy_group):"},{"line_number":1224,"context_line":"        \"\"\"Modifies a QOS policy group.\"\"\""},{"line_number":1225,"context_line":"        body \u003d self._qos_spec_to_api_args(spec, is_adaptive)"},{"line_number":1226,"context_line":"        if qos_policy_group[\u0027name\u0027] \u003d\u003d body[\u0027name\u0027]:"}],"source_content_type":"text/x-python","patch_set":8,"id":"8ba91210_dce0113a","line":1223,"range":{"start_line":1223,"start_character":8,"end_line":1223,"end_character":32},"updated":"2022-08-24 18:30:55.000000000","message":"same about name convetion: _modify_qos_policy_group","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1220,"context_line":""},{"line_number":1221,"context_line":"        self.send_request(\u0027/storage/qos/policies/\u0027, \u0027post\u0027, body\u003dbody)"},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    def _qos_policy_group_modify(self, spec, is_adaptive, qos_policy_group):"},{"line_number":1224,"context_line":"        \"\"\"Modifies a QOS policy group.\"\"\""},{"line_number":1225,"context_line":"        body \u003d self._qos_spec_to_api_args(spec, is_adaptive)"},{"line_number":1226,"context_line":"        if qos_policy_group[\u0027name\u0027] \u003d\u003d body[\u0027name\u0027]:"}],"source_content_type":"text/x-python","patch_set":8,"id":"be13290b_0713c20a","line":1223,"range":{"start_line":1223,"start_character":8,"end_line":1223,"end_character":32},"in_reply_to":"8ba91210_dce0113a","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1221,"context_line":"        self.send_request(\u0027/storage/qos/policies/\u0027, \u0027post\u0027, body\u003dbody)"},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    def _qos_policy_group_modify(self, spec, is_adaptive, qos_policy_group):"},{"line_number":1224,"context_line":"        \"\"\"Modifies a QOS policy group.\"\"\""},{"line_number":1225,"context_line":"        body \u003d self._qos_spec_to_api_args(spec, is_adaptive)"},{"line_number":1226,"context_line":"        if qos_policy_group[\u0027name\u0027] \u003d\u003d body[\u0027name\u0027]:"},{"line_number":1227,"context_line":"            body.pop(\u0027name\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7dec8d67_57340992","line":1224,"range":{"start_line":1224,"start_character":22,"end_line":1224,"end_character":26},"updated":"2022-08-24 18:30:55.000000000","message":"nit: QoS","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1221,"context_line":"        self.send_request(\u0027/storage/qos/policies/\u0027, \u0027post\u0027, body\u003dbody)"},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    def _qos_policy_group_modify(self, spec, is_adaptive, qos_policy_group):"},{"line_number":1224,"context_line":"        \"\"\"Modifies a QOS policy group.\"\"\""},{"line_number":1225,"context_line":"        body \u003d self._qos_spec_to_api_args(spec, is_adaptive)"},{"line_number":1226,"context_line":"        if qos_policy_group[\u0027name\u0027] \u003d\u003d body[\u0027name\u0027]:"},{"line_number":1227,"context_line":"            body.pop(\u0027name\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"77df99dc_ae261954","line":1224,"range":{"start_line":1224,"start_character":22,"end_line":1224,"end_character":26},"in_reply_to":"7dec8d67_57340992","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1247,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":1248,"context_line":""},{"line_number":1249,"context_line":"        records \u003d response.get(\u0027records\u0027, [])"},{"line_number":1250,"context_line":"        vol \u003d self._get_unique_volume(records)"},{"line_number":1251,"context_line":"        return vol[\u0027name\u0027]"},{"line_number":1252,"context_line":""},{"line_number":1253,"context_line":"    def file_assign_qos(self, flex_vol, qos_policy_group_name,"}],"source_content_type":"text/x-python","patch_set":8,"id":"90b6a458_4fc8ea9f","line":1250,"range":{"start_line":1250,"start_character":8,"end_line":1250,"end_character":46},"updated":"2022-08-24 18:30:55.000000000","message":"As said, it can be removed on REST","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1247,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":1248,"context_line":""},{"line_number":1249,"context_line":"        records \u003d response.get(\u0027records\u0027, [])"},{"line_number":1250,"context_line":"        vol \u003d self._get_unique_volume(records)"},{"line_number":1251,"context_line":"        return vol[\u0027name\u0027]"},{"line_number":1252,"context_line":""},{"line_number":1253,"context_line":"    def file_assign_qos(self, flex_vol, qos_policy_group_name,"}],"source_content_type":"text/x-python","patch_set":8,"id":"54cd20f4_558178ee","line":1250,"range":{"start_line":1250,"start_character":8,"end_line":1250,"end_character":46},"in_reply_to":"90b6a458_4fc8ea9f","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1267,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":1268,"context_line":""},{"line_number":1269,"context_line":"        records \u003d volumes_response.get(\u0027records\u0027, [])"},{"line_number":1270,"context_line":"        unique_volume \u003d self._get_unique_volume(records)"},{"line_number":1271,"context_line":""},{"line_number":1272,"context_line":"        body \u003d {"},{"line_number":1273,"context_line":"            \u0027qos_policy.name\u0027: qos_policy_group_name"}],"source_content_type":"text/x-python","patch_set":8,"id":"4da01764_4f0307a4","line":1270,"range":{"start_line":1270,"start_character":0,"end_line":1270,"end_character":56},"updated":"2022-08-24 18:30:55.000000000","message":"not required on REST","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":1268,"context_line":""},{"line_number":1269,"context_line":"        records \u003d volumes_response.get(\u0027records\u0027, [])"},{"line_number":1270,"context_line":"        unique_volume \u003d self._get_unique_volume(records)"},{"line_number":1271,"context_line":""},{"line_number":1272,"context_line":"        body \u003d {"},{"line_number":1273,"context_line":"            \u0027qos_policy.name\u0027: qos_policy_group_name"}],"source_content_type":"text/x-python","patch_set":8,"id":"867ff675_3861006c","line":1270,"range":{"start_line":1270,"start_character":0,"end_line":1270,"end_character":56},"in_reply_to":"4da01764_4f0307a4","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7a22135eeface0fa0a41918b5c96c89ce981f767"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":380,"context_line":"            if style \u003d\u003d \u0027flexvol\u0027 or style \u003d\u003d \u0027flexgroup\u0027:"},{"line_number":381,"context_line":"                volume_list.append(volume)"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"        if len(volume_list) !\u003d 1:"},{"line_number":384,"context_line":"            msg \u003d _(\u0027Could not find unique volume. Volumes found: %(vol)s.\u0027)"},{"line_number":385,"context_line":"            msg_args \u003d {\u0027vol\u0027: volume_list}"},{"line_number":386,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg % msg_args)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        return volume_list[0]"},{"line_number":389,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"f6296869_23a3e351","line":386,"range":{"start_line":383,"start_character":8,"end_line":386,"end_character":74},"updated":"2022-08-24 18:30:55.000000000","message":"this check can be kept, since the volume cannot be found","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":380,"context_line":"            if style \u003d\u003d \u0027flexvol\u0027 or style \u003d\u003d \u0027flexgroup\u0027:"},{"line_number":381,"context_line":"                volume_list.append(volume)"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"        if len(volume_list) !\u003d 1:"},{"line_number":384,"context_line":"            msg \u003d _(\u0027Could not find unique volume. Volumes found: %(vol)s.\u0027)"},{"line_number":385,"context_line":"            msg_args \u003d {\u0027vol\u0027: volume_list}"},{"line_number":386,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg % msg_args)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        return volume_list[0]"},{"line_number":389,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"211fc842_c3084d99","line":386,"range":{"start_line":383,"start_character":8,"end_line":386,"end_character":74},"in_reply_to":"f6296869_23a3e351","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1272,"context_line":"        body \u003d {"},{"line_number":1273,"context_line":"            \u0027qos_policy.name\u0027: qos_policy_group_name"},{"line_number":1274,"context_line":"        }"},{"line_number":1275,"context_line":""},{"line_number":1276,"context_line":"        # get the relative file path in volume"},{"line_number":1277,"context_line":"        relative_path \u003d \u0027/\u0027.join(file_path.split(\u0027/\u0027)[3:])"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":"        # Path requires \"%2E\" to represent \".\" and \"%2F\" to represent \"/\"."},{"line_number":1280,"context_line":"        relative_path \u003d relative_path.replace(\u0027.\u0027, \u0027%2E\u0027).replace(\u0027/\u0027, \u0027%2F\u0027)"},{"line_number":1281,"context_line":""},{"line_number":1282,"context_line":"        self.send_request("},{"line_number":1283,"context_line":"            f\u0027/storage/volumes/{unique_volume[\"uuid\"]}/files/{relative_path}\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"62a31d90_fde47f11","line":1280,"range":{"start_line":1275,"start_character":0,"end_line":1280,"end_character":77},"updated":"2022-08-24 18:30:55.000000000","message":"again, why is this relative path being calculated ? The method that calls this function is passing the file_path\u003dvolue[\u0027name\u0027].. As result the relative path will be an empty string. So, it is not setting the QoS to any file:\n\nI tested on my env, the code is not working:\nsee log error:  https://paste.opendev.org/show/bdhastNNWSSqu9dPZb4G/","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1272,"context_line":"        body \u003d {"},{"line_number":1273,"context_line":"            \u0027qos_policy.name\u0027: qos_policy_group_name"},{"line_number":1274,"context_line":"        }"},{"line_number":1275,"context_line":""},{"line_number":1276,"context_line":"        # get the relative file path in volume"},{"line_number":1277,"context_line":"        relative_path \u003d \u0027/\u0027.join(file_path.split(\u0027/\u0027)[3:])"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":"        # Path requires \"%2E\" to represent \".\" and \"%2F\" to represent \"/\"."},{"line_number":1280,"context_line":"        relative_path \u003d relative_path.replace(\u0027.\u0027, \u0027%2E\u0027).replace(\u0027/\u0027, \u0027%2F\u0027)"},{"line_number":1281,"context_line":""},{"line_number":1282,"context_line":"        self.send_request("},{"line_number":1283,"context_line":"            f\u0027/storage/volumes/{unique_volume[\"uuid\"]}/files/{relative_path}\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"a80d4410_d482ae05","line":1280,"range":{"start_line":1275,"start_character":0,"end_line":1280,"end_character":77},"in_reply_to":"62a31d90_fde47f11","updated":"2022-08-30 15:38:41.000000000","message":"You are correct, I will fix the code.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1285,"context_line":""},{"line_number":1286,"context_line":"    def mark_qos_policy_group_for_deletion(self, qos_policy_group_info,"},{"line_number":1287,"context_line":"                                           is_adaptive\u003dFalse):"},{"line_number":1288,"context_line":"        \"\"\"Soft delete a QOS policy group backing a cinder volume.\"\"\""},{"line_number":1289,"context_line":"        if qos_policy_group_info is None:"},{"line_number":1290,"context_line":"            return"},{"line_number":1291,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"c24ca79a_3a346cff","line":1288,"range":{"start_line":1288,"start_character":25,"end_line":1288,"end_character":28},"updated":"2022-08-24 18:30:55.000000000","message":"QoS","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1285,"context_line":""},{"line_number":1286,"context_line":"    def mark_qos_policy_group_for_deletion(self, qos_policy_group_info,"},{"line_number":1287,"context_line":"                                           is_adaptive\u003dFalse):"},{"line_number":1288,"context_line":"        \"\"\"Soft delete a QOS policy group backing a cinder volume.\"\"\""},{"line_number":1289,"context_line":"        if qos_policy_group_info is None:"},{"line_number":1290,"context_line":"            return"},{"line_number":1291,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"4dacc48e_985581f9","line":1288,"range":{"start_line":1288,"start_character":25,"end_line":1288,"end_character":28},"in_reply_to":"c24ca79a_3a346cff","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1304,"context_line":"                self._qos_policy_group_rename(current_name, new_name,"},{"line_number":1305,"context_line":"                                              is_adaptive)"},{"line_number":1306,"context_line":"            except netapp_api.NaApiError as ex:"},{"line_number":1307,"context_line":"                LOG.warning(\u0027Rename failure in cleanup of cDOT QOS policy \u0027"},{"line_number":1308,"context_line":"                            \u0027group %(current_name)s: %(ex)s\u0027,"},{"line_number":1309,"context_line":"                            {\u0027current_name\u0027: current_name, \u0027ex\u0027: ex})"},{"line_number":1310,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"016ec249_c94c0bb1","line":1307,"range":{"start_line":1307,"start_character":63,"end_line":1307,"end_character":67},"updated":"2022-08-24 18:30:55.000000000","message":"QoS","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1304,"context_line":"                self._qos_policy_group_rename(current_name, new_name,"},{"line_number":1305,"context_line":"                                              is_adaptive)"},{"line_number":1306,"context_line":"            except netapp_api.NaApiError as ex:"},{"line_number":1307,"context_line":"                LOG.warning(\u0027Rename failure in cleanup of cDOT QOS policy \u0027"},{"line_number":1308,"context_line":"                            \u0027group %(current_name)s: %(ex)s\u0027,"},{"line_number":1309,"context_line":"                            {\u0027current_name\u0027: current_name, \u0027ex\u0027: ex})"},{"line_number":1310,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fa1fd5f5_5402f9ca","line":1307,"range":{"start_line":1307,"start_character":63,"end_line":1307,"end_character":67},"in_reply_to":"016ec249_c94c0bb1","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1316,"context_line":"        LOG.debug(\u0027Deleting file: %s\u0027, path_to_file)"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"        volume_name \u003d path_to_file.split(\u0027/\u0027)[2]"},{"line_number":1319,"context_line":"        relative_path \u003d \u0027/\u0027.join(path_to_file.split(\u0027/\u0027)[3:])"},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"        query \u003d {"},{"line_number":1322,"context_line":"            \u0027type\u0027: \u0027rw\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"e3b9cd64_6df855ac","line":1319,"range":{"start_line":1319,"start_character":8,"end_line":1319,"end_character":61},"updated":"2022-08-24 18:30:55.000000000","message":"Here the relative_path makes sense, since the `path_to_file` is the entire path: /vol/\u003cflex_vol_name\u003e/\u003cpath_to_file\u003e","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1316,"context_line":"        LOG.debug(\u0027Deleting file: %s\u0027, path_to_file)"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"        volume_name \u003d path_to_file.split(\u0027/\u0027)[2]"},{"line_number":1319,"context_line":"        relative_path \u003d \u0027/\u0027.join(path_to_file.split(\u0027/\u0027)[3:])"},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"        query \u003d {"},{"line_number":1322,"context_line":"            \u0027type\u0027: \u0027rw\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"054aef2d_9a3e871c","line":1319,"range":{"start_line":1319,"start_character":8,"end_line":1319,"end_character":61},"in_reply_to":"e3b9cd64_6df855ac","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1332,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"        records \u003d response.get(\u0027records\u0027, [])"},{"line_number":1335,"context_line":"        vol \u003d self._get_unique_volume(records)"},{"line_number":1336,"context_line":""},{"line_number":1337,"context_line":"        # Path requires \"%2E\" to represent \".\" and \"%2F\" to represent \"/\"."},{"line_number":1338,"context_line":"        relative_path \u003d relative_path.replace(\u0027.\u0027, \u0027%2E\u0027).replace(\u0027/\u0027, \u0027%2F\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3d614aae_af8285c3","line":1335,"range":{"start_line":1335,"start_character":8,"end_line":1335,"end_character":46},"updated":"2022-08-24 18:30:55.000000000","message":"not required on REST","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1332,"context_line":"            \u0027/storage/volumes/\u0027, \u0027get\u0027, query\u003dquery)"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"        records \u003d response.get(\u0027records\u0027, [])"},{"line_number":1335,"context_line":"        vol \u003d self._get_unique_volume(records)"},{"line_number":1336,"context_line":""},{"line_number":1337,"context_line":"        # Path requires \"%2E\" to represent \".\" and \"%2F\" to represent \"/\"."},{"line_number":1338,"context_line":"        relative_path \u003d relative_path.replace(\u0027.\u0027, \u0027%2E\u0027).replace(\u0027/\u0027, \u0027%2F\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"a17fae4f_31081e74","line":1335,"range":{"start_line":1335,"start_character":8,"end_line":1335,"end_character":46},"in_reply_to":"3d614aae_af8285c3","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1341,"context_line":"                          + f\u0027/files/{relative_path}\u0027, \u0027delete\u0027)"},{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"    def _qos_policy_group_rename(self, qos_policy_group_name, new_name,"},{"line_number":1344,"context_line":"                                 is_adaptive\u003dFalse):"},{"line_number":1345,"context_line":"        \"\"\"Renames a QOS policy group.\"\"\""},{"line_number":1346,"context_line":"        qos_policy_group \u003d self._qos_first_policy_group_by_name("},{"line_number":1347,"context_line":"            qos_policy_group_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"767fda2e_96c23722","line":1344,"range":{"start_line":1344,"start_character":33,"end_line":1344,"end_character":50},"updated":"2022-08-24 18:30:55.000000000","message":"the _qos_policy_group_renmame is not called by driver layer, so you don\u0027t need to keep with ZAPI params.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1341,"context_line":"                          + f\u0027/files/{relative_path}\u0027, \u0027delete\u0027)"},{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"    def _qos_policy_group_rename(self, qos_policy_group_name, new_name,"},{"line_number":1344,"context_line":"                                 is_adaptive\u003dFalse):"},{"line_number":1345,"context_line":"        \"\"\"Renames a QOS policy group.\"\"\""},{"line_number":1346,"context_line":"        qos_policy_group \u003d self._qos_first_policy_group_by_name("},{"line_number":1347,"context_line":"            qos_policy_group_name)"}],"source_content_type":"text/x-python","patch_set":9,"id":"a949e95e_8e186418","line":1344,"range":{"start_line":1344,"start_character":33,"end_line":1344,"end_character":50},"in_reply_to":"767fda2e_96c23722","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"    def _qos_policy_group_rename(self, qos_policy_group_name, new_name,"},{"line_number":1344,"context_line":"                                 is_adaptive\u003dFalse):"},{"line_number":1345,"context_line":"        \"\"\"Renames a QOS policy group.\"\"\""},{"line_number":1346,"context_line":"        qos_policy_group \u003d self._qos_first_policy_group_by_name("},{"line_number":1347,"context_line":"            qos_policy_group_name)"},{"line_number":1348,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5e81826e_affc0946","line":1345,"range":{"start_line":1345,"start_character":21,"end_line":1345,"end_character":24},"updated":"2022-08-24 18:30:55.000000000","message":"QoS","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"    def _qos_policy_group_rename(self, qos_policy_group_name, new_name,"},{"line_number":1344,"context_line":"                                 is_adaptive\u003dFalse):"},{"line_number":1345,"context_line":"        \"\"\"Renames a QOS policy group.\"\"\""},{"line_number":1346,"context_line":"        qos_policy_group \u003d self._qos_first_policy_group_by_name("},{"line_number":1347,"context_line":"            qos_policy_group_name)"},{"line_number":1348,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"64a94641_ce1a413c","line":1345,"range":{"start_line":1345,"start_character":21,"end_line":1345,"end_character":24},"in_reply_to":"5e81826e_affc0946","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1343,"context_line":"    def _qos_policy_group_rename(self, qos_policy_group_name, new_name,"},{"line_number":1344,"context_line":"                                 is_adaptive\u003dFalse):"},{"line_number":1345,"context_line":"        \"\"\"Renames a QOS policy group.\"\"\""},{"line_number":1346,"context_line":"        qos_policy_group \u003d self._qos_first_policy_group_by_name("},{"line_number":1347,"context_line":"            qos_policy_group_name)"},{"line_number":1348,"context_line":""},{"line_number":1349,"context_line":"        if not qos_policy_group:"},{"line_number":1350,"context_line":"            raise netapp_api.NaApiError(code\u003dnetapp_api.EOBJECTNOTFOUND)"},{"line_number":1351,"context_line":""},{"line_number":1352,"context_line":"        body \u003d {\u0027name\u0027: new_name}"},{"line_number":1353,"context_line":"        self.send_request("},{"line_number":1354,"context_line":"            f\u0027/storage/qos/policies/{qos_policy_group[\"uuid\"]}\u0027, \u0027patch\u0027,"},{"line_number":1355,"context_line":"            body\u003dbody)"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"    def remove_unused_qos_policy_groups(self):"},{"line_number":1358,"context_line":"        \"\"\"Deletes all QOS policy groups that are marked for deletion.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"beb2d5a0_01e7a69c","line":1355,"range":{"start_line":1346,"start_character":8,"end_line":1355,"end_character":22},"updated":"2022-08-24 18:30:55.000000000","message":"you don\u0027t need to retrieve the QoS for patching it. You can patch passing the query as policy_group_name as the policy_name (it is unique). Simpler code:\n\ndef _qos_policy_group_rename(self, qos_policy_group_name, new_name, is_adaptive\u003dFalse):\n\n\nbody \u003d {\u0027name\u0027: new_name}\nquery \u003d {\u0027name\u0027: qos_policy_group_name}\nself.send_request(f\u0027/storage/qos/policies/}\u0027, \u0027patch\u0027, body\u003dbody, query\u003dquery)","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1343,"context_line":"    def _qos_policy_group_rename(self, qos_policy_group_name, new_name,"},{"line_number":1344,"context_line":"                                 is_adaptive\u003dFalse):"},{"line_number":1345,"context_line":"        \"\"\"Renames a QOS policy group.\"\"\""},{"line_number":1346,"context_line":"        qos_policy_group \u003d self._qos_first_policy_group_by_name("},{"line_number":1347,"context_line":"            qos_policy_group_name)"},{"line_number":1348,"context_line":""},{"line_number":1349,"context_line":"        if not qos_policy_group:"},{"line_number":1350,"context_line":"            raise netapp_api.NaApiError(code\u003dnetapp_api.EOBJECTNOTFOUND)"},{"line_number":1351,"context_line":""},{"line_number":1352,"context_line":"        body \u003d {\u0027name\u0027: new_name}"},{"line_number":1353,"context_line":"        self.send_request("},{"line_number":1354,"context_line":"            f\u0027/storage/qos/policies/{qos_policy_group[\"uuid\"]}\u0027, \u0027patch\u0027,"},{"line_number":1355,"context_line":"            body\u003dbody)"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"    def remove_unused_qos_policy_groups(self):"},{"line_number":1358,"context_line":"        \"\"\"Deletes all QOS policy groups that are marked for deletion.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"8be53dac_812ca6b9","line":1355,"range":{"start_line":1346,"start_character":8,"end_line":1355,"end_character":22},"in_reply_to":"beb2d5a0_01e7a69c","updated":"2022-08-30 15:38:41.000000000","message":"Good suggestion.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1355,"context_line":"            body\u003dbody)"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"    def remove_unused_qos_policy_groups(self):"},{"line_number":1358,"context_line":"        \"\"\"Deletes all QOS policy groups that are marked for deletion.\"\"\""},{"line_number":1359,"context_line":"        query \u003d {\u0027name\u0027: f\u0027{DELETED_PREFIX}*\u0027}"},{"line_number":1360,"context_line":"        self.send_request(\u0027/storage/qos/policies\u0027, \u0027delete\u0027, query\u003dquery)"},{"line_number":1361,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"6aac2b32_3e6b7454","line":1358,"range":{"start_line":1358,"start_character":23,"end_line":1358,"end_character":26},"updated":"2022-08-24 18:30:55.000000000","message":"QoS","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1355,"context_line":"            body\u003dbody)"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"    def remove_unused_qos_policy_groups(self):"},{"line_number":1358,"context_line":"        \"\"\"Deletes all QOS policy groups that are marked for deletion.\"\"\""},{"line_number":1359,"context_line":"        query \u003d {\u0027name\u0027: f\u0027{DELETED_PREFIX}*\u0027}"},{"line_number":1360,"context_line":"        self.send_request(\u0027/storage/qos/policies\u0027, \u0027delete\u0027, query\u003dquery)"},{"line_number":1361,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"55c3e1d8_db6eba4e","line":1358,"range":{"start_line":1358,"start_character":23,"end_line":1358,"end_character":26},"in_reply_to":"6aac2b32_3e6b7454","updated":"2022-08-30 15:38:41.000000000","message":"Ack","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1397,"context_line":"        LOG.info(\u0027Resizing LUN %s directly to new size.\u0027, seg[-1])"},{"line_number":1398,"context_line":""},{"line_number":1399,"context_line":"        body \u003d {\u0027name\u0027: path, \u0027space.size\u0027: new_size_bytes}"},{"line_number":1400,"context_line":"        if force:"},{"line_number":1401,"context_line":"            # lun_resize.add_new_child(\u0027force\u0027, \u0027true\u0027) NO REST EQUIVALENT"},{"line_number":1402,"context_line":"            pass"},{"line_number":1403,"context_line":""},{"line_number":1404,"context_line":"        self._lun_update_by_path(path, body)"},{"line_number":1405,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"dec32118_1c7d5934","line":1402,"range":{"start_line":1400,"start_character":8,"end_line":1402,"end_character":16},"updated":"2022-08-24 18:30:55.000000000","message":"question: will this option be added to REST ? Otherwise, we don\u0027t need to keep this code. WDYT ?","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1397,"context_line":"        LOG.info(\u0027Resizing LUN %s directly to new size.\u0027, seg[-1])"},{"line_number":1398,"context_line":""},{"line_number":1399,"context_line":"        body \u003d {\u0027name\u0027: path, \u0027space.size\u0027: new_size_bytes}"},{"line_number":1400,"context_line":"        if force:"},{"line_number":1401,"context_line":"            # lun_resize.add_new_child(\u0027force\u0027, \u0027true\u0027) NO REST EQUIVALENT"},{"line_number":1402,"context_line":"            pass"},{"line_number":1403,"context_line":""},{"line_number":1404,"context_line":"        self._lun_update_by_path(path, body)"},{"line_number":1405,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"c30e63f0_34920c11","line":1402,"range":{"start_line":1400,"start_character":8,"end_line":1402,"end_character":16},"in_reply_to":"dec32118_1c7d5934","updated":"2022-08-30 15:38:41.000000000","message":"I think it will not be added. Anyway, this option is not needed since it\u0027s used only when the size is being reduced, which will not happen, because this function is being used only in \u0027extend volume\u0027 operation.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1403,"context_line":""},{"line_number":1404,"context_line":"        self._lun_update_by_path(path, body)"},{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"    def _set_lun_space_reservation(self, path, flag):"},{"line_number":1407,"context_line":"        \"\"\"Sets the LUN space reservation on ONTAP.\"\"\""},{"line_number":1408,"context_line":"        seg \u003d path.split(\"/\")"},{"line_number":1409,"context_line":"        LOG.info(\u0027Setting LUN %s space reservation.\u0027, seg[-1])"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"        body \u003d {\u0027name\u0027: path, \u0027space.guarantee.requested\u0027: str(flag)}"},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"        self._lun_update_by_path(path, body)"},{"line_number":1414,"context_line":""},{"line_number":1415,"context_line":"    def _get_lun_by_path(self, path):"},{"line_number":1416,"context_line":"        query \u003d {\u0027name\u0027: path}"}],"source_content_type":"text/x-python","patch_set":9,"id":"0116f806_5e402c07","line":1413,"range":{"start_line":1406,"start_character":5,"end_line":1413,"end_character":44},"updated":"2022-08-24 18:30:55.000000000","message":"whos is calling this function ? I couldnt find any reference to it.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1403,"context_line":""},{"line_number":1404,"context_line":"        self._lun_update_by_path(path, body)"},{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"    def _set_lun_space_reservation(self, path, flag):"},{"line_number":1407,"context_line":"        \"\"\"Sets the LUN space reservation on ONTAP.\"\"\""},{"line_number":1408,"context_line":"        seg \u003d path.split(\"/\")"},{"line_number":1409,"context_line":"        LOG.info(\u0027Setting LUN %s space reservation.\u0027, seg[-1])"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"        body \u003d {\u0027name\u0027: path, \u0027space.guarantee.requested\u0027: str(flag)}"},{"line_number":1412,"context_line":""},{"line_number":1413,"context_line":"        self._lun_update_by_path(path, body)"},{"line_number":1414,"context_line":""},{"line_number":1415,"context_line":"    def _get_lun_by_path(self, path):"},{"line_number":1416,"context_line":"        query \u003d {\u0027name\u0027: path}"}],"source_content_type":"text/x-python","patch_set":9,"id":"19b91bdb_a0de82ba","line":1413,"range":{"start_line":1406,"start_character":5,"end_line":1413,"end_character":44},"in_reply_to":"0116f806_5e402c07","updated":"2022-08-30 15:38:41.000000000","message":"Me neither :D \nRemoving the function.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1444,"context_line":"        if not spec:"},{"line_number":1445,"context_line":"            return"},{"line_number":1446,"context_line":""},{"line_number":1447,"context_line":"        qos_spec_support \u003d ["},{"line_number":1448,"context_line":"            {\u0027key\u0027: \u0027min_throughput\u0027,"},{"line_number":1449,"context_line":"             \u0027support\u0027: qos_min_support,"},{"line_number":1450,"context_line":"             \u0027reason\u0027: _(\u0027is not supported by this back end.\u0027)}"},{"line_number":1451,"context_line":"        ]"},{"line_number":1452,"context_line":"        for feature in qos_spec_support:"},{"line_number":1453,"context_line":"            if feature[\u0027key\u0027] in spec and not feature[\u0027support\u0027]:"},{"line_number":1454,"context_line":"                msg \u003d f\u0027{feature[\"key\"]} {feature[\"reason\"]}\u0027"},{"line_number":1455,"context_line":"                raise na_utils.NetAppDriverException(msg)"},{"line_number":1456,"context_line":""},{"line_number":1457,"context_line":"    def get_if_info_by_ip(self, ip):"},{"line_number":1458,"context_line":"        \"\"\"Gets the network interface info by ip.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"4edbc8b9_b6a43b9a","line":1455,"range":{"start_line":1447,"start_character":7,"end_line":1455,"end_character":57},"updated":"2022-08-24 18:30:55.000000000","message":"this complex code to check the support only makes sense on ZAPI, since there are several keys with different message and support to be checked. Here, it is just a \"min_throughput\", so:\n\nif \u0027min_throughput\u0027 in spec and not qos_min_support: \n  msg \u003d \u0027min_throughput is not supported by this back end.\u0027\n  raise na_utils.NetAppDriverException(msg)","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1444,"context_line":"        if not spec:"},{"line_number":1445,"context_line":"            return"},{"line_number":1446,"context_line":""},{"line_number":1447,"context_line":"        qos_spec_support \u003d ["},{"line_number":1448,"context_line":"            {\u0027key\u0027: \u0027min_throughput\u0027,"},{"line_number":1449,"context_line":"             \u0027support\u0027: qos_min_support,"},{"line_number":1450,"context_line":"             \u0027reason\u0027: _(\u0027is not supported by this back end.\u0027)}"},{"line_number":1451,"context_line":"        ]"},{"line_number":1452,"context_line":"        for feature in qos_spec_support:"},{"line_number":1453,"context_line":"            if feature[\u0027key\u0027] in spec and not feature[\u0027support\u0027]:"},{"line_number":1454,"context_line":"                msg \u003d f\u0027{feature[\"key\"]} {feature[\"reason\"]}\u0027"},{"line_number":1455,"context_line":"                raise na_utils.NetAppDriverException(msg)"},{"line_number":1456,"context_line":""},{"line_number":1457,"context_line":"    def get_if_info_by_ip(self, ip):"},{"line_number":1458,"context_line":"        \"\"\"Gets the network interface info by ip.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"d11e0560_952a34a0","line":1455,"range":{"start_line":1447,"start_character":7,"end_line":1455,"end_character":57},"in_reply_to":"4edbc8b9_b6a43b9a","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1457,"context_line":"    def get_if_info_by_ip(self, ip):"},{"line_number":1458,"context_line":"        \"\"\"Gets the network interface info by ip.\"\"\""},{"line_number":1459,"context_line":"        query_args \u003d {}"},{"line_number":1460,"context_line":"        query_args[\u0027max_records\u0027] \u003d \u002710\u0027"},{"line_number":1461,"context_line":"        query_args[\u0027ip.address\u0027] \u003d volume_utils.resolve_hostname(ip)"},{"line_number":1462,"context_line":"        query_args[\u0027fields\u0027] \u003d \u0027svm\u0027"},{"line_number":1463,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5654df47_db63f15d","line":1460,"range":{"start_line":1460,"start_character":8,"end_line":1460,"end_character":40},"updated":"2022-08-24 18:30:55.000000000","message":"there is a problem here. The code wants to retrieve just 10 entries, but the `send_request` with `get` method is overwritten it, so it will get all records. We can fix:\n\n1. remove this max_records and start returning all network interfaces\n\nor\n\n\n2. change the send_request, not overwriting the max_records in case set.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1457,"context_line":"    def get_if_info_by_ip(self, ip):"},{"line_number":1458,"context_line":"        \"\"\"Gets the network interface info by ip.\"\"\""},{"line_number":1459,"context_line":"        query_args \u003d {}"},{"line_number":1460,"context_line":"        query_args[\u0027max_records\u0027] \u003d \u002710\u0027"},{"line_number":1461,"context_line":"        query_args[\u0027ip.address\u0027] \u003d volume_utils.resolve_hostname(ip)"},{"line_number":1462,"context_line":"        query_args[\u0027fields\u0027] \u003d \u0027svm\u0027"},{"line_number":1463,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"a730c51d_e8002d2a","line":1460,"range":{"start_line":1460,"start_character":8,"end_line":1460,"end_character":40},"in_reply_to":"5654df47_db63f15d","updated":"2022-08-30 15:38:41.000000000","message":"Removed.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1472,"context_line":"        interfaces \u003d []"},{"line_number":1473,"context_line":""},{"line_number":1474,"context_line":"        for item in records:"},{"line_number":1475,"context_line":"            na_element \u003d netapp_api.NaElement(\u0027attributes-list\u0027)"},{"line_number":1476,"context_line":"            na_element.add_new_child(\u0027vserver\u0027, item[\u0027svm\u0027][\u0027name\u0027])"},{"line_number":1477,"context_line":"            interfaces.append(na_element)"},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":"        return interfaces"},{"line_number":1480,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"a74fc976_1603df6f","line":1477,"range":{"start_line":1475,"start_character":11,"end_line":1477,"end_character":41},"updated":"2022-08-24 18:30:55.000000000","message":"NaElement is ZAPI format, we should not use this kind of data strcutre on REST. If the driver layer is reling on that strcuture, it should be changed to be agnostic.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1472,"context_line":"        interfaces \u003d []"},{"line_number":1473,"context_line":""},{"line_number":1474,"context_line":"        for item in records:"},{"line_number":1475,"context_line":"            na_element \u003d netapp_api.NaElement(\u0027attributes-list\u0027)"},{"line_number":1476,"context_line":"            na_element.add_new_child(\u0027vserver\u0027, item[\u0027svm\u0027][\u0027name\u0027])"},{"line_number":1477,"context_line":"            interfaces.append(na_element)"},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":"        return interfaces"},{"line_number":1480,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"e6b95654_8155b201","line":1477,"range":{"start_line":1475,"start_character":11,"end_line":1477,"end_character":41},"in_reply_to":"a74fc976_1603df6f","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1513,"context_line":"            \u0027/protocols/san/igroups/\u0027, \u0027get\u0027, query\u003dquery_initiator_uuid)"},{"line_number":1514,"context_line":""},{"line_number":1515,"context_line":"        response \u003d response_initiator_uuid.get(\u0027records\u0027)"},{"line_number":1516,"context_line":"        igroup_uuid \u003d response[0][\u0027uuid\u0027]"},{"line_number":1517,"context_line":""},{"line_number":1518,"context_line":"        body \u003d {"},{"line_number":1519,"context_line":"            \u0027name\u0027: initiator"}],"source_content_type":"text/x-python","patch_set":9,"id":"d76f291b_a976d923","line":1516,"range":{"start_line":1516,"start_character":8,"end_line":1516,"end_character":41},"updated":"2022-08-24 18:30:55.000000000","message":"the igroup cannot be found, so check the response length:\n\nif len(response) \u003c 1:\n    raise ...","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1513,"context_line":"            \u0027/protocols/san/igroups/\u0027, \u0027get\u0027, query\u003dquery_initiator_uuid)"},{"line_number":1514,"context_line":""},{"line_number":1515,"context_line":"        response \u003d response_initiator_uuid.get(\u0027records\u0027)"},{"line_number":1516,"context_line":"        igroup_uuid \u003d response[0][\u0027uuid\u0027]"},{"line_number":1517,"context_line":""},{"line_number":1518,"context_line":"        body \u003d {"},{"line_number":1519,"context_line":"            \u0027name\u0027: initiator"}],"source_content_type":"text/x-python","patch_set":9,"id":"5b747f4c_0f035f91","line":1516,"range":{"start_line":1516,"start_character":8,"end_line":1516,"end_character":41},"in_reply_to":"d76f291b_a976d923","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1539,"context_line":"            \u0027lun.name\u0027: path,"},{"line_number":1540,"context_line":"            \u0027igroup.name\u0027: igroup_name,"},{"line_number":1541,"context_line":"        }"},{"line_number":1542,"context_line":""},{"line_number":1543,"context_line":"        query_get \u003d {"},{"line_number":1544,"context_line":"            \u0027lun.name\u0027: path,"},{"line_number":1545,"context_line":"            \u0027igroup.name\u0027: igroup_name,"},{"line_number":1546,"context_line":"            \u0027fields\u0027: \u0027logical_unit_number\u0027"},{"line_number":1547,"context_line":"        }"},{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        if lun_id is not None:"},{"line_number":1550,"context_line":"            body_post[\u0027logical_unit_number\u0027] \u003d lun_id"}],"source_content_type":"text/x-python","patch_set":9,"id":"a31b78f4_a69f3f18","line":1547,"range":{"start_line":1542,"start_character":0,"end_line":1547,"end_character":9},"updated":"2022-08-24 18:30:55.000000000","message":"Please, only create the variable when before it is used. In case, the line 1559 should have this new var. The code can fail on line 1557.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1539,"context_line":"            \u0027lun.name\u0027: path,"},{"line_number":1540,"context_line":"            \u0027igroup.name\u0027: igroup_name,"},{"line_number":1541,"context_line":"        }"},{"line_number":1542,"context_line":""},{"line_number":1543,"context_line":"        query_get \u003d {"},{"line_number":1544,"context_line":"            \u0027lun.name\u0027: path,"},{"line_number":1545,"context_line":"            \u0027igroup.name\u0027: igroup_name,"},{"line_number":1546,"context_line":"            \u0027fields\u0027: \u0027logical_unit_number\u0027"},{"line_number":1547,"context_line":"        }"},{"line_number":1548,"context_line":""},{"line_number":1549,"context_line":"        if lun_id is not None:"},{"line_number":1550,"context_line":"            body_post[\u0027logical_unit_number\u0027] \u003d lun_id"}],"source_content_type":"text/x-python","patch_set":9,"id":"8e5f592e_eb40ecdf","line":1547,"range":{"start_line":1542,"start_character":0,"end_line":1547,"end_character":9},"in_reply_to":"a31b78f4_a69f3f18","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1550,"context_line":"            body_post[\u0027logical_unit_number\u0027] \u003d lun_id"},{"line_number":1551,"context_line":""},{"line_number":1552,"context_line":"        try:"},{"line_number":1553,"context_line":"            # FIXME(angiolucci): By netapp docs, the POST method should return"},{"line_number":1554,"context_line":"            # something, but on success it only returns an empty response."},{"line_number":1555,"context_line":"            # Because of that, we need to do a sencond API call with"},{"line_number":1556,"context_line":"            # GET, in order to retrieve the logical_unit_number field."}],"source_content_type":"text/x-python","patch_set":9,"id":"285cc9ae_5c20546d","line":1553,"range":{"start_line":1553,"start_character":20,"end_line":1553,"end_character":30},"updated":"2022-08-24 18:30:55.000000000","message":"who is this guy ? FIXME ? can this comment be removed ?","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1550,"context_line":"            body_post[\u0027logical_unit_number\u0027] \u003d lun_id"},{"line_number":1551,"context_line":""},{"line_number":1552,"context_line":"        try:"},{"line_number":1553,"context_line":"            # FIXME(angiolucci): By netapp docs, the POST method should return"},{"line_number":1554,"context_line":"            # something, but on success it only returns an empty response."},{"line_number":1555,"context_line":"            # Because of that, we need to do a sencond API call with"},{"line_number":1556,"context_line":"            # GET, in order to retrieve the logical_unit_number field."}],"source_content_type":"text/x-python","patch_set":9,"id":"3f2ec985_4a9e6457","line":1553,"range":{"start_line":1553,"start_character":20,"end_line":1553,"end_character":30},"in_reply_to":"285cc9ae_5c20546d","updated":"2022-08-30 15:38:41.000000000","message":"Yes, it was misunderstanding about the documentation.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1551,"context_line":""},{"line_number":1552,"context_line":"        try:"},{"line_number":1553,"context_line":"            # FIXME(angiolucci): By netapp docs, the POST method should return"},{"line_number":1554,"context_line":"            # something, but on success it only returns an empty response."},{"line_number":1555,"context_line":"            # Because of that, we need to do a sencond API call with"},{"line_number":1556,"context_line":"            # GET, in order to retrieve the logical_unit_number field."},{"line_number":1557,"context_line":"            self.send_request(\u0027/protocols/san/lun-maps\u0027, \u0027post\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"bc50b784_e8fa7b5d","line":1554,"range":{"start_line":1554,"start_character":29,"end_line":1554,"end_character":74},"updated":"2022-08-24 18:30:55.000000000","message":"did you check the status code ? the REST may return 202, meaning that is just creating, in this case no response is returned yet.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1551,"context_line":""},{"line_number":1552,"context_line":"        try:"},{"line_number":1553,"context_line":"            # FIXME(angiolucci): By netapp docs, the POST method should return"},{"line_number":1554,"context_line":"            # something, but on success it only returns an empty response."},{"line_number":1555,"context_line":"            # Because of that, we need to do a sencond API call with"},{"line_number":1556,"context_line":"            # GET, in order to retrieve the logical_unit_number field."},{"line_number":1557,"context_line":"            self.send_request(\u0027/protocols/san/lun-maps\u0027, \u0027post\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5cfe6612_fd3bfd3e","line":1554,"range":{"start_line":1554,"start_character":29,"end_line":1554,"end_character":74},"in_reply_to":"bc50b784_e8fa7b5d","updated":"2022-08-30 15:38:41.000000000","message":"It returns 201. But I had to add \u0027return_records \u003d true\u0027 in the query to retrieve the object that was created. Now it works with only one call to the API.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1557,"context_line":"            self.send_request(\u0027/protocols/san/lun-maps\u0027, \u0027post\u0027,"},{"line_number":1558,"context_line":"                              body\u003dbody_post)"},{"line_number":1559,"context_line":"            response \u003d self.send_request(\u0027/protocols/san/lun-maps\u0027,"},{"line_number":1560,"context_line":"                                         \u0027get\u0027, query \u003d query_get)"},{"line_number":1561,"context_line":"            records \u003d response.get(\u0027records\u0027)"},{"line_number":1562,"context_line":"            lun_id_assigned \u003d records[0].get(\u0027logical_unit_number\u0027)"},{"line_number":1563,"context_line":"            return lun_id_assigned"}],"source_content_type":"text/x-python","patch_set":9,"id":"0df947e9_9d099ed2","line":1560,"range":{"start_line":1560,"start_character":53,"end_line":1560,"end_character":56},"updated":"2022-08-24 18:30:55.000000000","message":"remove space between \u003d","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1557,"context_line":"            self.send_request(\u0027/protocols/san/lun-maps\u0027, \u0027post\u0027,"},{"line_number":1558,"context_line":"                              body\u003dbody_post)"},{"line_number":1559,"context_line":"            response \u003d self.send_request(\u0027/protocols/san/lun-maps\u0027,"},{"line_number":1560,"context_line":"                                         \u0027get\u0027, query \u003d query_get)"},{"line_number":1561,"context_line":"            records \u003d response.get(\u0027records\u0027)"},{"line_number":1562,"context_line":"            lun_id_assigned \u003d records[0].get(\u0027logical_unit_number\u0027)"},{"line_number":1563,"context_line":"            return lun_id_assigned"}],"source_content_type":"text/x-python","patch_set":9,"id":"3bdb0f4d_ae787114","line":1560,"range":{"start_line":1560,"start_character":53,"end_line":1560,"end_character":56},"in_reply_to":"0df947e9_9d099ed2","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1670,"context_line":"        }"},{"line_number":1671,"context_line":"        response \u003d self.send_request("},{"line_number":1672,"context_line":"            \u0027/protocols/san/iscsi/services\u0027, \u0027get\u0027, query\u003dquery,"},{"line_number":1673,"context_line":"            enable_tunneling\u003dTrue)"},{"line_number":1674,"context_line":"        records \u003d response.get(\u0027records\u0027)"},{"line_number":1675,"context_line":"        if records:"},{"line_number":1676,"context_line":"            return records[0][\u0027target\u0027][\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"d016b642_a4aea14b","line":1673,"range":{"start_line":1673,"start_character":11,"end_line":1673,"end_character":33},"updated":"2022-08-24 18:30:55.000000000","message":"the defaul is True, don\u0027t need to add this param","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1670,"context_line":"        }"},{"line_number":1671,"context_line":"        response \u003d self.send_request("},{"line_number":1672,"context_line":"            \u0027/protocols/san/iscsi/services\u0027, \u0027get\u0027, query\u003dquery,"},{"line_number":1673,"context_line":"            enable_tunneling\u003dTrue)"},{"line_number":1674,"context_line":"        records \u003d response.get(\u0027records\u0027)"},{"line_number":1675,"context_line":"        if records:"},{"line_number":1676,"context_line":"            return records[0][\u0027target\u0027][\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"ce28890d_21506030","line":1673,"range":{"start_line":1673,"start_character":11,"end_line":1673,"end_character":33},"in_reply_to":"d016b642_a4aea14b","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1687,"context_line":"                \u0027initiator\u0027: iqn,"},{"line_number":1688,"context_line":"            }"},{"line_number":1689,"context_line":"            response \u003d self.send_request(endpoint_url, \u0027get\u0027, query\u003dquery,"},{"line_number":1690,"context_line":"                                         enable_tunneling\u003dTrue)"},{"line_number":1691,"context_line":"            records \u003d response.get(\u0027records\u0027)"},{"line_number":1692,"context_line":"            if not records:"},{"line_number":1693,"context_line":"                initiator_exists \u003d False"}],"source_content_type":"text/x-python","patch_set":9,"id":"e85f1f33_3ee28c3d","line":1690,"range":{"start_line":1690,"start_character":41,"end_line":1690,"end_character":63},"updated":"2022-08-24 18:30:55.000000000","message":"the default is True, don\u0027t need to add this param","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1687,"context_line":"                \u0027initiator\u0027: iqn,"},{"line_number":1688,"context_line":"            }"},{"line_number":1689,"context_line":"            response \u003d self.send_request(endpoint_url, \u0027get\u0027, query\u003dquery,"},{"line_number":1690,"context_line":"                                         enable_tunneling\u003dTrue)"},{"line_number":1691,"context_line":"            records \u003d response.get(\u0027records\u0027)"},{"line_number":1692,"context_line":"            if not records:"},{"line_number":1693,"context_line":"                initiator_exists \u003d False"}],"source_content_type":"text/x-python","patch_set":9,"id":"c5c42770_d3c57e21","line":1690,"range":{"start_line":1690,"start_character":41,"end_line":1690,"end_character":63},"in_reply_to":"e85f1f33_3ee28c3d","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"    def get_iscsi_target_details(self):"},{"line_number":1745,"context_line":"        \"\"\"Gets the iSCSI target portal details.\"\"\""},{"line_number":1746,"context_line":"        # NOTE: from ONTAP documentation:"},{"line_number":1747,"context_line":"        # ONTAP does not support changing the port number for iSCSI."},{"line_number":1748,"context_line":"        # Port number 3260 is registered as part of the iSCSI specification"},{"line_number":1749,"context_line":"        # and cannot be used by any other application or service."}],"source_content_type":"text/x-python","patch_set":9,"id":"951a36f6_4c6bdcd1","line":1746,"range":{"start_line":1746,"start_character":10,"end_line":1746,"end_character":14},"updated":"2022-08-24 18:30:55.000000000","message":"NOTE(bla):","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"    def get_iscsi_target_details(self):"},{"line_number":1745,"context_line":"        \"\"\"Gets the iSCSI target portal details.\"\"\""},{"line_number":1746,"context_line":"        # NOTE: from ONTAP documentation:"},{"line_number":1747,"context_line":"        # ONTAP does not support changing the port number for iSCSI."},{"line_number":1748,"context_line":"        # Port number 3260 is registered as part of the iSCSI specification"},{"line_number":1749,"context_line":"        # and cannot be used by any other application or service."}],"source_content_type":"text/x-python","patch_set":9,"id":"b311aacb_36112bda","line":1746,"range":{"start_line":1746,"start_character":10,"end_line":1746,"end_character":14},"in_reply_to":"951a36f6_4c6bdcd1","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"    def get_iscsi_target_details(self):"},{"line_number":1745,"context_line":"        \"\"\"Gets the iSCSI target portal details.\"\"\""},{"line_number":1746,"context_line":"        # NOTE: from ONTAP documentation:"},{"line_number":1747,"context_line":"        # ONTAP does not support changing the port number for iSCSI."},{"line_number":1748,"context_line":"        # Port number 3260 is registered as part of the iSCSI specification"},{"line_number":1749,"context_line":"        # and cannot be used by any other application or service."},{"line_number":1750,"context_line":"        iscsi_port \u003d 3260"},{"line_number":1751,"context_line":"        query \u003d {"},{"line_number":1752,"context_line":"            \u0027services\u0027: \u0027data_iscsi\u0027,"},{"line_number":1753,"context_line":"            \u0027fields\u0027: \u0027ip.address,enabled\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"32fab279_779400bf","line":1750,"range":{"start_line":1746,"start_character":8,"end_line":1750,"end_character":25},"updated":"2022-08-24 18:30:55.000000000","message":"please add this on line 1760 before it is used on for loop","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1743,"context_line":""},{"line_number":1744,"context_line":"    def get_iscsi_target_details(self):"},{"line_number":1745,"context_line":"        \"\"\"Gets the iSCSI target portal details.\"\"\""},{"line_number":1746,"context_line":"        # NOTE: from ONTAP documentation:"},{"line_number":1747,"context_line":"        # ONTAP does not support changing the port number for iSCSI."},{"line_number":1748,"context_line":"        # Port number 3260 is registered as part of the iSCSI specification"},{"line_number":1749,"context_line":"        # and cannot be used by any other application or service."},{"line_number":1750,"context_line":"        iscsi_port \u003d 3260"},{"line_number":1751,"context_line":"        query \u003d {"},{"line_number":1752,"context_line":"            \u0027services\u0027: \u0027data_iscsi\u0027,"},{"line_number":1753,"context_line":"            \u0027fields\u0027: \u0027ip.address,enabled\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"40baa5fc_089ef62e","line":1750,"range":{"start_line":1746,"start_character":8,"end_line":1750,"end_character":25},"in_reply_to":"32fab279_779400bf","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1783,"context_line":"        }"},{"line_number":1784,"context_line":"        self.send_request(\u0027/storage/luns/\u0027,"},{"line_number":1785,"context_line":"                          \u0027patch\u0027, query\u003dquery,"},{"line_number":1786,"context_line":"                          body\u003dbody, enable_tunneling\u003dTrue)"},{"line_number":1787,"context_line":""},{"line_number":1788,"context_line":"    def clone_file(self, flex_vol, src_path, dest_path, vserver,"},{"line_number":1789,"context_line":"                   dest_exists\u003dFalse, source_snapshot\u003dNone, is_snapshot\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ac95633d_955dd98a","line":1786,"range":{"start_line":1786,"start_character":37,"end_line":1786,"end_character":57},"updated":"2022-08-24 18:30:55.000000000","message":"dont need, the default is True","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1783,"context_line":"        }"},{"line_number":1784,"context_line":"        self.send_request(\u0027/storage/luns/\u0027,"},{"line_number":1785,"context_line":"                          \u0027patch\u0027, query\u003dquery,"},{"line_number":1786,"context_line":"                          body\u003dbody, enable_tunneling\u003dTrue)"},{"line_number":1787,"context_line":""},{"line_number":1788,"context_line":"    def clone_file(self, flex_vol, src_path, dest_path, vserver,"},{"line_number":1789,"context_line":"                   dest_exists\u003dFalse, source_snapshot\u003dNone, is_snapshot\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":9,"id":"6f1a2388_48219408","line":1786,"range":{"start_line":1786,"start_character":37,"end_line":1786,"end_character":57},"in_reply_to":"ac95633d_955dd98a","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1849,"context_line":""},{"line_number":1850,"context_line":"        # NOTE(nahimsouza): some parameters are not available on REST API,"},{"line_number":1851,"context_line":"        # but they are in the header just to keep compatilbility with ZAPI:"},{"line_number":1852,"context_line":"        # src_block, dest_block, block_count, source_snapshot, is_snapshot"},{"line_number":1853,"context_line":""},{"line_number":1854,"context_line":"        self._validate_qos_policy_group(qos_policy_group_is_adaptive)"},{"line_number":1855,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"4fa9fb6d_b73cadb7","line":1852,"range":{"start_line":1852,"start_character":46,"end_line":1852,"end_character":61},"updated":"2022-08-24 18:30:55.000000000","message":"The consistency group implementation relies on this source_snapshot, would it add a bug to the driver CG implementation ? Solutions: \n\n1. We could drop the CG support with REST client, but to do so, we need to report no support when the client is configured with REST.\n\n2. Force the CG driver implementation to call the ZAPI clone_lun implementation\n\n\nWDYT ?","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1849,"context_line":""},{"line_number":1850,"context_line":"        # NOTE(nahimsouza): some parameters are not available on REST API,"},{"line_number":1851,"context_line":"        # but they are in the header just to keep compatilbility with ZAPI:"},{"line_number":1852,"context_line":"        # src_block, dest_block, block_count, source_snapshot, is_snapshot"},{"line_number":1853,"context_line":""},{"line_number":1854,"context_line":"        self._validate_qos_policy_group(qos_policy_group_is_adaptive)"},{"line_number":1855,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":9,"id":"6628e099_41635b6d","line":1852,"range":{"start_line":1852,"start_character":46,"end_line":1852,"end_character":61},"in_reply_to":"4fa9fb6d_b73cadb7","updated":"2022-08-30 15:38:41.000000000","message":"We solved this using \u0027source_snapshot\u0027 as clone.source.name. In this way the lun will be cloned from the snapshot.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1912,"context_line":"            msg_args \u003d flexvol_path or flexvol_name"},{"line_number":1913,"context_line":"            raise na_utils.NetAppDriverException(msg % msg_args)"},{"line_number":1914,"context_line":""},{"line_number":1915,"context_line":"        unique_volume \u003d self._get_unique_volume(records)"},{"line_number":1916,"context_line":""},{"line_number":1917,"context_line":"        LOG.debug(\u0027Found unique volume: %s\u0027, unique_volume)"},{"line_number":1918,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"615ec04e_5f56dfaa","line":1915,"range":{"start_line":1915,"start_character":8,"end_line":1915,"end_character":56},"updated":"2022-08-24 18:30:55.000000000","message":"not required on REST","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1912,"context_line":"            msg_args \u003d flexvol_path or flexvol_name"},{"line_number":1913,"context_line":"            raise na_utils.NetAppDriverException(msg % msg_args)"},{"line_number":1914,"context_line":""},{"line_number":1915,"context_line":"        unique_volume \u003d self._get_unique_volume(records)"},{"line_number":1916,"context_line":""},{"line_number":1917,"context_line":"        LOG.debug(\u0027Found unique volume: %s\u0027, unique_volume)"},{"line_number":1918,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"521adefb_cb118c6a","line":1915,"range":{"start_line":1915,"start_character":8,"end_line":1915,"end_character":56},"in_reply_to":"615ec04e_5f56dfaa","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1914,"context_line":""},{"line_number":1915,"context_line":"        unique_volume \u003d self._get_unique_volume(records)"},{"line_number":1916,"context_line":""},{"line_number":1917,"context_line":"        LOG.debug(\u0027Found unique volume: %s\u0027, unique_volume)"},{"line_number":1918,"context_line":""},{"line_number":1919,"context_line":"        volume \u003d {"},{"line_number":1920,"context_line":"            \u0027size-total\u0027: unique_volume[\u0027space\u0027][\u0027afs_total\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"931d4b0f_32d44116","line":1917,"range":{"start_line":1917,"start_character":3,"end_line":1917,"end_character":59},"updated":"2022-08-24 18:30:55.000000000","message":"Why does it add this log message ?","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1914,"context_line":""},{"line_number":1915,"context_line":"        unique_volume \u003d self._get_unique_volume(records)"},{"line_number":1916,"context_line":""},{"line_number":1917,"context_line":"        LOG.debug(\u0027Found unique volume: %s\u0027, unique_volume)"},{"line_number":1918,"context_line":""},{"line_number":1919,"context_line":"        volume \u003d {"},{"line_number":1920,"context_line":"            \u0027size-total\u0027: unique_volume[\u0027space\u0027][\u0027afs_total\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"8083e405_722da0fe","line":1917,"range":{"start_line":1917,"start_character":3,"end_line":1917,"end_character":59},"in_reply_to":"931d4b0f_32d44116","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":1917,"context_line":"        LOG.debug(\u0027Found unique volume: %s\u0027, unique_volume)"},{"line_number":1918,"context_line":""},{"line_number":1919,"context_line":"        volume \u003d {"},{"line_number":1920,"context_line":"            \u0027size-total\u0027: unique_volume[\u0027space\u0027][\u0027afs_total\u0027],"},{"line_number":1921,"context_line":"            \u0027size-available\u0027: unique_volume[\u0027space\u0027][\u0027available\u0027],"},{"line_number":1922,"context_line":"        }"},{"line_number":1923,"context_line":""},{"line_number":1924,"context_line":"        return volume"}],"source_content_type":"text/x-python","patch_set":9,"id":"7b6f3194_89866507","line":1921,"range":{"start_line":1920,"start_character":25,"end_line":1921,"end_character":66},"updated":"2022-08-24 18:30:55.000000000","message":"the sizes are returned as float on ZAPI, please, keep the same type to avoid issues on driver layer.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":1917,"context_line":"        LOG.debug(\u0027Found unique volume: %s\u0027, unique_volume)"},{"line_number":1918,"context_line":""},{"line_number":1919,"context_line":"        volume \u003d {"},{"line_number":1920,"context_line":"            \u0027size-total\u0027: unique_volume[\u0027space\u0027][\u0027afs_total\u0027],"},{"line_number":1921,"context_line":"            \u0027size-available\u0027: unique_volume[\u0027space\u0027][\u0027available\u0027],"},{"line_number":1922,"context_line":"        }"},{"line_number":1923,"context_line":""},{"line_number":1924,"context_line":"        return volume"}],"source_content_type":"text/x-python","patch_set":9,"id":"2bb25a89_8c36fcec","line":1921,"range":{"start_line":1920,"start_character":25,"end_line":1921,"end_character":66},"in_reply_to":"7b6f3194_89866507","updated":"2022-08-30 15:38:41.000000000","message":"Done","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ca1e9f890d60896eaa60e072c65a3cd7be77a1d8","unresolved":true,"context_lines":[{"line_number":1180,"context_line":"            elif qos_max:"},{"line_number":1181,"context_line":"                # Convert from B/s to MB/s"},{"line_number":1182,"context_line":"                value \u003d math.ceil("},{"line_number":1183,"context_line":"                    self._sanitize_qos_spec_value(qos_max) / (10**6))"},{"line_number":1184,"context_line":"                rest_args[\u0027fixed\u0027][\u0027max_throughput_mbps\u0027] \u003d value"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"            qos_min \u003d spec.get(\u0027min_throughput\u0027)"}],"source_content_type":"text/x-python","patch_set":18,"id":"f49e6135_bb0f649d","line":1183,"range":{"start_line":1183,"start_character":62,"end_line":1183,"end_character":67},"updated":"2022-09-07 12:43:12.000000000","message":"We\u0027ve oslo_utils.unit for this purpose\n\n    from oslo_utils import units\n    units.Mi","commit_id":"e61027fc1a8598d213149d24b57447dded16278d"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"24226025666bbfade3791a673d637760ba4b6817","unresolved":true,"context_lines":[{"line_number":1180,"context_line":"            elif qos_max:"},{"line_number":1181,"context_line":"                # Convert from B/s to MB/s"},{"line_number":1182,"context_line":"                value \u003d math.ceil("},{"line_number":1183,"context_line":"                    self._sanitize_qos_spec_value(qos_max) / (10**6))"},{"line_number":1184,"context_line":"                rest_args[\u0027fixed\u0027][\u0027max_throughput_mbps\u0027] \u003d value"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":"            qos_min \u003d spec.get(\u0027min_throughput\u0027)"}],"source_content_type":"text/x-python","patch_set":18,"id":"a238434c_11e4c0e4","line":1183,"range":{"start_line":1183,"start_character":62,"end_line":1183,"end_character":67},"in_reply_to":"f49e6135_bb0f649d","updated":"2022-09-09 10:51:28.000000000","message":"Ack","commit_id":"e61027fc1a8598d213149d24b57447dded16278d"}],"cinder/volume/drivers/netapp/dataontap/utils/data_motion.py":[{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"659a8237b8cf54037237899d55027ee5e614e19c","unresolved":true,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"            def _wait_volume_is_online():"},{"line_number":509,"context_line":"                volume_state \u003d dest_client.get_volume_state("},{"line_number":510,"context_line":"                    name\u003ddest_flexvol_name)"},{"line_number":511,"context_line":"                if volume_state and volume_state \u003d\u003d \u0027online\u0027:"},{"line_number":512,"context_line":"                    raise loopingcall.LoopingCallDone()"},{"line_number":513,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"8836d62f_6998acea","line":510,"range":{"start_line":510,"start_character":20,"end_line":510,"end_character":42},"updated":"2022-08-24 18:30:55.000000000","message":"Is it a bug on our master ? If so, we have to change it separately, since we want to backport the fix to older stables.","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"},{"author":{"_account_id":33648,"name":"Nahim Alves de Souza","email":"nahimsouza@outlook.com","username":"nahimsouza"},"change_message_id":"ee7262e367586f06fcdd44aa2c0c0484225d9a90","unresolved":false,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"            def _wait_volume_is_online():"},{"line_number":509,"context_line":"                volume_state \u003d dest_client.get_volume_state("},{"line_number":510,"context_line":"                    name\u003ddest_flexvol_name)"},{"line_number":511,"context_line":"                if volume_state and volume_state \u003d\u003d \u0027online\u0027:"},{"line_number":512,"context_line":"                    raise loopingcall.LoopingCallDone()"},{"line_number":513,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"069b3fb6_1c06156e","line":510,"range":{"start_line":510,"start_character":20,"end_line":510,"end_character":42},"in_reply_to":"8836d62f_6998acea","updated":"2022-08-30 15:38:41.000000000","message":"Yes, this is a bug. There is already a patch providing the fix [1], but it was not merged yet.\n\nAs we discussed, I removed this line from here.\n\n[1] https://review.opendev.org/c/openstack/cinder/+/826350","commit_id":"7e7fc74b35cd9369043f29cbbf401c25bf018f93"}]}
