pan-os-python
pan-os-python copied to clipboard
default_icmp_type ApplicationObject incorrect vartype
Describe the bug
Failure to parse XML with refresh all on device groups.
Specifically the child object that fails is the ApplicationObject -> "default_icmp_type" VersionedParamPath.
This particular code piece fails:
elif self.vartype == "int":
settings[self.param] = int(elm.text)
Under panos.base.ParamPath.parse_value_from_xml_last_tag line 3306.
The elm.text field fails to be translated to an integer with
Expected behavior
Parsing completes successfully.
Current behavior
`Traceback (most recent call last): File "c:\git\Pan_OS_Tests\env\Lib\site-packages\panos\base.py", line 3307, in parse_value_from_xml_last_tag settings[self.param] = int(elm.text) ^^^^^^^^^^^^^ ValueError: invalid literal for int() with base 10: '13,14'
Possible solution
Depending on how these params are handled downstream we can either:
- Handle the exception for this particular conversion and instead save it as a string ignoring param types
- Define appropriate param versions (set to None) for default_icmp_type for all affected Panorama versions.
Steps to reproduce
- Build Panorama Object
- Get all DeviceGroup Objects
pa = Panorama("", api_username="", api_password="")
dg_test = DeviceGroup()
# Building device group as a child of Panorama
pa.add(dg_test)
# Get all device groups:
device_groups = DeviceGroup.refreshall(dg_test)
Specifically this affects filters associated with icmp-timestamp. (Since that's both ICMP type 13 & 14).
Screenshots
N/A
Context
Just trying to get all devicegroups from Panorama.
Your Environment
- Version used: Panorama Version 10.1.12
- Environment name and version (e.g. Chrome 59, node.js 5.4, python 3.7.3): python 3.12.1
- Operating System and version (desktop or mobile): Windows 10
- Link to your project: N/A