cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
866
Views
5
Helpful
1
Replies

AXL Response (python dict) does not match zeep XML output

goliver
Level 1
Level 1

Hi, I am very new to this, so it may be something simple, but here goes.  I am using 10.5 AXL with the current xsd and wsdl loaded and the axl-python-zeep-samples-master/axl_update_Service_Parameter.py example file (on Linux).  I created the environment variables and the connection works, but I do not understand why when I add more tags, the XML Debug output is still correct, but the dict is not.

 

Example Working (I added 1 criteria and 2 tags):

criteria = {
    'name': '%',
    'processNodeRole': 'CUCM Voice/Video',
    'description': 'UCM%'
}

tags = {
    'name': '',
    'description': '',
    'nodeUsage': ''
}

  Output:

Request
-------
Headers:
{'SOAPAction': '"CUCM:DB ver=10.5 listProcessNode"', 'Content-Type': 'text/xml; charset=utf-8'}

Body:
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <soap-env:Body>
    <ns0:listProcessNode xmlns:ns0="http://www.cisco.com/AXL/API/10.5">
      <searchCriteria>
        <name>%</name>
        <description>UCM%</description>
        <processNodeRole>CUCM Voice/Video</processNodeRole>
      </searchCriteria>
      <returnedTags>
        <name></name>
        <description></description>
        <nodeUsage></nodeUsage>
      </returnedTags>
    </ns0:listProcessNode>
  </soap-env:Body>
</soap-env:Envelope>


