<?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 Re: Zeep Challenge!! How can you wash your Python JSON with SoapUI? in Management</title>
    <link>https://community.cisco.com/t5/management/zeep-challenge-how-can-you-wash-your-python-json-with-soapui/m-p/4606913#M3884</link>
    <description>&lt;P&gt;Excellent!!&amp;nbsp; Elegance and simplicity!&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 09 May 2022 15:01:48 GMT</pubDate>
    <dc:creator>npetrele</dc:creator>
    <dc:date>2022-05-09T15:01:48Z</dc:date>
    <item>
      <title>Zeep Challenge!! How can you wash your Python JSON with SoapUI?</title>
      <link>https://community.cisco.com/t5/management/zeep-challenge-how-can-you-wash-your-python-json-with-soapui/m-p/4603867#M3880</link>
      <description>&lt;P&gt;SoapUI is probably the most useful and powerful way to test out SOAP operations when writing code for CUCM (such as AXL, Serviceability, among other APIs) and even Cisco IM&amp;amp;P APIs like Presence Web Services and EPASSoap.&lt;/P&gt;
&lt;P&gt;And Zeep is a favorite way to implement these SOAP-based scripts and programs in Python.&lt;/P&gt;
&lt;P&gt;The trouble is that SoapUI uses XML and Zeep expects JSON.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="5"&gt;CHALLENGE:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Write a Python/Zeep script that allows you to copy and paste the XML from a working SOAP request in SoapUI into your Python code and automatically convert it into JSON that Zeep uses.&amp;nbsp; Here's the sample getPhone XML for the challenge:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;&amp;lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/12.5"&amp;gt;
   &amp;lt;soapenv:Header/&amp;gt;
   &amp;lt;soapenv:Body&amp;gt;
      &amp;lt;ns:getPhone&amp;gt;
         &amp;lt;name&amp;gt;INSERT PHONE NAME HERE&amp;lt;/name&amp;gt;
         &amp;lt;returnedTags&amp;gt;
            &amp;lt;name&amp;gt;&amp;lt;/name&amp;gt;
            &amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;
            &amp;lt;lines&amp;gt;
               &amp;lt;line&amp;gt;
                  &amp;lt;index&amp;gt;1&amp;lt;/index&amp;gt;
                  &amp;lt;dirn&amp;gt;
                     &amp;lt;pattern&amp;gt;&amp;lt;/pattern&amp;gt;
                  &amp;lt;/dirn&amp;gt;
                  &amp;lt;callInfoDisplay&amp;gt;
                     &amp;lt;callerName&amp;gt;&amp;lt;/callerName&amp;gt;
                  &amp;lt;/callInfoDisplay&amp;gt;
                  &amp;lt;associatedEndusers&amp;gt;
                     &amp;lt;enduser&amp;gt;
                        &amp;lt;userId&amp;gt;&amp;lt;/userId&amp;gt;
                     &amp;lt;/enduser&amp;gt;
                  &amp;lt;/associatedEndusers&amp;gt;
               &amp;lt;/line&amp;gt;
               &amp;lt;line&amp;gt;
                  &amp;lt;index&amp;gt;2&amp;lt;/index&amp;gt;
                  &amp;lt;dirn&amp;gt;
                     &amp;lt;pattern&amp;gt;&amp;lt;/pattern&amp;gt;
                  &amp;lt;/dirn&amp;gt;
                  &amp;lt;callInfoDisplay&amp;gt;
                     &amp;lt;callerName&amp;gt;&amp;lt;/callerName&amp;gt;
                  &amp;lt;/callInfoDisplay&amp;gt;
                  &amp;lt;associatedEndusers&amp;gt;
                     &amp;lt;enduser&amp;gt;
                        &amp;lt;userId&amp;gt;&amp;lt;/userId&amp;gt;
                     &amp;lt;/enduser&amp;gt;
                  &amp;lt;/associatedEndusers&amp;gt;
               &amp;lt;/line&amp;gt;
            &amp;lt;/lines&amp;gt;
         &amp;lt;/returnedTags&amp;gt;
      &amp;lt;/ns:getPhone&amp;gt;
   &amp;lt;/soapenv:Body&amp;gt;
