PaloAltoNetworks / pan-os-python

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.
https://pan-os-python.readthedocs.io
ISC License
339 stars 166 forks source link

fw_obj.software.upgrade_to_version(targetVersion) loses connection upon reboot and thus doesn't track results or perform subsequent upgrades in a multi-upgrade chain #533

Open fettigcj opened 8 months ago

fettigcj commented 8 months ago

Describe the bug

fw_obj.software.upgrade_to_version(targetVersion) loses connection upon reboot and thus doesn't track results or perform subsequent upgrades in a multi-upgrade chain

Expected behavior

Connection loss should be expected during upgrades and connectivity restoration should be possible after reboot.

Current behavior

Connection is lost during reboot

Possible solution

Catch the "pan.xapi.PanXapiError: <serial#> not connected" error and drop into a "while rebooting == True" iteration-counting loop that will only break if waiting exceeds the time limit

Steps to reproduce

Connect to and attempt to upgrade a firewall.

Screenshots

upgrade_disconnects

Context

Upgrading 300 firewalls by Dec 31 due to User ID certificate expiry

Your Environment

Python 3.11.1 pan-os-python 1.8.0