@@ -197,11 +197,14 @@ class NTPServerSecondary(NTPServer):
197197 XPATH = "/ntp-servers/secondary-ntp-server"
198198
199199
200- class SystemSettings (PanObject ):
200+ class SystemSettings (VersionedPanObject ):
201201 """Firewall or Panorama device system settings
202202
203203 Add only one of these to a parent object.
204204
205+ If you want to configure DHCP on the management interface, you should
206+ specify settings for `dhcp_send_hostname` and `dhcp_send_client_id`.
207+
205208 Args:
206209 hostname (str): The hostname of the device
207210 domain (str): The domain of the device
@@ -217,35 +220,73 @@ class SystemSettings(PanObject):
217220 panorama2 (str): IP address of secondary Panorama
218221 login_banner (str): Login banner text
219222 update_server (str): IP or hostname of the update server
223+ verify_update_server (bool): Verify the update server identity
224+ dhcp_send_hostname (bool): (DHCP Mngt) Send Hostname
225+ dhcp_send_client_id (bool): (DHCP Mngt) Send Client ID
226+ accept_dhcp_hostname (bool): (DHCP Mngt) Accept DHCP hostname
227+ accept_dhcp_domain (bool): (DHCP Mngt) Accept DHCP domain name
220228
221229 """
222230 NAME = None
223231 ROOT = Root .DEVICE
224- XPATH = "/deviceconfig/system"
225232 HA_SYNC = False
226233 CHILDTYPES = (
227234 "device.NTPServerPrimary" ,
228235 "device.NTPServerSecondary" ,
229236 )
230237
231- @classmethod
232- def variables (cls ):
233- return (
234- Var ("hostname" ),
235- Var ("domain" ),
236- Var ("ip-address" ),
237- Var ("netmask" ),
238- Var ("default-gateway" ),
239- Var ("ipv6-address" ),
240- Var ("ipv6-default-gateway" ),
241- Var ("dns-setting/servers/primary" , "dns_primary" ),
242- Var ("dns-setting/servers/secondary" , "dns_secondary" ),
243- Var ("timezone" ),
244- Var ("panorama-server" , "panorama" ),
245- Var ("panorama-server-2" , "panorama2" ),
246- Var ("login-banner" ),
247- Var ("update-server" ),
248- )
238+ def _setup (self ):
239+ # xpaths
240+ self ._xpaths .add_profile (value = '/deviceconfig/system' )
241+
242+ # params
243+ params = []
244+
245+ params .append (VersionedParamPath (
246+ 'hostname' , path = 'hostname' ))
247+ params .append (VersionedParamPath (
248+ 'domain' , path = 'domain' ))
249+ params .append (VersionedParamPath (
250+ 'ip_address' , path = 'ip-address' ))
251+ params .append (VersionedParamPath (
252+ 'netmask' , path = 'netmask' ))
253+ params .append (VersionedParamPath (
254+ 'default_gateway' , path = 'default-gateway' ))
255+ params .append (VersionedParamPath (
256+ 'ipv6_address' , path = 'ipv6-address' ))
257+ params .append (VersionedParamPath (
258+ 'ipv6_default_gateway' , path = 'ipv6-default-gateway' ))
259+ params .append (VersionedParamPath (
260+ 'dns_primary' , path = 'dns-setting/servers/primary' ))
261+ params .append (VersionedParamPath (
262+ 'dns_secondary' , path = 'dns-setting/servers/secondary' ))
263+ params .append (VersionedParamPath (
264+ 'timezone' , path = 'timezone' ))
265+ params .append (VersionedParamPath (
266+ 'panorama' , path = 'panorama-server' ))
267+ params .append (VersionedParamPath (
268+ 'panorama2' , path = 'panorama-server-2' ))
269+ params .append (VersionedParamPath (
270+ 'login_banner' , path = 'login-banner' ))
271+ params .append (VersionedParamPath (
272+ 'update_server' , path = 'update-server' ))
273+ params .append (VersionedParamPath (
274+ 'verify_update_server' , vartype = 'yesno' ,
275+ path = 'server-verification' ))
276+ params .append (VersionedParamPath (
277+ 'dhcp_send_hostname' , vartype = 'yesno' ,
278+ path = 'type/dhcp-client/send-hostname' ))
279+ params .append (VersionedParamPath (
280+ 'dhcp_send_client_id' , vartype = 'yesno' ,
281+ path = 'type/dhcp-client/send-client-id' ))
282+ params .append (VersionedParamPath (
283+ 'accept_dhcp_hostname' , vartype = 'yesno' ,
284+ path = 'type/dhcp-client/accept-dhcp-hostname' ))
285+ params .append (VersionedParamPath (
286+ 'accept_dhcp_domain' , vartype = 'yesno' ,
287+ path = 'type/dhcp-client/accept-dhcp-domain' ))
288+
289+ self ._params = tuple (params )
249290
250291
251292class PasswordProfile (VersionedPanObject ):
0 commit comments