)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"d9efaba240545ccde2eeae537e0f674fc5cc434b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"38734b15_c3cc9379","updated":"2025-03-28 16:12:16.000000000","message":"Not sure, but isn\u0027t this breaking if the vserver client does not have cluster credentials.","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"db10a51f35138c9e21bb142871c85f473777760e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"673e18ec_a643e7ea","in_reply_to":"16e82250_4d7bc425","updated":"2025-04-11 11:51:36.000000000","message":"Done","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"93b36f1ef8fdb8261d07d66d0f4c1e65990bcb70","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"16e82250_4d7bc425","in_reply_to":"38734b15_c3cc9379","updated":"2025-03-31 05:47:18.000000000","message":"should I add check of check_for_cluster_credentials() ?","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9e2a87db7e8e188fb513d3e0579fce0e0a92e1fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0f74ae8c_6d7e317b","updated":"2025-05-08 21:07:35.000000000","message":"I don\u0027t think this was tested with DHSS\u003dFalse using vserver creds. By reading the code, i see some inconsistencies; please see comment inline\n\n@gawasthi2010@gmail.com: Since the NetApp CI is broken, how are we ensuring this isn\u0027t breaking DHSS\u003dFalse? I recall the CI also used \"admin\" credentials when testing DHSS\u003dFalse - so you may not even hit user auth issues on the CI even if it was working :(","commit_id":"be50c8dc2899bc5a06d8f1e33738d7014962818d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3253a926e72ac269815957836405698f568d791d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7d041587_053df6d5","updated":"2025-04-16 23:13:21.000000000","message":"LGTM, thanks Kiran","commit_id":"be50c8dc2899bc5a06d8f1e33738d7014962818d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"1ec21c9558e0f7704b076d8731a38afe600147f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2ad4f951_eda96dfc","updated":"2025-04-24 11:31:47.000000000","message":"Thanks kiran for working on this, changes looks good for me.","commit_id":"be50c8dc2899bc5a06d8f1e33738d7014962818d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3c9cd429a7f4d767a969f6f130de8d6250117cd9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2a7f8556_ff5023a8","updated":"2025-05-22 15:37:17.000000000","message":"LGTM, thanks","commit_id":"0130010829bfc96b337088ae835a6dc75495730c"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"87ae87747099470941d5a317bce4a4c0c03426c2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"63fb7d35_93cb0d47","updated":"2025-05-21 08:35:39.000000000","message":"Thanks kiran for working on this, I have tested few workflow with this patch and it those are working. All looks good for me","commit_id":"0130010829bfc96b337088ae835a6dc75495730c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"12476d050cf4cfb5ded3f3b19f2710cd266de416","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"899beeb1_35554b54","updated":"2025-05-12 08:24:25.000000000","message":"recheck","commit_id":"0130010829bfc96b337088ae835a6dc75495730c"}],"manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"622fd21f2bd6e54edc10ee22fdc1e54f134fb678","unresolved":true,"context_lines":[{"line_number":416,"context_line":"    @na_utils.trace"},{"line_number":417,"context_line":"    def _get_aggregate_node(self, aggregate_name, vserver_client\u003dNone):"},{"line_number":418,"context_line":"        \"\"\"Get home node for the specified aggregate, or None.\"\"\""},{"line_number":419,"context_line":"        if vserver_client:"},{"line_number":420,"context_line":"            return vserver_client.get_node_for_aggregate(aggregate_name)"},{"line_number":421,"context_line":"        elif self._have_cluster_creds:"},{"line_number":422,"context_line":"            return self._client.get_node_for_aggregate(aggregate_name)"},{"line_number":423,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"4f691564_68423ca6","line":420,"range":{"start_line":419,"start_character":8,"end_line":420,"end_character":72},"updated":"2025-03-28 16:56:59.000000000","message":"This API will not work with all \"vserver_client\"s, i.e., what you\u0027re doing here would cause an extra-API call for DHSS\u003dFalse with NetApp.. (and potentially break too). \n\nhttps://opendev.org/openstack/manila/src/commit/5a93b39467af61546e7382086cf9b6def5a3abea/manila/share/drivers/netapp/dataontap/client/client_cmode.py#L1333-L1366\n\nThe logic right now is that: at driver startup, there\u0027s an API call made to check if we\u0027re accessing a cluster management interface, if we are, then, we can query aggregates and determine the home node, and therefore tag the appropriate export location as \"preferred\". If we cannot, we won\u0027t have any \"preferred\" paths. \n\nWhen dealing with replica export paths, we need to make this home node determination on the ONTAP cluster that has the replica. So, what you need is to set the _client to point to that cluster _only_ when dealing with replicas.. \n\nYou\u0027re modifying shared code, where vserver_client will _always_ be set.\n\n@gawasthi2010@gmail.com @manicsaran@gmail.com Can you confirm?","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"260d730a5189e42bb527b16c9a36dde3b61d928c","unresolved":false,"context_lines":[{"line_number":416,"context_line":"    @na_utils.trace"},{"line_number":417,"context_line":"    def _get_aggregate_node(self, aggregate_name, vserver_client\u003dNone):"},{"line_number":418,"context_line":"        \"\"\"Get home node for the specified aggregate, or None.\"\"\""},{"line_number":419,"context_line":"        if vserver_client:"},{"line_number":420,"context_line":"            return vserver_client.get_node_for_aggregate(aggregate_name)"},{"line_number":421,"context_line":"        elif self._have_cluster_creds:"},{"line_number":422,"context_line":"            return self._client.get_node_for_aggregate(aggregate_name)"},{"line_number":423,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"c21756eb_2f691f4e","line":420,"range":{"start_line":419,"start_character":8,"end_line":420,"end_character":72},"in_reply_to":"3833a326_27863ac2","updated":"2025-04-24 11:40:47.000000000","message":"yes, this will be cluster_client. Verified","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aee7dcfcac8266089866f86a0ec0b26f040fe4da","unresolved":true,"context_lines":[{"line_number":416,"context_line":"    @na_utils.trace"},{"line_number":417,"context_line":"    def _get_aggregate_node(self, aggregate_name, vserver_client\u003dNone):"},{"line_number":418,"context_line":"        \"\"\"Get home node for the specified aggregate, or None.\"\"\""},{"line_number":419,"context_line":"        if vserver_client:"},{"line_number":420,"context_line":"            return vserver_client.get_node_for_aggregate(aggregate_name)"},{"line_number":421,"context_line":"        elif self._have_cluster_creds:"},{"line_number":422,"context_line":"            return self._client.get_node_for_aggregate(aggregate_name)"},{"line_number":423,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3833a326_27863ac2","line":420,"range":{"start_line":419,"start_character":8,"end_line":420,"end_character":72},"in_reply_to":"4f691564_68423ca6","updated":"2025-04-24 11:33:47.000000000","message":"yes, get_node_for_aggregate method will failed in vserver scoping. Kiran has changed the code for this now. sorry Goutham for late response.","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"622fd21f2bd6e54edc10ee22fdc1e54f134fb678","unresolved":true,"context_lines":[{"line_number":3304,"context_line":"            LOG.exception(msg, replica[\u0027id\u0027])"},{"line_number":3305,"context_line":"            return replica"},{"line_number":3306,"context_line":""},{"line_number":3307,"context_line":"        try:"},{"line_number":3308,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3309,"context_line":"                replica, share_server, replica_vserver, replica_client,"},{"line_number":3310,"context_line":"                replica\u003dTrue)"},{"line_number":3311,"context_line":"        except netapp_api.NaApiError:"},{"line_number":3312,"context_line":"            replica[\u0027status\u0027] \u003d constants.STATUS_ERROR"},{"line_number":3313,"context_line":"            replica[\u0027replica_state\u0027] \u003d constants.STATUS_ERROR"},{"line_number":3314,"context_line":"            msg \u003d \"Failed to create export for readable replica (%s).\""},{"line_number":3315,"context_line":"            LOG.exception(msg, replica[\u0027id\u0027])"},{"line_number":3316,"context_line":"            return replica"},{"line_number":3317,"context_line":""},{"line_number":3318,"context_line":"        helper \u003d self._get_helper(replica)"},{"line_number":3319,"context_line":"        helper.set_client(replica_client)"}],"source_content_type":"text/x-python","patch_set":1,"id":"d0640db0_16da61a4","line":3316,"range":{"start_line":3307,"start_character":0,"end_line":3316,"end_character":26},"updated":"2025-03-28 16:56:59.000000000","message":"@kinpaa@gmail.com Is this the code that\u0027s causing the error you mention in the bug report?","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"13675477fa3e2a28569624819aabe868b2916466","unresolved":true,"context_lines":[{"line_number":3304,"context_line":"            LOG.exception(msg, replica[\u0027id\u0027])"},{"line_number":3305,"context_line":"            return replica"},{"line_number":3306,"context_line":""},{"line_number":3307,"context_line":"        try:"},{"line_number":3308,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3309,"context_line":"                replica, share_server, replica_vserver, replica_client,"},{"line_number":3310,"context_line":"                replica\u003dTrue)"},{"line_number":3311,"context_line":"        except netapp_api.NaApiError:"},{"line_number":3312,"context_line":"            replica[\u0027status\u0027] \u003d constants.STATUS_ERROR"},{"line_number":3313,"context_line":"            replica[\u0027replica_state\u0027] \u003d constants.STATUS_ERROR"},{"line_number":3314,"context_line":"            msg \u003d \"Failed to create export for readable replica (%s).\""},{"line_number":3315,"context_line":"            LOG.exception(msg, replica[\u0027id\u0027])"},{"line_number":3316,"context_line":"            return replica"},{"line_number":3317,"context_line":""},{"line_number":3318,"context_line":"        helper \u003d self._get_helper(replica)"},{"line_number":3319,"context_line":"        helper.set_client(replica_client)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ea6f8347_9d24e500","line":3316,"range":{"start_line":3307,"start_character":0,"end_line":3316,"end_character":26},"in_reply_to":"7a9171cc_77f56f7a","updated":"2025-04-10 09:10:19.000000000","message":"Re: |How can then it get network_interfaces ?\nNetwork interfaces are owned by a vserver, so if you just have vserver credentials you can still list those (you can only retrieve the ones belonging to that single vserver, not network interfaces of other vservers)\nBut listing aggregates requires cluster credentials.\n\nI propose that you instantiate a \n`replica_cluster_client \u003d data_motion.get_client_for_backend(replica_backend)`\nin _safe_change_replica_source() and then pass that down via _create_export() -\u003e _get_export_addresses_with_metadata() to _get_aggregate_node().\nOmitting the vserver should make it a cluster client.","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"93b36f1ef8fdb8261d07d66d0f4c1e65990bcb70","unresolved":true,"context_lines":[{"line_number":3304,"context_line":"            LOG.exception(msg, replica[\u0027id\u0027])"},{"line_number":3305,"context_line":"            return replica"},{"line_number":3306,"context_line":""},{"line_number":3307,"context_line":"        try:"},{"line_number":3308,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3309,"context_line":"                replica, share_server, replica_vserver, replica_client,"},{"line_number":3310,"context_line":"                replica\u003dTrue)"},{"line_number":3311,"context_line":"        except netapp_api.NaApiError:"},{"line_number":3312,"context_line":"            replica[\u0027status\u0027] \u003d constants.STATUS_ERROR"},{"line_number":3313,"context_line":"            replica[\u0027replica_state\u0027] \u003d constants.STATUS_ERROR"},{"line_number":3314,"context_line":"            msg \u003d \"Failed to create export for readable replica (%s).\""},{"line_number":3315,"context_line":"            LOG.exception(msg, replica[\u0027id\u0027])"},{"line_number":3316,"context_line":"            return replica"},{"line_number":3317,"context_line":""},{"line_number":3318,"context_line":"        helper \u003d self._get_helper(replica)"},{"line_number":3319,"context_line":"        helper.set_client(replica_client)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a9171cc_77f56f7a","line":3316,"range":{"start_line":3307,"start_character":0,"end_line":3316,"end_character":26},"in_reply_to":"d0640db0_16da61a4","updated":"2025-03-31 05:47:18.000000000","message":"yes.\n\nThe create_export call, comes with replica_client. The same replica_client is used to determine network_interfaces and create_share in definition. But its not used while determining export_adresses (i.e. getting aggregates), so exception occurs as aggregate not found. Why do you think this replica_client (i.e. vserver_client) will not always be set ? How can then it get network_interfaces ?","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"01591ff9d2eb1aa32f7ddcfcf49f073a7f6af35c","unresolved":false,"context_lines":[{"line_number":3304,"context_line":"            LOG.exception(msg, replica[\u0027id\u0027])"},{"line_number":3305,"context_line":"            return replica"},{"line_number":3306,"context_line":""},{"line_number":3307,"context_line":"        try:"},{"line_number":3308,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3309,"context_line":"                replica, share_server, replica_vserver, replica_client,"},{"line_number":3310,"context_line":"                replica\u003dTrue)"},{"line_number":3311,"context_line":"        except netapp_api.NaApiError:"},{"line_number":3312,"context_line":"            replica[\u0027status\u0027] \u003d constants.STATUS_ERROR"},{"line_number":3313,"context_line":"            replica[\u0027replica_state\u0027] \u003d constants.STATUS_ERROR"},{"line_number":3314,"context_line":"            msg \u003d \"Failed to create export for readable replica (%s).\""},{"line_number":3315,"context_line":"            LOG.exception(msg, replica[\u0027id\u0027])"},{"line_number":3316,"context_line":"            return replica"},{"line_number":3317,"context_line":""},{"line_number":3318,"context_line":"        helper \u003d self._get_helper(replica)"},{"line_number":3319,"context_line":"        helper.set_client(replica_client)"}],"source_content_type":"text/x-python","patch_set":1,"id":"51ce36f6_a1463c0f","line":3316,"range":{"start_line":3307,"start_character":0,"end_line":3316,"end_character":26},"in_reply_to":"ea6f8347_9d24e500","updated":"2025-04-10 11:05:35.000000000","message":"makes sense, fixed.","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"1ec21c9558e0f7704b076d8731a38afe600147f5","unresolved":true,"context_lines":[{"line_number":3306,"context_line":"            return replica"},{"line_number":3307,"context_line":""},{"line_number":3308,"context_line":"        try:"},{"line_number":3309,"context_line":"            replica_cluster_client \u003d data_motion.get_client_for_backend("},{"line_number":3310,"context_line":"                replica_backend)"},{"line_number":3311,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3312,"context_line":"                replica, share_server, replica_vserver, replica_client,"}],"source_content_type":"text/x-python","patch_set":3,"id":"a0ccc02e_276a864e","line":3309,"updated":"2025-04-24 11:31:47.000000000","message":"This will be cluster client because we are no passing any verser in this call, right ..? if this is vserver client then it will be failed get_node_for_aggregate() method.","commit_id":"be50c8dc2899bc5a06d8f1e33738d7014962818d"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"6f39460c95223001b24df817a7a57e1bac8d6b92","unresolved":false,"context_lines":[{"line_number":3306,"context_line":"            return replica"},{"line_number":3307,"context_line":""},{"line_number":3308,"context_line":"        try:"},{"line_number":3309,"context_line":"            replica_cluster_client \u003d data_motion.get_client_for_backend("},{"line_number":3310,"context_line":"                replica_backend)"},{"line_number":3311,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3312,"context_line":"                replica, share_server, replica_vserver, replica_client,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa49646_98453099","line":3309,"in_reply_to":"52693789_1ec31ed4","updated":"2025-05-09 13:27:42.000000000","message":"yes, it was tested with DHSS\u003dTrue only since we have that deployment. Updated fix based on suggestions.","commit_id":"be50c8dc2899bc5a06d8f1e33738d7014962818d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"53385b6eba25b0fbe577f196f04e7219076af49c","unresolved":true,"context_lines":[{"line_number":3306,"context_line":"            return replica"},{"line_number":3307,"context_line":""},{"line_number":3308,"context_line":"        try:"},{"line_number":3309,"context_line":"            replica_cluster_client \u003d data_motion.get_client_for_backend("},{"line_number":3310,"context_line":"                replica_backend)"},{"line_number":3311,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3312,"context_line":"                replica, share_server, replica_vserver, replica_client,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ea63b37a_5a1256c5","line":3309,"in_reply_to":"5aa49646_98453099","updated":"2025-05-14 21:33:12.000000000","message":"Okay, i\u0027ll review once NetApp folks have had a look and ensured this doesn\u0027t break their DHSS\u003dFalse replication workflows.","commit_id":"be50c8dc2899bc5a06d8f1e33738d7014962818d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9e2a87db7e8e188fb513d3e0579fce0e0a92e1fe","unresolved":true,"context_lines":[{"line_number":3306,"context_line":"            return replica"},{"line_number":3307,"context_line":""},{"line_number":3308,"context_line":"        try:"},{"line_number":3309,"context_line":"            replica_cluster_client \u003d data_motion.get_client_for_backend("},{"line_number":3310,"context_line":"                replica_backend)"},{"line_number":3311,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3312,"context_line":"                replica, share_server, replica_vserver, replica_client,"}],"source_content_type":"text/x-python","patch_set":3,"id":"52693789_1ec31ed4","line":3309,"in_reply_to":"60d3b935_d87eb3da","updated":"2025-05-08 21:07:35.000000000","message":"this method returns a client based on auth data.. \n\n\"replica_backend\" configuration object here will include \"netapp_vserver\" when DHSS\u003dFalse. So, for DHSS\u003dFalse, this will not be a \"cluster_client\" - the call will ALWAYS give you a vserver client.. [1]\n\nFor DHSS\u003dTrue, you\u0027ll get the right behavior because there\u0027s no vserver in the configuration.. \n\nIf you want the cluster client, this method exists in this module: _get_api_client_for_backend()\n\nIt\u0027s being used here: https://opendev.org/openstack/manila/src/commit/e1a0e856871669790c88ab3deb000ec638253904/manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py#L4541-L4543\n\n\n\n[1] https://opendev.org/openstack/manila/src/commit/e1a0e856871669790c88ab3deb000ec638253904/manila/share/drivers/netapp/dataontap/cluster_mode/data_motion.py#L105","commit_id":"be50c8dc2899bc5a06d8f1e33738d7014962818d"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"260d730a5189e42bb527b16c9a36dde3b61d928c","unresolved":false,"context_lines":[{"line_number":3306,"context_line":"            return replica"},{"line_number":3307,"context_line":""},{"line_number":3308,"context_line":"        try:"},{"line_number":3309,"context_line":"            replica_cluster_client \u003d data_motion.get_client_for_backend("},{"line_number":3310,"context_line":"                replica_backend)"},{"line_number":3311,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3312,"context_line":"                replica, share_server, replica_vserver, replica_client,"}],"source_content_type":"text/x-python","patch_set":3,"id":"60d3b935_d87eb3da","line":3309,"in_reply_to":"a0ccc02e_276a864e","updated":"2025-04-24 11:40:47.000000000","message":"Acknowledged","commit_id":"be50c8dc2899bc5a06d8f1e33738d7014962818d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c39866b10381e77b8367870b0035cf411e0e0a8","unresolved":false,"context_lines":[{"line_number":3306,"context_line":"            return replica"},{"line_number":3307,"context_line":""},{"line_number":3308,"context_line":"        try:"},{"line_number":3309,"context_line":"            replica_cluster_client \u003d data_motion.get_client_for_backend("},{"line_number":3310,"context_line":"                replica_backend)"},{"line_number":3311,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3312,"context_line":"                replica, share_server, replica_vserver, replica_client,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7cc2f25a_c5d08952","line":3309,"in_reply_to":"d02211b6_27223631","updated":"2025-05-22 18:45:27.000000000","message":"Great thanks Gireesh. I really hope the NetApp CI can be fixed soon and we don\u0027t introduce regressions.","commit_id":"be50c8dc2899bc5a06d8f1e33738d7014962818d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"87ae87747099470941d5a317bce4a4c0c03426c2","unresolved":true,"context_lines":[{"line_number":3306,"context_line":"            return replica"},{"line_number":3307,"context_line":""},{"line_number":3308,"context_line":"        try:"},{"line_number":3309,"context_line":"            replica_cluster_client \u003d data_motion.get_client_for_backend("},{"line_number":3310,"context_line":"                replica_backend)"},{"line_number":3311,"context_line":"            replica[\u0027export_locations\u0027] \u003d self._create_export("},{"line_number":3312,"context_line":"                replica, share_server, replica_vserver, replica_client,"}],"source_content_type":"text/x-python","patch_set":3,"id":"d02211b6_27223631","line":3309,"in_reply_to":"ea63b37a_5a1256c5","updated":"2025-05-21 08:35:39.000000000","message":"I cherry pick this code to my DevStack and tested below workflow and those are working fine \n- Create the share and share replica using dhss\u003dtrue\n- Create the share and share replica using dhss\u003dfalse \n\n\nRun the replica promote for dhss_false, it is working fine and using cluster credential.","commit_id":"be50c8dc2899bc5a06d8f1e33738d7014962818d"}],"releasenotes/notes/netapp-fix-export-location-for-readable-replica-promote-8e0c4be5f1966e53.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"622fd21f2bd6e54edc10ee22fdc1e54f134fb678","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    NetApp ONTAP driver fixed to update correct export location after promote of"},{"line_number":5,"context_line":"    share replica of replication type readable. For more details, please check"},{"line_number":6,"context_line":"    `Launchpad bug #2104153 \u003chttps://bugs.launchpad.net/manila/+bug/2104153\u003e`_"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9db25898_9c6d80f0","line":4,"range":{"start_line":4,"start_character":70,"end_line":4,"end_character":77},"updated":"2025-03-28 16:56:59.000000000","message":"nit: promotion","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"93b36f1ef8fdb8261d07d66d0f4c1e65990bcb70","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    NetApp ONTAP driver fixed to update correct export location after promote of"},{"line_number":5,"context_line":"    share replica of replication type readable. For more details, please check"},{"line_number":6,"context_line":"    `Launchpad bug #2104153 \u003chttps://bugs.launchpad.net/manila/+bug/2104153\u003e`_"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5e52493e_a05be1fd","line":4,"range":{"start_line":4,"start_character":70,"end_line":4,"end_character":77},"in_reply_to":"9db25898_9c6d80f0","updated":"2025-03-31 05:47:18.000000000","message":"Done","commit_id":"bc7fe368ffaf8a3afc32f53861356b4e7714a4e8"}]}