&amp;lt;/soapenv:Envelope&amp;gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="5"&gt;RULES:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;1. You must have at least two lines associated with the phone, which means you have to deal with duplicate tags in one request.&lt;/P&gt;
&lt;P&gt;2. You must have at least two associated end users with one of the lines (there are at least 2 lines, but you can associate 2 or more users with as many of the lines as you want).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. You can implement it with a copy/paste into the code, or simply copy/paste it into a file and have your code read the file.&lt;/P&gt;
&lt;P&gt;4. You can copy and paste everything between &amp;lt;ns:getPhone&amp;gt; and &amp;lt;/ns:getPhone&amp;gt;, or copy and past the whole XML enchilada.&amp;nbsp; It's up to you.&lt;/P&gt;
&lt;P&gt;5. Make sure your code displays the response from the SOAP request.&lt;/P&gt;
&lt;P&gt;6. You can post just the code that performs the challenge, or an entire script with includes, etc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Post (or attach a Python file to your post) your suggestions!&amp;nbsp; Anything, good or bad, will help the Community, so please chime in with your approaches!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If someone posts something that is incorrect, overly complex, or too cryptic, please be considerate with your corrections or alternatives!&amp;nbsp; This is a TEAM sport!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 May 2022 15:29:58 GMT</pubDate>
      <guid>https://community.cisco.com/t5/management/zeep-challenge-how-can-you-wash-your-python-json-with-soapui/m-p/4603867#M3880</guid>
      <dc:creator>npetrele</dc:creator>
      <dc:date>2022-05-06T15:29:58Z</dc:date>
    </item>
    <item>
      <title>Re: Zeep Challenge!! How can you wash your Python JSON with SoapUI?</title>
      <link>https://community.cisco.com/t5/management/zeep-challenge-how-can-you-wash-your-python-json-with-soapui/m-p/4606857#M3883</link>
      <description>&lt;P&gt;Hi!&lt;BR /&gt;Hope I followed all rule &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I would be happy to receive feedback and suggestions for improvement.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Request
-------
Headers:
{'SOAPAction': '"CUCM:DB ver=12.5 getPhone"', 'Content-Type': 'text/xml; charset=utf-8'}

Body:
&amp;lt;soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;
  &amp;lt;soap-env:Body&amp;gt;
    &amp;lt;ns0:getPhone xmlns:ns0="http://www.cisco.com/AXL/API/12.5"&amp;gt;
      &amp;lt;name&amp;gt;SEP000000000000&amp;lt;/name&amp;gt;
      &amp;lt;returnedTags&amp;gt;
        &amp;lt;name&amp;gt;&amp;lt;/name&amp;gt;
        &amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;
        &amp;lt;lines&amp;gt;
          &amp;lt;line&amp;gt;
            &amp;lt;index&amp;gt;1&amp;lt;/index&amp;gt;
            &amp;lt;dirn&amp;gt;
              &amp;lt;pattern&amp;gt;&amp;lt;/pattern&amp;gt;
            &amp;lt;/dirn&amp;gt;
            &amp;lt;callInfoDisplay&amp;gt;
              &amp;lt;callerName&amp;gt;&amp;lt;/callerName&amp;gt;
            &amp;lt;/callInfoDisplay&amp;gt;
            &amp;lt;associatedEndusers&amp;gt;
              &amp;lt;enduser&amp;gt;
                &amp;lt;userId&amp;gt;&amp;lt;/userId&amp;gt;
              &amp;lt;/enduser&amp;gt;
            &amp;lt;/associatedEndusers&amp;gt;
          &amp;lt;/line&amp;gt;
          &amp;lt;line&amp;gt;
            &amp;lt;index&amp;gt;2&amp;lt;/index&amp;gt;
            &amp;lt;dirn&amp;gt;
              &amp;lt;pattern&amp;gt;&amp;lt;/pattern&amp;gt;
            &amp;lt;/dirn&amp;gt;
            &amp;lt;callInfoDisplay&amp;gt;
              &amp;lt;callerName&amp;gt;&amp;lt;/callerName&amp;gt;
            &amp;lt;/callInfoDisplay&amp;gt;
            &amp;lt;associatedEndusers&amp;gt;
              &amp;lt;enduser&amp;gt;
                &amp;lt;userId&amp;gt;&amp;lt;/userId&amp;gt;
              &amp;lt;/enduser&amp;gt;
            &amp;lt;/associatedEndusers&amp;gt;
          &amp;lt;/line&amp;gt;
        &amp;lt;/lines&amp;gt;
      &amp;lt;/returnedTags&amp;gt;
    &amp;lt;/ns0:getPhone&amp;gt;
  &amp;lt;/soap-env:Body&amp;gt;
&amp;lt;/soap-env:Envelope&amp;gt;