Response
-------
Headers:
{'Set-Cookie': 'JSESSIONIDSSO=05FCC2D6529FE971026834DB04E35606; Path=/; Secure; HttpOnly, JSESSIONID=C72A327E9FAAA502339D516AF3FBD974; Path=/axl; Secure; HttpOnly', 'X-Frame-Options': 'SAMEORIGIN', 'Strict-Transport-Security': 'max-age=31536000; includeSubdomains', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Content-Type': 'text/xml;charset=UTF-8', 'Content-Length': '678', 'Date': 'Tue, 17 Aug 2021 19:19:59 GMT', 'Server': ''}

Body:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <ns:listProcessNodeResponse xmlns:ns="http://www.cisco.com/AXL/API/10.5">
      <return>
        <processNode uuid="{272BB114-B505-4B2F-B023-ADC85B668E1A}">
          <name>ucm-10-5-pub.planolab.cistera.net</name>
          <description>UCM 10.5 Publisher</description>
          <nodeUsage>Publisher</nodeUsage>
        </processNode>
        <processNode uuid="{D04EBA5F-6F92-979F-8D6D-E3B4B231AD77}">
          <name>ucm-10-5-sub1.planolab.cistera.net</name>
          <description>UCM 10.5 Subscriber 1</description>
          <nodeUsage>Subscriber</nodeUsage>
        </processNode>
      </return>
    </ns:listProcessNodeResponse>
  </soapenv:Body>
</soapenv:Envelope>


listProcessNode response:

{
    'return': {
        'processNode': [
            {
                'name': 'ucm-10-5-pub.planolab.cistera.net',
                'description': 'UCM 10.5 Publisher',
                'mac': None,
                'ipv6Name': None,
                'nodeUsage': 'Publisher',
                'lbmHubGroup': None,
                'processNodeRole': None,
                'uuid': '{272BB114-B505-4B2F-B023-ADC85B668E1A}'
            },
            {
                'name': 'ucm-10-5-sub1.planolab.cistera.net',
                'description': 'UCM 10.5 Subscriber 1',
                'mac': None,
                'ipv6Name': None,
                'nodeUsage': 'Subscriber',
                'lbmHubGroup': None,
                'processNodeRole': None,
                'uuid': '{D04EBA5F-6F92-979F-8D6D-E3B4B231AD77}'
            }
        ]
    },
    'sequence': None
} 

You can see, the XML and python dict reflect the same data.  Now if I add one more tag, it never returns nodeValue properly again.  No matter where in the order I place it, etc.  Very strange - the XML output is always right, but the dictionary never is:

 

criteria = {
    'name': '%',
    'processNodeRole': 'CUCM Voice/Video',
    'description': 'UCM%'
}

tags = {
    'name': '',
    'description': '',
    'processNodeRole': '',
    'nodeUsage': ''
}

Output:

Request
-------
Headers:
{'SOAPAction': '"CUCM:DB ver=10.5 listProcessNode"', 'Content-Type': 'text/xml; charset=utf-8'}

Body:
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <soap-env:Body>
    <ns0:listProcessNode xmlns:ns0="http://www.cisco.com/AXL/API/10.5">
      <searchCriteria>
        <name>%</name>
        <description>UCM%</description>
        <processNodeRole>CUCM Voice/Video</processNodeRole>
      </searchCriteria>
      <returnedTags>
        <name></name>
        <description></description>
        <nodeUsage></nodeUsage>
        <processNodeRole></processNodeRole>
      </returnedTags>
    </ns0:listProcessNode>
  </soap-env:Body>
</soap-env:Envelope>


Response
-------
Headers:
{'Set-Cookie': 'JSESSIONIDSSO=44CF3E5ABAB9C7BAAE87088555D4103C; Path=/; Secure; HttpOnly, JSESSIONID=11067D86A3CC49B5BABF6CDDCDD42717; Path=/axl; Secure; HttpOnly', 'X-Frame-Options': 'SAMEORIGIN', 'Strict-Transport-Security': 'max-age=31536000; includeSubdomains', 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': '1; mode=block', 'Content-Type': 'text/xml;charset=UTF-8', 'Content-Length': '780', 'Date': 'Tue, 17 Aug 2021 19:25:02 GMT', 'Server': ''}

Body:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <ns:listProcessNodeResponse xmlns:ns="http://www.cisco.com/AXL/API/10.5">
      <return>
        <processNode uuid="{272BB114-B505-4B2F-B023-ADC85B668E1A}">
          <name>ucm-10-5-pub.planolab.cistera.net</name>
          <description>UCM 10.5 Publisher</description>
          <processNodeRole>CUCM Voice/Video</processNodeRole>
          <nodeUsage>Publisher</nodeUsage>
        </processNode>
        <processNode uuid="{D04EBA5F-6F92-979F-8D6D-E3B4B231AD77}">
          <name>ucm-10-5-sub1.planolab.cistera.net</name>
          <description>UCM 10.5 Subscriber 1</description>
          <processNodeRole>CUCM Voice/Video</processNodeRole>
          <nodeUsage>Subscriber</nodeUsage>
        </processNode>
      </return>
    </ns:listProcessNodeResponse>
  </soapenv:Body>
</soapenv:Envelope>


listProcessNode response:

{
    'return': {
        'processNode': [
            {
                'name': 'ucm-10-5-pub.planolab.cistera.net',
                'description': 'UCM 10.5 Publisher',
                'mac': None,
                'ipv6Name': None,
                'nodeUsage': None,
                'lbmHubGroup': None,
                'processNodeRole': 'CUCM Voice/Video',
                'uuid': '{272BB114-B505-4B2F-B023-ADC85B668E1A}',
                '_raw_elements': deque([<Element nodeUsage at 0x7f593106ccc0>])
            },
            {
                'name': 'ucm-10-5-sub1.planolab.cistera.net',
                'description': 'UCM 10.5 Subscriber 1',
                'mac': None,
                'ipv6Name': None,
                'nodeUsage': None,
                'lbmHubGroup': None,
                'processNodeRole': 'CUCM Voice/Video',
                'uuid': '{D04EBA5F-6F92-979F-8D6D-E3B4B231AD77}',
                '_raw_elements': deque([<Element nodeUsage at 0x7f593106cc40>])
            }
        ]
    },
    'sequence': None
} 

Very odd to me -

 

Thanks for any assistance.

 

-Greg Oliver

1 Reply 1

Suggest you head over to DevNet to ask this line of question as that the appropriate place for this.



Response Signature