PaloAltoNetworks / PaloAltoNetworks/pan-os-python

Getting XML Parsing Errors When Interacting to AWS Based Panoramas

Open
#508 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Python
Stars
400
Forks
199
PR merge metrics
No merged PRs in 30d

Description

Describe the bug

I have a script that uses the panos library and when used against Panorama in AWS I get a parsing error. Below is that error:

File "/Users/ncarabaj/Desktop/pre-post-rule-download/panorama-info-version-1.py", line 127, in
main()
File "/Users/ncarabaj/Desktop/pre-post-rule-download/panorama-info-version-1.py", line 117, in main
device_groups = DeviceGroup.refreshall(panorama)
File "/usr/local/lib/python3.9/site-packages/panos/base.py", line 1338, in refreshall
instances = class_instance.refreshall_from_xml(obj)
File "/usr/local/lib/python3.9/site-packages/panos/base.py", line 1404, in refreshall_from_xml
instance._refresh_children(xml=obj)
File "/usr/local/lib/python3.9/site-packages/panos/base.py", line 1038, in _refresh_children
l = child.refreshall_from_xml(childroot)
File "/usr/local/lib/python3.9/site-packages/panos/base.py", line 1389, in refreshall_from_xml
instance.parse_xml(obj)
File "/usr/local/lib/python3.9/site-packages/panos/base.py", line 2789, in parse_xml
var_path.parse_xml(xml, settings, possibilities)
File "/usr/local/lib/python3.9/site-packages/panos/base.py", line 3223, in parse_xml
self.parse_value_from_xml_last_tag(e, settings, attr)
File "/usr/local/lib/python3.9/site-packages/panos/base.py", line 3306, in parse_value_from_xml_last_tag
settings[self.param] = int(elm.text)
ValueError: invalid literal for int() with base 10: '0-8'

Expected behavior

Should authenticate and parse

Current behavior

Possible solution

Need to be able to ingest the xml config from AWS

Steps to reproduce

  1. Run the code in the link against AWS Panorama

Screenshots

N/A

Context

Trying to gather pre and post security and nat rulebase from Pano. It does work on others just not ones in AWS.

Your Environment

  • Environment name and version (e.g. Chrome 59, node.js 5.4, python 3.7.3):

Python 3.11.3

  • Operating System and version (desktop or mobile):

MacOS Catalina Version 10.15.7 - User laptop
Panorama version 10.1.9
aws-2.0.2

  • Link to your project:

https://github.com/ncarabajal/pano-info

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The traceback points to panos/base.py, from DeviceGroup.refreshall through refreshall_from_xml and parse_xml; start there and reproduce with the AWS Panorama XML configuration. Confirm how the “0-8” value is represented, then verify that the original security and NAT rulebase retrieval flow parses successfully without breaking existing Panorama cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, python
Domain
backend, cloud
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.