Response
-------
Headers:
{'Set-Cookie': 'JSESSIONIDSSO=D1933AF99256FFB98FD039567AEA2433; Path=/; Secure; HttpOnly, JSESSIONID=C8037704C289A43167CA3A32B153E910; Path=/axl; Secure; HttpOnly', 'X-Frame-Options': 'SAMEORIGIN', 'Strict-Transport-Security': 'max-age=31536000; includeSubdomains', 'Content-Security-Policy': "default-src *; script-src * 'unsafe-inline' 'unsafe-eval';style-src * 'unsafe-inline'; img-src * data: 'unsafe-inline';", 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Content-Type': 'text/xml;charset=UTF-8', 'Content-Length': '1041', 'Date': 'Mon, 09 May 2022 12:44:17 GMT', 'Server': ''}

Body:
&amp;lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;
  &amp;lt;soapenv:Body&amp;gt;
    &amp;lt;ns:getPhoneResponse xmlns:ns="http://www.cisco.com/AXL/API/12.5"&amp;gt;
      &amp;lt;return&amp;gt;
        &amp;lt;phone ctiid="4531" uuid="{FE2C4C44-F3DE-E447-1AFF-4DFE9C9ACF17}"&amp;gt;
          &amp;lt;name&amp;gt;SEP000000000000&amp;lt;/name&amp;gt;
          &amp;lt;description&amp;gt;#FN##LN##ID#&amp;lt;/description&amp;gt;
          &amp;lt;lines&amp;gt;
            &amp;lt;line uuid="{B8FED489-97C3-B9D1-2780-C671F77B7D16}"&amp;gt;
              &amp;lt;index&amp;gt;1&amp;lt;/index&amp;gt;
              &amp;lt;dirn uuid="{7DE28330-7816-46D4-6E94-88ACAAE04467}"&amp;gt;
                &amp;lt;pattern&amp;gt;\+1000&amp;lt;/pattern&amp;gt;
              &amp;lt;/dirn&amp;gt;
              &amp;lt;callInfoDisplay&amp;gt;
                &amp;lt;callerName&amp;gt;false&amp;lt;/callerName&amp;gt;
              &amp;lt;/callInfoDisplay&amp;gt;
              &amp;lt;associatedEndusers&amp;gt;
                &amp;lt;enduser&amp;gt;
                  &amp;lt;userId&amp;gt;user1000&amp;lt;/userId&amp;gt;
                &amp;lt;/enduser&amp;gt;
              &amp;lt;/associatedEndusers&amp;gt;
            &amp;lt;/line&amp;gt;
            &amp;lt;line uuid="{7E07AFA2-5491-9A1E-109A-D222A2AB6A24}"&amp;gt;
              &amp;lt;index&amp;gt;2&amp;lt;/index&amp;gt;
              &amp;lt;dirn uuid="{7CB6E096-2C8A-86DF-35EA-05649BE473C6}"&amp;gt;
                &amp;lt;pattern&amp;gt;\+1001&amp;lt;/pattern&amp;gt;
              &amp;lt;/dirn&amp;gt;
              &amp;lt;callInfoDisplay&amp;gt;
                &amp;lt;callerName&amp;gt;false&amp;lt;/callerName&amp;gt;
              &amp;lt;/callInfoDisplay&amp;gt;
              &amp;lt;associatedEndusers&amp;gt;
                &amp;lt;enduser&amp;gt;
                  &amp;lt;userId&amp;gt;user1001&amp;lt;/userId&amp;gt;
                &amp;lt;/enduser&amp;gt;
              &amp;lt;/associatedEndusers&amp;gt;
            &amp;lt;/line&amp;gt;
          &amp;lt;/lines&amp;gt;
        &amp;lt;/phone&amp;gt;
      &amp;lt;/return&amp;gt;
    &amp;lt;/ns:getPhoneResponse&amp;gt;
  &amp;lt;/soapenv:Body&amp;gt;
&amp;lt;/soapenv:Envelope&amp;gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 09 May 2022 12:59:42 GMT</pubDate>
      <guid>https://community.cisco.com/t5/management/zeep-challenge-how-can-you-wash-your-python-json-with-soapui/m-p/4606857#M3883</guid>
      <dc:creator>BjoernMartin</dc:creator>
      <dc:date>2022-05-09T12:59:42Z</dc:date>
    </item>
    <item>
      <title>Re: Zeep Challenge!! How can you wash your Python JSON with SoapUI?</title>
      <link>https://community.cisco.com/t5/management/zeep-challenge-how-can-you-wash-your-python-json-with-soapui/m-p/4606913#M3884</link>
      <description>&lt;P&gt;Excellent!!&amp;nbsp; Elegance and simplicity!&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 09 May 2022 15:01:48 GMT</pubDate>
      <guid>https://community.cisco.com/t5/management/zeep-challenge-how-can-you-wash-your-python-json-with-soapui/m-p/4606913#M3884</guid>
      <dc:creator>npetrele</dc:creator>
      <dc:date>2022-05-09T15:01:48Z</dc:date>
    </item>
  </channel>
</rss>

