Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug due to None datatype in _parse_job_results() #470

Closed
undodelete opened this issue Jul 26, 2022 · 1 comment
Closed

Bug due to None datatype in _parse_job_results() #470

undodelete opened this issue Jul 26, 2022 · 1 comment
Labels

Comments

@undodelete
Copy link
Contributor

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

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

Response from python call and details is None

{
   "response":{
      "status":"success",
      "result":{
         "job":{
            "tenq":"2022/07/26 07:32:25",
            "tdeq":"07:32:25",
            "id":"14",
            "user":"None",
            "type":"Downld",
            "status":"FIN",
            "queued":"NO",
            "stoppable":false,
            "result":"OK",
            "tfin":"07:32:26",
            "description":"None",
            "positionInQ":"0",
            "progress":"100",
            "details":"None",
            "warnings":"None"
         }
      }
   }
}

Response form the xml api direct is consistent and there is no details / line.

<job>
  <tenq>2022/07/26 07:32:25</tenq>
  <tdeq>07:32:25</tdeq>
  <id>14</id>
  <user/>
  <type>Downld</type>
  <status>FIN</status>
  <queued>NO</queued>
  <stoppable>no</stoppable>
  <result>OK</result>
  <tfin>07:32:26</tfin>
  <description/>
  <positionInQ>0</positionInQ>
  <progress>100</progress>
  <details/>
  <warnings/>
</job>

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

try:
    messages = job["details"]["line"]
except (TypeError, KeyError):
    messages = []

Steps to reproduce

download_cmd = "<request><plugins><download><file>vm_series-2.1.2</file></download></plugins></request>"
download_response = parent.op(download_cmd, cmd_xml=False)
download_result = parent.syncjob(download_response)

Context

Basically I'm trying to download / install vm plugins and wait for the task to complete using the base.syncjob method.

Your Environment

  • Version used: 1.7.3
  • Environment name and version (e.g. Chrome 59, node.js 5.4, python 3.7.3): Python 3.8.10
  • Operating System and version (desktop or mobile): Ubuntu 20.04.3 LTS
@undodelete undodelete added the bug label Jul 26, 2022
@welcome-to-palo-alto-networks

🎉 Thanks for opening your first issue here! Welcome to the community!

@shinmog shinmog closed this as completed in f01ae25 Feb 7, 2024
github-actions bot pushed a commit that referenced this issue Apr 11, 2024
## [1.12.0](v1.11.0...v1.12.0) (2024-04-11)

### Features

* **ApplicationFilter:** Add new_appid parameter ([#547](#547)) ([bc96108](bc96108))
* **Firewall:** New fields for show_system_resources ([#544](#544)) ([9e8cc2a](9e8cc2a))
* Handling Log Collector Group (LCG) pushes ([#493](#493)) ([7e87952](7e87952))
* **panos/network:** Advanced routing engine ([#539](#539)) ([173bb8a](173bb8a))
* Enhance updater logic ([#548](#548)) ([23ed1ad](23ed1ad))
* **network.BgpPolicyRule:** Add action_community_modifier param ([#535](#535)) ([58ce888](58ce888)), closes [#534](#534)
* **PanDevice:** add `is_ready()` ([#532](#532)) ([a6b018e](a6b018e))

### Bug Fixes

* **_parse_job_results:** Catch None details in response ([#471](#471)) ([f01ae25](f01ae25)), closes [#470](#470)
github-actions bot pushed a commit that referenced this issue Apr 11, 2024
## [1.12.0](v1.11.0...v1.12.0) (2024-04-11)

### Features

* **ApplicationFilter:** Add new_appid parameter ([#547](#547)) ([bc96108](bc96108))
* **Firewall:** New fields for show_system_resources ([#544](#544)) ([9e8cc2a](9e8cc2a))
* Handling Log Collector Group (LCG) pushes ([#493](#493)) ([7e87952](7e87952))
* **panos/network:** Advanced routing engine ([#539](#539)) ([173bb8a](173bb8a))
* Enhance updater logic ([#548](#548)) ([23ed1ad](23ed1ad))
* **network.BgpPolicyRule:** Add action_community_modifier param ([#535](#535)) ([58ce888](58ce888)), closes [#534](#534)
* **PanDevice:** add `is_ready()` ([#532](#532)) ([a6b018e](a6b018e))

### Bug Fixes

* **_parse_job_results:** Catch None details in response ([#471](#471)) ([f01ae25](f01ae25)), closes [#470](#470)
github-actions bot pushed a commit that referenced this issue Apr 11, 2024
## [1.12.0](v1.11.0...v1.12.0) (2024-04-11)

### Features

* **ApplicationFilter:** Add new_appid parameter ([#547](#547)) ([bc96108](bc96108))
* **Firewall:** New fields for show_system_resources ([#544](#544)) ([9e8cc2a](9e8cc2a))
* Handling Log Collector Group (LCG) pushes ([#493](#493)) ([7e87952](7e87952))
* **panos/network:** Advanced routing engine ([#539](#539)) ([173bb8a](173bb8a))
* Enhance updater logic ([#548](#548)) ([23ed1ad](23ed1ad))
* **network.BgpPolicyRule:** Add action_community_modifier param ([#535](#535)) ([58ce888](58ce888)), closes [#534](#534)
* **PanDevice:** add `is_ready()` ([#532](#532)) ([a6b018e](a6b018e))

### Bug Fixes

* **_parse_job_results:** Catch None details in response ([#471](#471)) ([f01ae25](f01ae25)), closes [#470](#470)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant