The PAN-OS SDK for Python is a package to help interact with Palo Alto Networks devices (including physical and virtualized Next-generation Firewalls and Panorama). The pan-os-python SDK is object oriented and mimics the traditional interaction with the device via the GUI or CLI/API.
When using the base.syncjob method i'm encountering an issue if there is no details in the job response. This is happening when downloading a vm series plugin.
Expected behavior
Expect the method to complete successfully even when there is no 'details' in response.
Current behavior
download_result = parent.syncjob(download_response)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/dpadmin/venv/pan-os/lib/python3.8/site-packages/panos/base.py", line 4983, in syncjob
return self._parse_job_results(job_xml, get_devices=False)
File "/home/dpadmin/venv/pan-os/lib/python3.8/site-packages/panos/base.py", line 5131, in _parse_job_results
messages = job["details"]["line"]
TypeError: 'NoneType' object is not subscriptable
Describe the bug
When using the base.syncjob method i'm encountering an issue if there is no details in the job response. This is happening when downloading a vm series plugin.
Expected behavior
Expect the method to complete successfully even when there is no 'details' in response.
Current behavior
Response from python call and details is None
Response form the xml api direct is consistent and there is no details / line.
Possible solution
The issue appears to be in the _parse_job_results() method in base.py. Adding an exception handler for the type error would resolve the issue.
line 5130 base.py
Steps to reproduce
Context
Basically I'm trying to download / install vm plugins and wait for the task to complete using the base.syncjob method.
Your Environment