)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"020aa3c3f94c7895fcb71cbe5fa11478691ef72c","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     medhac1403 \u003cmedhaj06@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-03-02 09:23:37 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added health check for nodes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ifd479eb5ede90f914fdbd62618938d200abb193a"},{"line_number":10,"context_line":"Signed-off-by: medhac1403 \u003cmedhaj06@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"45d65687_9c2955a4","line":7,"updated":"2026-03-03 05:33:23.000000000","message":"Please add more details for the commit message. Since we are doing more than checking the node health check.","commit_id":"1bd8d77fff817a1496b93b6424c2c835c08c614a"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"4727d54bcc2d717f85bee5a57dfa9227ab87867f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     medhac1403 \u003cmedhaj06@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-03-02 09:23:37 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Added health check for nodes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ifd479eb5ede90f914fdbd62618938d200abb193a"},{"line_number":10,"context_line":"Signed-off-by: medhac1403 \u003cmedhaj06@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1c8833b1_5bf4b13b","line":7,"in_reply_to":"45d65687_9c2955a4","updated":"2026-03-03 11:34:37.000000000","message":"Done","commit_id":"1bd8d77fff817a1496b93b6424c2c835c08c614a"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"020aa3c3f94c7895fcb71cbe5fa11478691ef72c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a341c731_945b2500","updated":"2026-03-03 05:33:23.000000000","message":"Please look at the comments.","commit_id":"1bd8d77fff817a1496b93b6424c2c835c08c614a"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"57960cca66c260caaac737965e5ec949927f0f17","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a3dcabba_57444153","updated":"2026-03-03 04:56:03.000000000","message":"please address the comments.","commit_id":"1bd8d77fff817a1496b93b6424c2c835c08c614a"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"7209318a56850a864acec1e849e6060e5e9f9c26","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8971da3f_9f763657","updated":"2026-03-05 14:35:44.000000000","message":"LGTM","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"ff2d0ed11864287a99b21a6d7e21c2819ab95361","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a2f60f7d_10fddbf6","updated":"2026-03-04 11:02:39.000000000","message":"LGTM","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fbc6ced4dd0297fb349295fd2d5a29cfa9059b2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f5f65e9c_30248fe8","updated":"2026-03-10 13:20:29.000000000","message":"LGTM ..!","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"720eb0bd05addda833b9390b06e29543511406a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"33645f81_9f7d4d87","updated":"2026-03-18 11:54:17.000000000","message":"Run Netapp-CI","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6b0ca91537798f4b914bfa7e0d9a8ec429dabc0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3ccf77de_d563842a","updated":"2026-03-11 15:49:33.000000000","message":"Thanks for working on this change. Please take a look at the comment inline","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"7c7a04b6b24f807e1979ff708e6bd21893c2bf43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f4e2e9eb_4e29841b","updated":"2026-03-03 11:56:26.000000000","message":"Thanks for working on this, provided few comments, please take a look.","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"73d2f5dc9679444dce96ec7f11faeebc08f0cc0b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"26bb97ee_c62408e6","updated":"2026-03-05 08:17:07.000000000","message":"recheck","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"66976dcce4feb9c9e4acd0730729ff38d8d4cca1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d5943a99_36fab207","updated":"2026-03-18 06:20:46.000000000","message":"recheck","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8700caf39db623894bbee32ab252b8310eb86637","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0b76f412_23ce2f56","updated":"2026-04-21 03:47:00.000000000","message":"LGTM ..!","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"df21bd32853a859d9bd2275a78f3169a69798c35","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"25897d1f_883342aa","updated":"2026-04-06 11:37:55.000000000","message":"LGTM now. Thanks Medha for addressing the comments.","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"219cf6ca47c84c8278346d19057c7a9818272af3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4d4103ed_836fde5f","updated":"2026-04-07 07:01:45.000000000","message":"LGTM. Thanks for fixing all comments and testing.","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a1c315f9a05d26ba0027b100e5a512df5ec09b7d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5b8a3667_eb484c1e","updated":"2026-04-30 18:19:25.000000000","message":"THanks for working on the comments. Please take a look at the new questions inline","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"7d97d117d543449b285390d06039fe3f2a6b320f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2d255801_4a21283e","updated":"2026-04-08 06:00:47.000000000","message":"run-NetApp CI","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"45f549507a04f2da48c493d1573159ce7fb953b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"828f39a4_1e8880eb","updated":"2026-03-20 07:01:30.000000000","message":"run-NetApp CI","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"230946bfb5a1c85e1a443886005e0e0219b4630a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b214de47_04912d10","updated":"2026-03-20 10:50:27.000000000","message":"run-NetApp CI","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"771bcc00e06a74e785fdc50665c4eb2212a4d55d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b2ca9e0c_cb1ac881","updated":"2026-03-20 06:33:16.000000000","message":"run-NetApp CI","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"34ee2c6d99e430ca25963b8fd057e99b4d369eb7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d03055df_5cc3e4da","updated":"2026-03-20 09:09:27.000000000","message":"run-NetApp CI","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a4dd81e81fa006ee451aa4591f2faedffd89fbc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e0e9140c_40624179","updated":"2026-05-08 06:06:41.000000000","message":"LGTM","commit_id":"9ed1b745d5241b8e0467cf124ce5f02f783f91b1"}],"manila/share/drivers/netapp/dataontap/client/client_cmode.py":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"020aa3c3f94c7895fcb71cbe5fa11478691ef72c","unresolved":true,"context_lines":[{"line_number":665,"context_line":"            return False"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"    @na_utils.trace"},{"line_number":668,"context_line":"    def list_cluster_nodes(self, only_up\u003dFalse):"},{"line_number":669,"context_line":"        \"\"\"Get all available cluster nodes."},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"        :param only_up: If True, return only nodes whose state is true."}],"source_content_type":"text/x-python","patch_set":3,"id":"a80b40fc_c230b229","line":668,"updated":"2026-03-03 05:33:23.000000000","message":"node_up\u003dFalse may resonate better as the name of the param.","commit_id":"1bd8d77fff817a1496b93b6424c2c835c08c614a"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"4727d54bcc2d717f85bee5a57dfa9227ab87867f","unresolved":false,"context_lines":[{"line_number":665,"context_line":"            return False"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"    @na_utils.trace"},{"line_number":668,"context_line":"    def list_cluster_nodes(self, only_up\u003dFalse):"},{"line_number":669,"context_line":"        \"\"\"Get all available cluster nodes."},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"        :param only_up: If True, return only nodes whose state is true."}],"source_content_type":"text/x-python","patch_set":3,"id":"1cdeca27_e59cd908","line":668,"in_reply_to":"a80b40fc_c230b229","updated":"2026-03-03 11:34:37.000000000","message":"Done","commit_id":"1bd8d77fff817a1496b93b6424c2c835c08c614a"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"57960cca66c260caaac737965e5ec949927f0f17","unresolved":true,"context_lines":[{"line_number":668,"context_line":"    def list_cluster_nodes(self, only_up\u003dFalse):"},{"line_number":669,"context_line":"        \"\"\"Get all available cluster nodes."},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"        :param only_up: If True, return only nodes whose state is true."},{"line_number":672,"context_line":"                        If False (default), return all nodes that have a name."},{"line_number":673,"context_line":"        \"\"\""},{"line_number":674,"context_line":"        api_args \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8f1f25_88fc38c4","line":671,"updated":"2026-03-03 04:56:03.000000000","message":"```suggestion\n        :param only_up: If True, return only nodes whose state is up/healthy.\n```","commit_id":"1bd8d77fff817a1496b93b6424c2c835c08c614a"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"4727d54bcc2d717f85bee5a57dfa9227ab87867f","unresolved":false,"context_lines":[{"line_number":668,"context_line":"    def list_cluster_nodes(self, only_up\u003dFalse):"},{"line_number":669,"context_line":"        \"\"\"Get all available cluster nodes."},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"        :param only_up: If True, return only nodes whose state is true."},{"line_number":672,"context_line":"                        If False (default), return all nodes that have a name."},{"line_number":673,"context_line":"        \"\"\""},{"line_number":674,"context_line":"        api_args \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"39761190_2310d5ea","line":671,"in_reply_to":"ba8f1f25_88fc38c4","updated":"2026-03-03 11:34:37.000000000","message":"Done","commit_id":"1bd8d77fff817a1496b93b6424c2c835c08c614a"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"7c7a04b6b24f807e1979ff708e6bd21893c2bf43","unresolved":true,"context_lines":[{"line_number":665,"context_line":"            return False"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"    @na_utils.trace"},{"line_number":668,"context_line":"    def list_cluster_nodes(self, node_up\u003dFalse):"},{"line_number":669,"context_line":"        \"\"\"Get all available cluster nodes."},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"        :param node_up: If True, return only nodes whose state is up/healthy."}],"source_content_type":"text/x-python","patch_set":4,"id":"aae6c66f_e30b656a","line":668,"range":{"start_line":668,"start_character":33,"end_line":668,"end_character":47},"updated":"2026-03-03 11:56:26.000000000","message":"What is the need of passing this parameter.","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"ab282d9c4e31dee474a3385452ebc5d85a1d0e94","unresolved":false,"context_lines":[{"line_number":665,"context_line":"            return False"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"    @na_utils.trace"},{"line_number":668,"context_line":"    def list_cluster_nodes(self, node_up\u003dFalse):"},{"line_number":669,"context_line":"        \"\"\"Get all available cluster nodes."},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"        :param node_up: If True, return only nodes whose state is up/healthy."}],"source_content_type":"text/x-python","patch_set":4,"id":"b3c2aa43_348c5563","line":668,"range":{"start_line":668,"start_character":33,"end_line":668,"end_character":47},"in_reply_to":"aae6c66f_e30b656a","updated":"2026-03-05 07:15:50.000000000","message":"Had internal discussion with @anoop.shukla@netapp.com and @gawasthi2010@gmail.com, decided to keep the flag.","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"7c7a04b6b24f807e1979ff708e6bd21893c2bf43","unresolved":true,"context_lines":[{"line_number":684,"context_line":"            \u0027attributes-list\u0027) or netapp_api.NaElement(\u0027none\u0027)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        if node_up:"},{"line_number":687,"context_line":"            return ["},{"line_number":688,"context_line":"                node_info.get_child_content(\u0027node\u0027)"},{"line_number":689,"context_line":"                for node_info in nodes_info_list.get_children()"},{"line_number":690,"context_line":"                if node_info.get_child_content(\u0027is-node-healthy\u0027) \u003d\u003d \u0027true\u0027"},{"line_number":691,"context_line":"                and node_info.get_child_content(\u0027node\u0027)"},{"line_number":692,"context_line":"            ]"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"        return ["},{"line_number":695,"context_line":"            node_info.get_child_content(\u0027node\u0027)"},{"line_number":696,"context_line":"            for node_info in nodes_info_list.get_children()"}],"source_content_type":"text/x-python","patch_set":4,"id":"187370b4_ee8885e5","line":693,"range":{"start_line":687,"start_character":11,"end_line":693,"end_character":0},"updated":"2026-03-03 11:56:26.000000000","message":"We can return this in all the cases, not need to pass the flag True or False","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"ab282d9c4e31dee474a3385452ebc5d85a1d0e94","unresolved":false,"context_lines":[{"line_number":684,"context_line":"            \u0027attributes-list\u0027) or netapp_api.NaElement(\u0027none\u0027)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        if node_up:"},{"line_number":687,"context_line":"            return ["},{"line_number":688,"context_line":"                node_info.get_child_content(\u0027node\u0027)"},{"line_number":689,"context_line":"                for node_info in nodes_info_list.get_children()"},{"line_number":690,"context_line":"                if node_info.get_child_content(\u0027is-node-healthy\u0027) \u003d\u003d \u0027true\u0027"},{"line_number":691,"context_line":"                and node_info.get_child_content(\u0027node\u0027)"},{"line_number":692,"context_line":"            ]"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"        return ["},{"line_number":695,"context_line":"            node_info.get_child_content(\u0027node\u0027)"},{"line_number":696,"context_line":"            for node_info in nodes_info_list.get_children()"}],"source_content_type":"text/x-python","patch_set":4,"id":"f21e7956_18ab4f95","line":693,"range":{"start_line":687,"start_character":11,"end_line":693,"end_character":0},"in_reply_to":"187370b4_ee8885e5","updated":"2026-03-05 07:15:50.000000000","message":"Had internal discussion with @anoop.shukla@netapp.com and @gawasthi2010@gmail.com, decided to keep the flag.","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"}],"manila/share/drivers/netapp/dataontap/client/client_cmode_rest.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6b0ca91537798f4b914bfa7e0d9a8ec429dabc0a","unresolved":true,"context_lines":[{"line_number":415,"context_line":"            return ["},{"line_number":416,"context_line":"                node.get(\u0027name\u0027)"},{"line_number":417,"context_line":"                for node in records"},{"line_number":418,"context_line":"                if node.get(\u0027state\u0027) \u003d\u003d \u0027up\u0027 and node.get(\u0027name\u0027)"},{"line_number":419,"context_line":"            ]"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        return [node.get(\u0027name\u0027) for node in records if node.get(\u0027name\u0027)]"}],"source_content_type":"text/x-python","patch_set":4,"id":"76629a0d_2e84ef75","line":418,"range":{"start_line":418,"start_character":49,"end_line":418,"end_character":65},"updated":"2026-03-11 15:49:33.000000000","message":"is there a case when a node would not have a name?","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"2865c2ec3621f0c0ac9305e0b1745bdf6efe34a5","unresolved":true,"context_lines":[{"line_number":415,"context_line":"            return ["},{"line_number":416,"context_line":"                node.get(\u0027name\u0027)"},{"line_number":417,"context_line":"                for node in records"},{"line_number":418,"context_line":"                if node.get(\u0027state\u0027) \u003d\u003d \u0027up\u0027 and node.get(\u0027name\u0027)"},{"line_number":419,"context_line":"            ]"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        return [node.get(\u0027name\u0027) for node in records if node.get(\u0027name\u0027)]"}],"source_content_type":"text/x-python","patch_set":4,"id":"80b7baf7_22863d0e","line":418,"range":{"start_line":418,"start_character":49,"end_line":418,"end_character":65},"in_reply_to":"76629a0d_2e84ef75","updated":"2026-03-13 13:39:52.000000000","message":"no, I think we all the nodes should have a name.","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"378a4b2b57727d0d38468ac3e7569d236c26f14e","unresolved":false,"context_lines":[{"line_number":415,"context_line":"            return ["},{"line_number":416,"context_line":"                node.get(\u0027name\u0027)"},{"line_number":417,"context_line":"                for node in records"},{"line_number":418,"context_line":"                if node.get(\u0027state\u0027) \u003d\u003d \u0027up\u0027 and node.get(\u0027name\u0027)"},{"line_number":419,"context_line":"            ]"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"        return [node.get(\u0027name\u0027) for node in records if node.get(\u0027name\u0027)]"}],"source_content_type":"text/x-python","patch_set":4,"id":"712d1d81_8b9f4a10","line":418,"range":{"start_line":418,"start_character":49,"end_line":418,"end_character":65},"in_reply_to":"80b7baf7_22863d0e","updated":"2026-03-26 14:00:23.000000000","message":"Acknowledged","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"}],"manila/share/drivers/netapp/dataontap/cluster_mode/lib_multi_svm.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6b0ca91537798f4b914bfa7e0d9a8ec429dabc0a","unresolved":true,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":4,"id":"32b2f144_c1a0c656","line":440,"range":{"start_line":440,"start_character":8,"end_line":440,"end_character":61},"updated":"2026-03-11 15:49:33.000000000","message":"So as the code stands, our procedure does 1-1 port creation for all nodes, and we do expect that the nodes are available, which is causing this problem.\n\nMy biggest concern with this change is that list_cluster_node could get a different result for every single time this is being run, for example:\n\n1. At the moment of the creation, the cluster had node A up, but node B was down.\n2. We allow the share server to be created.\n3. At some point, for maintenance or other reasons node A needs to go down but node B is now up. The share would be not accessible even though there is one node.\n4. We attempt deleting the share server when node A is down and node b is up.\n\nWith the scenario above, there are some problems, being: not offering high availability, and leaving ports behind in the node, which could be a much bigger problem.\n\nBesides, there are many other places in the code that we also call list_cluster_nodes, some example are:\n\n_create_port_and_broadcast_domain - calls list cluster nodes. If we don\u0027t set node_up\u003dTrue, we would have a mismatch between that call and this one when we list the nodes.\n\nlist_cluster_nodes is called from get_network_allocations_number - which would be getting a wrong number of network allocations if node_up is not specified. If there are three nodes in the cluster but only one is available, we\u0027d be allocating three interfaces when we only needed one.\n\nSame for checking migration share server migration and many other places.\n\nAll of these calls must be evaluated and updated if needed.\n\nAt the end, I am not sure if ignoring the nodes that are down is the best approach to go with, considering all things I mentioned above. I am thinking of some alternatives now, but happy to brainstorm with you:\n\n1. We deny the share creation, as it is happening but add a user message.\n2. We allow the creation to proceed but introduce a periodic task in the driver. In the creation, we can use the private_storage to track whether one or more nodes were down during the share server creation, if any, the periodic task would then check from time if the node is up and attempt the port creation. \u003c- this seems a bit over-engineered and we\u0027d need to send information back to the share/manager, which would need to update the export locations.\n3. We allow the creation but also update ensure shares to compare nodes and interfaces, but that would mean a difference between the number of ports allocated vs the ones used, unless we can store it somewhere.\n\nI\u0027d be more inclined for option three, but we\u0027d need to make the correct number of allocations from neutron and store them somewhere in the driver.\n\nDoes this make sense?","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"7c7a04b6b24f807e1979ff708e6bd21893c2bf43","unresolved":true,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":4,"id":"5c7f78f4_5246d714","line":440,"range":{"start_line":440,"start_character":47,"end_line":440,"end_character":61},"updated":"2026-03-03 11:56:26.000000000","message":"Why we are passing this flag...?","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"378a4b2b57727d0d38468ac3e7569d236c26f14e","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":4,"id":"ce7b2cb5_b389a12f","line":440,"range":{"start_line":440,"start_character":8,"end_line":440,"end_character":61},"in_reply_to":"2286c063_5cad43d7","updated":"2026-03-26 14:00:23.000000000","message":"Done","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5c15c65fd7fdbfce9cefd6588812c34ff2ef54fe","unresolved":true,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":4,"id":"3a375f9b_0da8ccdc","line":440,"range":{"start_line":440,"start_character":8,"end_line":440,"end_character":61},"in_reply_to":"32b2f144_c1a0c656","updated":"2026-03-11 20:49:08.000000000","message":"Another alternative that I was discussing with Goutham would be something we discussed a couple of days earlier: the driver should be finding the home node and partner node for each aggr assigned to the vserver and creating 1 LIF for each pair of nodes. If both home and partner are down, we should fail the share creation.","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"7e448bf6293595c706a3bd3666e56c615c2ef4e6","unresolved":true,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":4,"id":"fdb5466f_340fff5b","line":440,"range":{"start_line":440,"start_character":8,"end_line":440,"end_character":61},"in_reply_to":"3a375f9b_0da8ccdc","updated":"2026-03-12 13:35:29.000000000","message":"Hi Carloss,\n\nAs we discussed during the review meeting, NFS recommendation is to have atleast one LIF available with failover policy set for the LIFs. ONTAP does not recommend creation of LIFs for all Nodes as there is nothing like multipathing that can be achieved in case of NAS. The way failovers are supposed to be managed is via the LIF failover to partner nodes. Creating one LIF per node has its own side affects where we can end up loosing IPs and reaching LIF limits per node on storage.\n\nDuring the Share Server creation, we are not sure which Aggr will be used (and indirectly which Node will the Share get placed onto). Hence a generic approach is taken which creates LIF on all nodes. On a \u003e2 node cluster, we can have LIFs created unnecessarily (even if SVMs are not mapped to the other node aggregates).\n\nA better approach to this problem and a holistic solution would be to decouple the LIF creation from SVM workflow to Share workflow. What we can do with that is, create LIF only on the Node (and may be partner Node) where the share is being created (or reuse an existing LIF if already present) and also provide options to setup failover policies on the LIFs so that if they go down, they migrate to the parnter node providing HA. And that is something we have added to our backlog and will be addressed soon.\n\nThis patch addresses the issue of failure of an SVM creation if a node is down. A node down ideally should not cause the SVM creation to fail because of LIF creation failing. Since the partner node is available and recommendation for NFS is to have atleast one LIF in \u0027up\u0027 state for mounts to be created on NFS clients.","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"ab282d9c4e31dee474a3385452ebc5d85a1d0e94","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":4,"id":"3b03e78d_61183dcd","line":440,"range":{"start_line":440,"start_character":47,"end_line":440,"end_character":61},"in_reply_to":"5c7f78f4_5246d714","updated":"2026-03-05 07:15:50.000000000","message":"Had internal discussion with @anoop.shukla@netapp.com and @gawasthi2010@gmail.com, decided to keep the flag.","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"b9146754aa6fad2622e03db48bc5ff08ba6b3e48","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":4,"id":"c2230f48_8ee1d978","line":440,"range":{"start_line":440,"start_character":8,"end_line":440,"end_character":61},"in_reply_to":"b26b6799_c9b9ee82","updated":"2026-04-01 02:56:37.000000000","message":"Ontap api response for share server migration check https://paste.opendev.org/show/831893/\nI have tested share creation with standalone and neutron both are working fine. Please review the patch","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"cdd3dfaf3accdd7c0d10e7be7c41c3ecb3f2ca12","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":4,"id":"b26b6799_c9b9ee82","line":440,"range":{"start_line":440,"start_character":8,"end_line":440,"end_character":61},"in_reply_to":"ce7b2cb5_b389a12f","updated":"2026-03-26 14:59:39.000000000","message":"I have added the nodeup\u003dTrue flag and test share creation which works fine. Share server migration check fails but that check is from ontap, from openstack we only call the POST https://\u003ccluster-mgmt-ip\u003e/api/svm/migrations which gives job uuid and then do GET https://\u003ccluster-mgmt-ip\u003e/api/cluster/jobs/\u003cjob_uuid\u003e\nONTAP\u0027s own job engine rejected the migration. Manila had no control over this — it simply received the failure response. \n\n\n\nrefer this for full log https://paste.opendev.org/show/bLlVdyneFG5YWPHOfGwf/","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"2865c2ec3621f0c0ac9305e0b1745bdf6efe34a5","unresolved":true,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":4,"id":"2286c063_5cad43d7","line":440,"range":{"start_line":440,"start_character":8,"end_line":440,"end_character":61},"in_reply_to":"fdb5466f_340fff5b","updated":"2026-03-13 13:39:52.000000000","message":"Thanks @ces.eduardo98@gmail.com for you comments. I agree that we should make the changes as you suggested. @medhaj06@gmail.com, could you please evaluate all the areas where these changes need to be applied? I have listed a few methods where we have to make the changes, but please also check for any other places that may need updates.\n\n \n- get_network_allocations_number\n- _check_compatibility_for_svm_migrate\n- _create_port_and_broadcast_domain\n\nAlso, we need to test other feature while one of the node of HA pair is down \n- Share server creation\n- share server migration \n- Share server creation with StandAlone plugin \n- Share server creation with Neutron plugin\n- Bring the down node up and make sure all the manila share provisioning should work fine.","commit_id":"aeb52a6ec9e6cb00438037cb6ec20a6d10fd9e2b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a1c315f9a05d26ba0027b100e5a512df5ec09b7d","unresolved":true,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":5,"id":"76aaeba4_e92f6991","line":440,"range":{"start_line":440,"start_character":8,"end_line":440,"end_character":61},"updated":"2026-04-30 18:19:25.000000000","message":"maybe this should be cached and sent to the setup network for vserver function? otherwise, it will list nodes there again and there is a chance the mismatch will keep happening, meaning my main concern with this is not addressed. This also needs to happen for _create_vserver_lifs, which is also doing a list_cluster_nodes call. If we don\u0027t do this, there is a chance we allocated either more or less IPs than we should\u0027ve.","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"33e815fbf4315dac23d275f67ba57d18aea082ae","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        mtu \u003d ref_subnet_allocation[\u0027mtu\u0027] or DEFAULT_MTU"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"        home_ports \u003d {}"},{"line_number":440,"context_line":"        nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)"},{"line_number":441,"context_line":"        for node in nodes:"},{"line_number":442,"context_line":"            port \u003d self._get_node_data_port(node)"},{"line_number":443,"context_line":"            vlan_port_name \u003d self._client.create_port_and_broadcast_domain("}],"source_content_type":"text/x-python","patch_set":5,"id":"e4c2e190_c8a92155","line":440,"range":{"start_line":440,"start_character":8,"end_line":440,"end_character":61},"in_reply_to":"76aaeba4_e92f6991","updated":"2026-05-06 08:47:48.000000000","message":"updated the patch to use cached nodes in _setup_network_for_vserver. _create_vserver_lifs is already taking cached nodes \"lif_home_ports\u003dhome_ports\" so didn\u0027t made any change there. let me know if i have missed something.","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a1c315f9a05d26ba0027b100e5a512df5ec09b7d","unresolved":true,"context_lines":[{"line_number":1333,"context_line":"            self._check_data_lif_count_limit_reached_for_ha_pair(dest_client)"},{"line_number":1334,"context_line":""},{"line_number":1335,"context_line":"        # 2. Create new ipspace, port and broadcast domain."},{"line_number":1336,"context_line":"        node_name \u003d self._client.list_cluster_nodes(node_up\u003dTrue)[0]"},{"line_number":1337,"context_line":"        port \u003d self._get_node_data_port(node_name)"},{"line_number":1338,"context_line":"        vlan \u003d network_info[\u0027network_allocations\u0027][0][\u0027segmentation_id\u0027]"},{"line_number":1339,"context_line":"        destination_ipspace \u003d self._client.get_ipspace_name_for_vlan_port("}],"source_content_type":"text/x-python","patch_set":5,"id":"de5f7c6f_d0c3f94d","line":1336,"range":{"start_line":1336,"start_character":8,"end_line":1336,"end_character":68},"updated":"2026-04-30 18:19:25.000000000","message":"if no nodes exist, this will throw an exception. Instead, something like this should be done:\n```suggestion\n        cluster_nodes \u003d self._client.list_cluster_nodes(node_up\u003dTrue)\n        if custer_nodes:\n            node_name \u003d cluster_nodes[0]\n        else:\n            # raise an exception...\n\n```","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"33e815fbf4315dac23d275f67ba57d18aea082ae","unresolved":false,"context_lines":[{"line_number":1333,"context_line":"            self._check_data_lif_count_limit_reached_for_ha_pair(dest_client)"},{"line_number":1334,"context_line":""},{"line_number":1335,"context_line":"        # 2. Create new ipspace, port and broadcast domain."},{"line_number":1336,"context_line":"        node_name \u003d self._client.list_cluster_nodes(node_up\u003dTrue)[0]"},{"line_number":1337,"context_line":"        port \u003d self._get_node_data_port(node_name)"},{"line_number":1338,"context_line":"        vlan \u003d network_info[\u0027network_allocations\u0027][0][\u0027segmentation_id\u0027]"},{"line_number":1339,"context_line":"        destination_ipspace \u003d self._client.get_ipspace_name_for_vlan_port("}],"source_content_type":"text/x-python","patch_set":5,"id":"9fce024a_c6cd4381","line":1336,"range":{"start_line":1336,"start_character":8,"end_line":1336,"end_character":68},"in_reply_to":"93353eab_ed4e2f75","updated":"2026-05-06 08:47:48.000000000","message":"Done","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"ad207e629d7b689024af75ea7c8e4507d69965a1","unresolved":true,"context_lines":[{"line_number":1333,"context_line":"            self._check_data_lif_count_limit_reached_for_ha_pair(dest_client)"},{"line_number":1334,"context_line":""},{"line_number":1335,"context_line":"        # 2. Create new ipspace, port and broadcast domain."},{"line_number":1336,"context_line":"        node_name \u003d self._client.list_cluster_nodes(node_up\u003dTrue)[0]"},{"line_number":1337,"context_line":"        port \u003d self._get_node_data_port(node_name)"},{"line_number":1338,"context_line":"        vlan \u003d network_info[\u0027network_allocations\u0027][0][\u0027segmentation_id\u0027]"},{"line_number":1339,"context_line":"        destination_ipspace \u003d self._client.get_ipspace_name_for_vlan_port("}],"source_content_type":"text/x-python","patch_set":5,"id":"93353eab_ed4e2f75","line":1336,"range":{"start_line":1336,"start_character":8,"end_line":1336,"end_character":68},"in_reply_to":"de5f7c6f_d0c3f94d","updated":"2026-05-05 11:05:38.000000000","message":"I am not sure if there can be an ONTAP configuration without nodes. Although I agree that there can be an API issue which returns no records and this may end up throwing the error.","commit_id":"32a87cfd178be7f28855d173b35ab6ae032009ba"}],"manila/tests/share/drivers/netapp/dataontap/client/test_client_cmode_rest.py":[{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"57960cca66c260caaac737965e5ec949927f0f17","unresolved":true,"context_lines":[{"line_number":385,"context_line":"        ]"},{"line_number":386,"context_line":"        self.assertEqual(expected_default, default_result)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        # Optional behavior: only return nodes that are \u0027up\u0027."},{"line_number":389,"context_line":"        self.client.send_request.reset_mock()"},{"line_number":390,"context_line":"        only_up_result \u003d self.client.list_cluster_nodes(only_up\u003dTrue)"},{"line_number":391,"context_line":"        self.client.send_request.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":3,"id":"46e49396_4c6ecec2","line":388,"updated":"2026-03-03 04:56:03.000000000","message":"Please add this scenario as separate test case instead of clubbing in same. You can use @ddt.data() approach to vary in same test case.","commit_id":"1bd8d77fff817a1496b93b6424c2c835c08c614a"},{"author":{"_account_id":38479,"name":"Medha Choudhary","display_name":"Medha Choudhary","email":"medhaj06@gmail.com","username":"medhac1403","status":"NetApp"},"change_message_id":"4727d54bcc2d717f85bee5a57dfa9227ab87867f","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        ]"},{"line_number":386,"context_line":"        self.assertEqual(expected_default, default_result)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        # Optional behavior: only return nodes that are \u0027up\u0027."},{"line_number":389,"context_line":"        self.client.send_request.reset_mock()"},{"line_number":390,"context_line":"        only_up_result \u003d self.client.list_cluster_nodes(only_up\u003dTrue)"},{"line_number":391,"context_line":"        self.client.send_request.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa2bbbb_33067033","line":388,"in_reply_to":"46e49396_4c6ecec2","updated":"2026-03-03 11:34:37.000000000","message":"Done","commit_id":"1bd8d77fff817a1496b93b6424c2c835c08c614a"}]}
