Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* iosxe
* Modified ShowNtpConfig
* Modified regex pattern to support ntp servers configured with keys
* Changed schema to include "key_id"
9 changes: 8 additions & 1 deletion src/genie/libs/parser/iosxe/show_ntp.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,7 @@ class ShowNtpConfigSchema(MetaParser):
'vrf': str,
Optional('source'): str,
Optional('preferred'): bool,
Optional('key_id'): str,
}
},
'isconfigured': {
Expand Down Expand Up @@ -376,9 +377,11 @@ def cli(self, output=None):
# ntp server vrf VRF1 10.64.4.4
# ntp server 10.16.2.2 source Loopback0
# ntp server 10.3.254.100 prefer
# ntp server vrf Mgmt 10.2.2.2 key 2
# ntp server vrf Mgmt 10.3.3.3 key 3 prefer
p1 = re.compile(r"^ntp +(?P<type>\w+)( +vrf +(?P<vrf>\S+))? "
r"+(?P<address>[\w\.\:]+)( +source +"
r"(?P<source_interface>[\w]+))?(?P<prefer> prefer)?$")
r"(?P<source_interface>[\w]+))?( +key +(?P<key_id>\S+))?(?P<prefer> prefer)?$")

for line in out.splitlines():
line = line.strip()
Expand All @@ -393,6 +396,7 @@ def cli(self, output=None):
address = groups['address']
source = groups['source_interface'] or ''
prefer = groups['prefer']
key_id = groups['key_id']
isconfigured = True

addr_dict = ret_dict.setdefault('vrf', {}).setdefault(vrf, {})\
Expand All @@ -408,6 +412,9 @@ def cli(self, output=None):
if source:
addr_dict['type'][ntp_type]['source'] = source

if key_id:
addr_dict['type'][ntp_type]['key_id'] = key_id

addr_dict.setdefault('isconfigured', {}).\
setdefault(str(isconfigured), {}).update({'address': address,
'isconfigured': isconfigured})
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
expected_output = {
'vrf': {
'Mgmt': {
'unicast_configuration': {
'address': {
'10.4.4.4': {
'type': {
'server': {
'address': '10.4.4.4',
'type': 'server',
'vrf': 'Mgmt',
'preferred': True,
'key_id': '5'
}
}
},
'10.3.3.3': {
'type': {
'server': {
'address': '10.3.3.3',
'type': 'server',
'vrf': 'Mgmt',
'key_id': '4'
}
}
},
'10.2.2.2': {
'type': {
'server': {
'address': '10.2.2.2',
'type': 'server',
'vrf': 'Mgmt',
'key_id': '3'
}
}
},
'10.1.1.1': {
'type': {
'server': {
'address': '10.1.1.1',
'type': 'server',
'vrf': 'Mgmt',
'key_id': '2'
}
}
}
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
R1#show ntp config
ntp server vrf Mgmt 10.1.1.1 key 2
ntp server vrf Mgmt 10.2.2.2 key 3
ntp server vrf Mgmt 10.3.3.3 key 4
ntp server vrf Mgmt 10.4.4.4 key 5 prefer