<?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 Coffee breaks with REST - Episode #6:  5 magical features that make ONTAP storage automation simple! in ONTAP Rest API Discussions</title>
    <link>https://community.netapp.com/t5/ONTAP-Rest-API-Discussions/Coffee-breaks-with-REST-Episode-6-5-magical-features-that-make-ONTAP-storage/m-p/435604#M316</link>
    <description>&lt;P&gt;The previous blog post in this series looked at how private CLI passthrough can be leveraged in NetApp® ONTAP® REST. This post looks at 5 magical features that make your storage infrastructure automation so simple.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H4&gt;&lt;FONT color="#FF6600"&gt;&lt;U&gt;Magic 1&lt;/U&gt;: API call logs from System Manager&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/H4&gt;&lt;P&gt;ONTAP System Manager displays the series of REST API calls made in the ONTAP System Manager API log. Users can leverage this API log to retrieve the specified workflow and use it in their automation scripts.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Watch the video&amp;nbsp;&lt;A title="Viewing Call logs in ONTAP System Manager" href="https://www.youtube.com/watch?v=dITOlfz8oPo" target="_blank" rel="noopener"&gt;Viewing Call logs in ONTAP System Manager&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="qw_1-1654490442017.png" style="width: 999px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/23687i3AA5D6FDB39A8E4B/image-size/large?v=v2&amp;amp;px=999" role="button" title="qw_1-1654490442017.png" alt="qw_1-1654490442017.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H4&gt;&lt;FONT color="#008080"&gt;&lt;U&gt;Magic 2&lt;/U&gt;: Programmatic way to find equivalents of ONTAPI calls and REST APIs&lt;/FONT&gt;&lt;/H4&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We have developed a tool to help our customers and partners transition from ONTAPI (ZAPI) to ONTAP REST API. This tool consists of three Python scripts, covering three different use cases.&lt;/P&gt;&lt;P&gt;The following table describes the scripts.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Note&lt;/U&gt;:&lt;/STRONG&gt;&amp;nbsp;Python 3.7 or later is required to run the scripts.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="198px" height="30px"&gt;&lt;P&gt;&lt;STRONG&gt;Script&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="382px" height="30px"&gt;&lt;P&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="198px" height="57px"&gt;&lt;P&gt;&lt;STRONG&gt;apache_scraper.py&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="382px" height="57px"&gt;&lt;P&gt;Apache log scraper to find ONTAPIs (ZAPIs) called against ONTAP nodes&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="198px" height="57px"&gt;&lt;P&gt;&lt;STRONG&gt;session_stats.py&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="382px" height="57px"&gt;&lt;P&gt;Command line script to pull session statistics data from ONTAP&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="198px" height="57px"&gt;&lt;P&gt;&lt;STRONG&gt;zapi_to_rest.py&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="382px" height="57px"&gt;&lt;P&gt;Script to find equivalent REST details of ZAPI and attributes passed&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;You can download the &lt;A href="https://github.com/NetApp/ontap-rest-python/tree/master/ONTAPI-Usage-Reporting-Tool" target="_blank" rel="noopener"&gt;ONTAPI Usage Reporting tool&lt;/A&gt;&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Read the previous post in the series, &lt;A href="https://community.netapp.com/t5/ONTAP-Rest-API-Discussions/Coffee-breaks-with-REST-Episode-4-ONTAPI-ZAPI-Reporting-tool/m-p/433200/highlight/true%20-%20M294" target="_blank" rel="noopener"&gt;Episode #4, ONTAPI (ZAPI) reporting tool&lt;/A&gt;. &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H4&gt;&lt;FONT color="#800080"&gt;&lt;U&gt;Magic 3&lt;/U&gt;: Private CLI passthrough&lt;/FONT&gt;&lt;/H4&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;A CLI command can be executed as an ONTAP REST API call. Yes, it’s true.&lt;BR /&gt;&amp;nbsp;Users can execute even advanced and diagnostic mode CLI commands to get advanced attributes per use cases. This option is also helpful for customers and partners to address the existing ONTAPI to REST APIs attribute-level gaps in completing their automation journey.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To learn more, read &lt;A href="https://netapp.io/2020/11/09/private-cli-passthrough-ontap-rest-api/" target="_blank" rel="noopener"&gt;Using the private CLI passthrough with the ONTAP REST API&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H4&gt;&lt;FONT color="#33CCCC"&gt;&lt;U&gt;Magic 4&lt;/U&gt;: Real-time performance metrics up to a year for numerous storage objects and protocols&lt;/FONT&gt;&lt;/H4&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ONTAP REST offers performance metrics such as IOPS, latency, and throughput for various storage objects such as storage virtual machines (SVMs), volumes, LUNs, qtrees, &amp;nbsp;and protocols, &amp;nbsp;and also at the cluster and individual node levels.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Performance metrics can be retrieved for hour, day, week, month, and up to a year.&lt;/P&gt;&lt;TABLE width="592"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;&lt;STRONG&gt;Storage object or protocol &lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;&lt;STRONG&gt;IOPS &lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;&lt;STRONG&gt;Latency &lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;&lt;STRONG&gt;Throughput &lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;&lt;STRONG&gt;ONTAP &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;release &lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Cloud volume &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;LUN &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Aggregate &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;SVM NFS protocol &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;SVM CIFS protocol &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;SVM FCP protocol &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;SVM iSCSI protocol &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;SVM NVMe protocol &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Cluster &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.6&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Volume &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.6&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Ethernet port &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;FC port &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;IP interface &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;FC interface &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;NVMe namespace &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Qtree statistics &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;Raw RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;Raw RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Volume FlexCache® &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Node – Processor &amp;nbsp;&lt;/P&gt;&lt;P&gt;utilization &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="415.391px"&gt;&lt;P&gt;Processor utilization as a numerical value&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H4&gt;&lt;FONT color="#FF0000"&gt;&lt;U&gt;Magic 5&lt;/U&gt;: Python sample scripts, Ansible playbooks, and client library readily available to get started fast&lt;/FONT&gt;&lt;/H4&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To help our customers get started with ONTAP automation, &lt;A href="https://www.netapp.com/devops-solutions/ansible/" target="_blank" rel="noopener"&gt;NetApp provides Ansible playbooks&lt;/A&gt; that work seamlessly with ONTAP REST and ONTAPI calls. We also &amp;nbsp;provide a client library for &lt;A href="https://library.netapp.com/ecmdocs/ECMLP2882316/html/index.html" target="_blank" rel="noopener"&gt;Python consumers&lt;/A&gt; and &lt;A href="https://github.com/NetApp/ontap-rest-python" target="_blank" rel="noopener"&gt;70+ Python sample scripts&lt;/A&gt; for ONTAP day-0, day-1, and day-2 automation use cases. &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 04 Jun 2025 10:00:00 GMT</pubDate>
    <dc:creator>qw</dc:creator>
    <dc:date>2025-06-04T10:00:00Z</dc:date>
    <item>
      <title>Coffee breaks with REST - Episode #6:  5 magical features that make ONTAP storage automation simple!</title>
      <link>https://community.netapp.com/t5/ONTAP-Rest-API-Discussions/Coffee-breaks-with-REST-Episode-6-5-magical-features-that-make-ONTAP-storage/m-p/435604#M316</link>
      <description>&lt;P&gt;The previous blog post in this series looked at how private CLI passthrough can be leveraged in NetApp® ONTAP® REST. This post looks at 5 magical features that make your storage infrastructure automation so simple.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H4&gt;&lt;FONT color="#FF6600"&gt;&lt;U&gt;Magic 1&lt;/U&gt;: API call logs from System Manager&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/H4&gt;&lt;P&gt;ONTAP System Manager displays the series of REST API calls made in the ONTAP System Manager API log. Users can leverage this API log to retrieve the specified workflow and use it in their automation scripts.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Watch the video&amp;nbsp;&lt;A title="Viewing Call logs in ONTAP System Manager" href="https://www.youtube.com/watch?v=dITOlfz8oPo" target="_blank" rel="noopener"&gt;Viewing Call logs in ONTAP System Manager&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="qw_1-1654490442017.png" style="width: 999px;"&gt;&lt;img src="https://community.netapp.com/t5/image/serverpage/image-id/23687i3AA5D6FDB39A8E4B/image-size/large?v=v2&amp;amp;px=999" role="button" title="qw_1-1654490442017.png" alt="qw_1-1654490442017.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H4&gt;&lt;FONT color="#008080"&gt;&lt;U&gt;Magic 2&lt;/U&gt;: Programmatic way to find equivalents of ONTAPI calls and REST APIs&lt;/FONT&gt;&lt;/H4&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We have developed a tool to help our customers and partners transition from ONTAPI (ZAPI) to ONTAP REST API. This tool consists of three Python scripts, covering three different use cases.&lt;/P&gt;&lt;P&gt;The following table describes the scripts.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Note&lt;/U&gt;:&lt;/STRONG&gt;&amp;nbsp;Python 3.7 or later is required to run the scripts.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="198px" height="30px"&gt;&lt;P&gt;&lt;STRONG&gt;Script&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="382px" height="30px"&gt;&lt;P&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="198px" height="57px"&gt;&lt;P&gt;&lt;STRONG&gt;apache_scraper.py&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="382px" height="57px"&gt;&lt;P&gt;Apache log scraper to find ONTAPIs (ZAPIs) called against ONTAP nodes&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="198px" height="57px"&gt;&lt;P&gt;&lt;STRONG&gt;session_stats.py&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="382px" height="57px"&gt;&lt;P&gt;Command line script to pull session statistics data from ONTAP&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="198px" height="57px"&gt;&lt;P&gt;&lt;STRONG&gt;zapi_to_rest.py&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="382px" height="57px"&gt;&lt;P&gt;Script to find equivalent REST details of ZAPI and attributes passed&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;You can download the &lt;A href="https://github.com/NetApp/ontap-rest-python/tree/master/ONTAPI-Usage-Reporting-Tool" target="_blank" rel="noopener"&gt;ONTAPI Usage Reporting tool&lt;/A&gt;&lt;SPAN&gt;. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Read the previous post in the series, &lt;A href="https://community.netapp.com/t5/ONTAP-Rest-API-Discussions/Coffee-breaks-with-REST-Episode-4-ONTAPI-ZAPI-Reporting-tool/m-p/433200/highlight/true%20-%20M294" target="_blank" rel="noopener"&gt;Episode #4, ONTAPI (ZAPI) reporting tool&lt;/A&gt;. &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H4&gt;&lt;FONT color="#800080"&gt;&lt;U&gt;Magic 3&lt;/U&gt;: Private CLI passthrough&lt;/FONT&gt;&lt;/H4&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;A CLI command can be executed as an ONTAP REST API call. Yes, it’s true.&lt;BR /&gt;&amp;nbsp;Users can execute even advanced and diagnostic mode CLI commands to get advanced attributes per use cases. This option is also helpful for customers and partners to address the existing ONTAPI to REST APIs attribute-level gaps in completing their automation journey.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To learn more, read &lt;A href="https://netapp.io/2020/11/09/private-cli-passthrough-ontap-rest-api/" target="_blank" rel="noopener"&gt;Using the private CLI passthrough with the ONTAP REST API&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H4&gt;&lt;FONT color="#33CCCC"&gt;&lt;U&gt;Magic 4&lt;/U&gt;: Real-time performance metrics up to a year for numerous storage objects and protocols&lt;/FONT&gt;&lt;/H4&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ONTAP REST offers performance metrics such as IOPS, latency, and throughput for various storage objects such as storage virtual machines (SVMs), volumes, LUNs, qtrees, &amp;nbsp;and protocols, &amp;nbsp;and also at the cluster and individual node levels.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Performance metrics can be retrieved for hour, day, week, month, and up to a year.&lt;/P&gt;&lt;TABLE width="592"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;&lt;STRONG&gt;Storage object or protocol &lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;&lt;STRONG&gt;IOPS &lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;&lt;STRONG&gt;Latency &lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;&lt;STRONG&gt;Throughput &lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;&lt;STRONG&gt;ONTAP &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;release &lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Cloud volume &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;LUN &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Aggregate &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;SVM NFS protocol &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;SVM CIFS protocol &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;SVM FCP protocol &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;SVM iSCSI protocol &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;SVM NVMe protocol &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.7&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Cluster &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.6&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Volume &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.6&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Ethernet port &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;FC port &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;IP interface &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;FC interface &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;NVMe namespace &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Qtree statistics &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;Raw RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;NA&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;Raw RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Volume FlexCache® &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="75.25px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="86.2891px"&gt;&lt;P&gt;RWOT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="253.852px"&gt;&lt;P&gt;RWT&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;9.8&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="116.391px"&gt;&lt;P&gt;Node – Processor &amp;nbsp;&lt;/P&gt;&lt;P&gt;utilization &amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="415.391px"&gt;&lt;P&gt;Processor utilization as a numerical value&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="59.2188px"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H4&gt;&lt;FONT color="#FF0000"&gt;&lt;U&gt;Magic 5&lt;/U&gt;: Python sample scripts, Ansible playbooks, and client library readily available to get started fast&lt;/FONT&gt;&lt;/H4&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To help our customers get started with ONTAP automation, &lt;A href="https://www.netapp.com/devops-solutions/ansible/" target="_blank" rel="noopener"&gt;NetApp provides Ansible playbooks&lt;/A&gt; that work seamlessly with ONTAP REST and ONTAPI calls. We also &amp;nbsp;provide a client library for &lt;A href="https://library.netapp.com/ecmdocs/ECMLP2882316/html/index.html" target="_blank" rel="noopener"&gt;Python consumers&lt;/A&gt; and &lt;A href="https://github.com/NetApp/ontap-rest-python" target="_blank" rel="noopener"&gt;70+ Python sample scripts&lt;/A&gt; for ONTAP day-0, day-1, and day-2 automation use cases. &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jun 2025 10:00:00 GMT</pubDate>
      <guid>https://community.netapp.com/t5/ONTAP-Rest-API-Discussions/Coffee-breaks-with-REST-Episode-6-5-magical-features-that-make-ONTAP-storage/m-p/435604#M316</guid>
      <dc:creator>qw</dc:creator>
      <dc:date>2025-06-04T10:00:00Z</dc:date>
    </item>
  </channel>
</rss>

