<?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 Python NMSDK, non utf8 zapi reply breaking api in Software Development Kit (SDK) and API Discussions</title>
    <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Python-NMSDK-non-utf8-zapi-reply-breaking-api/m-p/73639#M899</link>
    <description>&lt;P&gt;Question for Python nmsdk maintainers...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have reproducible case of failing registry-get zapi, where return payload is non utf8, and python nmsdk fails as described below...&lt;/P&gt;
&lt;P&gt;It can be reproduced inhouse, see below vsim test credentials...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any help appreciated, the problem is somewhat critical....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;R.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is the unix apitest for problematic case:&lt;/P&gt;
&lt;P&gt;bash-4.1$ apitest -s -X 10.238.18.9 root netapp123 registry-get registry-key options.ldap.passwd&lt;/P&gt;
&lt;P&gt;INPUT:&lt;/P&gt;
&lt;P&gt;&amp;lt;?xml version='1.0' encoding='utf-8' ?&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;!DOCTYPE netapp SYSTEM 'file:/etc/netapp_filer.dtd'&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;netapp version="1.0" xmlns="&lt;A href="http://www.netapp.com/filer/admin" target="_blank"&gt;http://www.netapp.com/filer/admin&lt;/A&gt;"&amp;gt;&amp;lt;registry-get&amp;gt;&amp;lt;registry-key&amp;gt;options.ldap.passwd&amp;lt;/registry-key&amp;gt;&amp;lt;/registry-get&amp;gt;&amp;lt;/netapp&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;OUTPUT:&lt;/P&gt;
&lt;P&gt;&amp;lt;?xml version='1.0' encoding='UTF-8' ?&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;!DOCTYPE netapp SYSTEM '/na_admin/netapp_filer.dtd'&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;lt;netapp version='1.1' xmlns='&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.netapp.com/filer/admin" target="_blank"&gt;http://www.netapp.com/filer/admin&lt;/A&gt;&lt;SPAN&gt;'&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;results status="passed"&amp;gt;&amp;lt;registry-value&amp;gt;&lt;STRONG style="color: red; background: yellow;"&gt;{enc}ÿ&lt;/STRONG&gt;&amp;lt;/registry-value&amp;gt;&amp;lt;/results&amp;gt;&amp;lt;/netapp&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And this is failing NMSDK 5.2.1 python unit test for reference:&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; from NaServer import *&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; filer="10.238.18.9"&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; user="root"&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; password="netapp123"&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; s=NaServer(filer,1,1)&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; s.set_server_type("Filer")&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; s.set_admin_user(user,password)&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; s.set_transport_type("HTTPS")&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; elem=NaElement("registry-get")&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; elem.child_add_string("registry-key","options.ldap.passwd")&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; output=s.invoke_elem(elem)&lt;/P&gt;
&lt;P&gt;Traceback (most recent call last):&lt;/P&gt;
&lt;P&gt;&amp;nbsp; File "&amp;lt;pyshell#39&amp;gt;", line 1, in &amp;lt;module&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output=s.invoke_elem(elem)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; File "NaServer.py", line 511, in invoke_elem&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return self.parse_xml(xml_response)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; File "NaServer.py", line 708, in parse_xml&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p.Parse(xmlresponse, 1)&lt;/P&gt;
&lt;P&gt;ExpatError: not well-formed (invalid token): line 4, column 46&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; elem.sprintf()&lt;/P&gt;
&lt;P&gt;'&amp;lt;registry-get&amp;gt;\n\t&amp;lt;registry-key&amp;gt;options.ldap.passwd&amp;lt;/registry-key&amp;gt;\n&amp;lt;/registry-get&amp;gt;\n'&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;</description>
    <pubDate>Thu, 05 Jun 2025 05:32:44 GMT</pubDate>
    <dc:creator>rsimac</dc:creator>
    <dc:date>2025-06-05T05:32:44Z</dc:date>
    <item>
      <title>Python NMSDK, non utf8 zapi reply breaking api</title>
      <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Python-NMSDK-non-utf8-zapi-reply-breaking-api/m-p/73639#M899</link>
      <description>&lt;P&gt;Question for Python nmsdk maintainers...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have reproducible case of failing registry-get zapi, where return payload is non utf8, and python nmsdk fails as described below...&lt;/P&gt;
