-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNetconf-WithFilter.py
More file actions
30 lines (24 loc) · 899 Bytes
/
Netconf-WithFilter.py
File metadata and controls
30 lines (24 loc) · 899 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from ncclient import manager
from pprint import pprint
import xmltodict
import xml.dom.minidom
router = {
'ip': '10.199.199.250',
'port': '830',
'username': 'admin',
'password': 'cisco'
}
m = manager.connect(host=router['ip'], port=router['port'], username=router['username'],
password=router['password'], device_params={'name': 'iosxe'}, hostkey_verify=False)
netconf_filter = """
<filter xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface>
<name>GigabitEthernet1</name>
</interface>
</interfaces>
</filter> """
running_config = m.get_config('running', netconf_filter)
running_config_xml = xmltodict.parse(running_config.xml)["rpc-reply"]["data"]
print(xml.dom.minidom.parseString(str(running_config)).toprettyxml())
m.close_session()