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
340 stars 168 forks source link

The Class definition for ntp-servers is missing the "authentication-type" parameter. #504

Open rokkberr opened 1 year ago

rokkberr commented 1 year ago

Describe the bug

The Class definition for ntp-servers is missing the "authentication-type" parameter.

Expected behavior

When I modify or instantiate an NTPServerPrimary of NTPServerSecondary object, and apply it to the firewall, it should be reflected in the configuration as such:

ntp-servers {
  primary-ntp-server {
    ntp-server-address <address>;
    authentication-type {
      none;
    }
  }
}

Current behavior

If I modify an existing object, the "authentication-type" block disappears. If I instantiate a new object, adds it to the systemSettings object as a child, the "authentication-type" block is never made.

Possible solution

Steps to reproduce

Firewall:

firewall# show deviceconfig system ntp-servers
ntp-servers {
  primary-ntp-server {
    ntp-server-address ntp1.example.com;
    authentication-type {
      none;
    }
  }
}

Python:

firewall = panos.firewall.Firewall(<parameters>)
sysset = panos.device.SystemSettings.refreshall(firewall)
ntpobj = sysset.children[0]
print (ntpobj.address)
>> 'ntp1.example.com'
ntpobj.address="ntp2.example.com"
ntpobj.apply()

Firewall:

firewall# show deviceconfig system ntp-servers
ntp-servers {
  primary-ntp-server {
    ntp-server-address ntp2.example.com;
  }
}

Screenshots

Context

I have about 20 firewalls with a wrong ntp configuration. I would love to edit it via Python code instead of logging into each one to fix them by CLI.

Your Environment

Python 3.11.2 pan-os-python 1.8.1

Tested on two firewalls: model: PA-5220 sw-version: 10.2.3-h4

model: PA-220 sw-version: 9.1.12-h3