&lt;P&gt;It can be reproduced inhouse, see below vsim test credentials...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any help appreciated, the problem is somewhat critical....&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;R.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is the unix apitest for problematic case:&lt;/P&gt;
&lt;P&gt;bash-4.1$ apitest -s -X 10.238.18.9 root netapp123 registry-get registry-key options.ldap.passwd&lt;/P&gt;
&lt;P&gt;INPUT:&lt;/P&gt;
&lt;P&gt;&amp;lt;?xml version='1.0' encoding='utf-8' ?&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;!DOCTYPE netapp SYSTEM 'file:/etc/netapp_filer.dtd'&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;netapp version="1.0" xmlns="&lt;A href="http://www.netapp.com/filer/admin" target="_blank"&gt;http://www.netapp.com/filer/admin&lt;/A&gt;"&amp;gt;&amp;lt;registry-get&amp;gt;&amp;lt;registry-key&amp;gt;options.ldap.passwd&amp;lt;/registry-key&amp;gt;&amp;lt;/registry-get&amp;gt;&amp;lt;/netapp&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;OUTPUT:&lt;/P&gt;
&lt;P&gt;&amp;lt;?xml version='1.0' encoding='UTF-8' ?&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;!DOCTYPE netapp SYSTEM '/na_admin/netapp_filer.dtd'&amp;gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;lt;netapp version='1.1' xmlns='&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.netapp.com/filer/admin" target="_blank"&gt;http://www.netapp.com/filer/admin&lt;/A&gt;&lt;SPAN&gt;'&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;results status="passed"&amp;gt;&amp;lt;registry-value&amp;gt;&lt;STRONG style="color: red; background: yellow;"&gt;{enc}ÿ&lt;/STRONG&gt;&amp;lt;/registry-value&amp;gt;&amp;lt;/results&amp;gt;&amp;lt;/netapp&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And this is failing NMSDK 5.2.1 python unit test for reference:&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; from NaServer import *&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; filer="10.238.18.9"&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; user="root"&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; password="netapp123"&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; s=NaServer(filer,1,1)&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; s.set_server_type("Filer")&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; s.set_admin_user(user,password)&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; s.set_transport_type("HTTPS")&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; elem=NaElement("registry-get")&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; elem.child_add_string("registry-key","options.ldap.passwd")&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; output=s.invoke_elem(elem)&lt;/P&gt;
&lt;P&gt;Traceback (most recent call last):&lt;/P&gt;
&lt;P&gt;&amp;nbsp; File "&amp;lt;pyshell#39&amp;gt;", line 1, in &amp;lt;module&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output=s.invoke_elem(elem)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; File "NaServer.py", line 511, in invoke_elem&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return self.parse_xml(xml_response)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; File "NaServer.py", line 708, in parse_xml&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p.Parse(xmlresponse, 1)&lt;/P&gt;
&lt;P&gt;ExpatError: not well-formed (invalid token): line 4, column 46&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt; elem.sprintf()&lt;/P&gt;
&lt;P&gt;'&amp;lt;registry-get&amp;gt;\n\t&amp;lt;registry-key&amp;gt;options.ldap.passwd&amp;lt;/registry-key&amp;gt;\n&amp;lt;/registry-get&amp;gt;\n'&lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jun 2025 05:32:44 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/Python-NMSDK-non-utf8-zapi-reply-breaking-api/m-p/73639#M899</guid>
      <dc:creator>rsimac</dc:creator>
      <dc:date>2025-06-05T05:32:44Z</dc:date>
    </item>
  </channel>
</rss>

