<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Recursive delete of directory using NMSDK in Software Development Kit (SDK) and API Discussions</title>
    <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Recursive-delete-of-directory-using-NMSDK/m-p/124489#M2130</link>
    <description>&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;In order to automatically manage home directory creation, access rights setting and cleanup of obsolete homes, we use our IdM system to remotely control the filer via the NMSDK Java API.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;But currently it seems to be impossible to recursively delete a directory using the com.netapp.nmsdk.ontap.api.file.FileDeleteDirectoryRequest&lt;BR /&gt;&lt;BR /&gt;In my opinion the solution would be to also implement the "withForce" option as it is available in com.netapp.nmsdk.ontap.api.qtree.QtreeDeleteRequest for use with the com.netapp.nmsdk.ontap.api.file.FileDeleteDirectoryRequest&lt;BR /&gt;&lt;BR /&gt;I'm aware that it is possible to recursively iterate over the directory contents and delete every single file and subdirectory manually until the original directory is empty and can therefore also be deleted.&lt;BR /&gt;Unfortunately the solution is impractical for large scale use because of poor performance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;Also making every home directory a qtree is impratical because the number of qtrees per volume is limited to something around 5.000 as far as I know.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;And also this would introduce unecessary overhead.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;Would it be possible to extend the API at this point to allow recursive deletes?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;Or is there any other solution to my problem that I have overlooked?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;I would be grateful for any pointers. Thanks for your time in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;For reference: I also used the search and found the following posts concerning the issue, but none of them could help me solve the problem.&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN class="x23i x290 x240"&gt;&lt;A href="https://community.netapp.com/t5/Microsoft-Cloud-and-Virtualization-Discussions/Remove-NaDirectory-is-not-working-on-Dierctories-that-are-not-empty/m-p/27735/highlight/true#M1249" target="_blank"&gt;https://community.netapp.com/t5/Microsoft-Cloud-and-Virtualization-Discussions/Remove-NaDirectory-is-not-working-on-Dierctories-that-are-not-empty/m-p/27735/highlight/true#M1249&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="x23i x290 x240"&gt;&lt;A href="https://community.netapp.com/t5/Network-Storage-Protocols-Discussions/Delete-Qtree-Not-Empty/m-p/78103/highlight/true#M7087" target="_blank"&gt;https://community.netapp.com/t5/Network-Storage-Protocols-Discussions/Delete-Qtree-Not-Empty/m-p/78103/highlight/true#M7087&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="x23i x290 x240"&gt;&lt;A href="https://community.netapp.com/t5/Microsoft-Cloud-and-Virtualization-Discussions/Recurse-remove-NaDirectory-and-remove-NaFile/m-p/14939/highlight/true#M766" target="_blank"&gt;https://community.netapp.com/t5/Microsoft-Cloud-and-Virtualization-Discussions/Recurse-remove-NaDirectory-and-remove-NaFile/m-p/14939/highlight/true#M766&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 04 Jun 2025 18:34:13 GMT</pubDate>
    <dc:creator>longariva</dc:creator>
    <dc:date>2025-06-04T18:34:13Z</dc:date>
    <item>
      <title>Recursive delete of directory using NMSDK</title>
      <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Recursive-delete-of-directory-using-NMSDK/m-p/124489#M2130</link>
      <description>&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;In order to automatically manage home directory creation, access rights setting and cleanup of obsolete homes, we use our IdM system to remotely control the filer via the NMSDK Java API.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;But currently it seems to be impossible to recursively delete a directory using the com.netapp.nmsdk.ontap.api.file.FileDeleteDirectoryRequest&lt;BR /&gt;&lt;BR /&gt;In my opinion the solution would be to also implement the "withForce" option as it is available in com.netapp.nmsdk.ontap.api.qtree.QtreeDeleteRequest for use with the com.netapp.nmsdk.ontap.api.file.FileDeleteDirectoryRequest&lt;BR /&gt;&lt;BR /&gt;I'm aware that it is possible to recursively iterate over the directory contents and delete every single file and subdirectory manually until the original directory is empty and can therefore also be deleted.&lt;BR /&gt;Unfortunately the solution is impractical for large scale use because of poor performance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;Also making every home directory a qtree is impratical because the number of qtrees per volume is limited to something around 5.000 as far as I know.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;And also this would introduce unecessary overhead.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;Would it be possible to extend the API at this point to allow recursive deletes?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;Or is there any other solution to my problem that I have overlooked?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;I would be grateful for any pointers. Thanks for your time in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="x23i x290 x240"&gt;For reference: I also used the search and found the following posts concerning the issue, but none of them could help me solve the problem.&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN class="x23i x290 x240"&gt;&lt;A href="https://community.netapp.com/t5/Microsoft-Cloud-and-Virtualization-Discussions/Remove-NaDirectory-is-not-working-on-Dierctories-that-are-not-empty/m-p/27735/highlight/true#M1249" target="_blank"&gt;https://community.netapp.com/t5/Microsoft-Cloud-and-Virtualization-Discussions/Remove-NaDirectory-is-not-working-on-Dierctories-that-are-not-empty/m-p/27735/highlight/true#M1249&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="x23i x290 x240"&gt;&lt;A href="https://community.netapp.com/t5/Network-Storage-Protocols-Discussions/Delete-Qtree-Not-Empty/m-p/78103/highlight/true#M7087" target="_blank"&gt;https://community.netapp.com/t5/Network-Storage-Protocols-Discussions/Delete-Qtree-Not-Empty/m-p/78103/highlight/true#M7087&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="x23i x290 x240"&gt;&lt;A href="https://community.netapp.com/t5/Microsoft-Cloud-and-Virtualization-Discussions/Recurse-remove-NaDirectory-and-remove-NaFile/m-p/14939/highlight/true#M766" target="_blank"&gt;https://community.netapp.com/t5/Microsoft-Cloud-and-Virtualization-Discussions/Recurse-remove-NaDirectory-and-remove-NaFile/m-p/14939/highlight/true#M766&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jun 2025 18:34:13 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Recursive-delete-of-directory-using-NMSDK/m-p/124489#M2130</guid>
      <dc:creator>longariva</dc:creator>
      <dc:date>2025-06-04T18:34:13Z</dc:date>
    </item>
  </channel>
</rss>

