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

Performing a push to Shared using panos panorama gives error PanDeviceXapiError: commit-all is missing 'commit-all' #514

Open nathanielfernandez opened 1 year ago

nathanielfernandez commented 1 year ago

Hi All,

I'm trying to create a shared address object using panos.panorama. However I'm not able to proceed with pushing the configuration to the firewalls. I could create objects within device groups and push them successfully to the firewalls under the device group, but I haven't been successful with shared yet. Below is my code.

from panos.panorama import Panorama
from panos.objects import AddressObject

if __name__ == "__main__":
    panorama = "10.0.0.1"
    username = "USERNAME"
    password = "PASSWORD"

    pano = Panorama(panorama,username, password)
    obj = AddressObject("Sample_Shared_Object", "1.1.1.1")
    pano.add(obj)
    obj.create()

    pano.commit_all(sync=True, sync_all=True)

I'm getting the error on line pano.commit_all(sync=True, sync_all=True)

Exception has occurred: PanDeviceXapiError
 commit-all  is missing 'commit-all'
pan.xapi.PanXapiError:  commit-all  is missing 'commit-all'

During handling of the above exception, another exception occurred:

  File "C:\palo_alto_python_panos_scripts\Address_Objects\createAddressObjectInShared.py", line 47, in <module>
    pano.commit_all(sync=True, sync_all=True)
panos.errors.PanDeviceXapiError:  commit-all  is missing 'commit-all'

This line was suggested on issue #256 by btorresgil (https://github.com/PaloAltoNetworks/pan-os-python/issues/256). Do you know what I might be missing? arielpa-tr's solution in #256 seem to have used panorama.PanoramaCommitAll() and device group names. Would it be possible to use commit_all() without defining the device group names?

I also tried to add a panorama commit before the commit_all (pano.commit(sync=True, sync_all=True)), but I'm still getting the error on the pano.commit_all() line.

Any help would be appreciated. Thank you.

Environment:

welcome-to-palo-alto-networks[bot] commented 1 year ago

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