8db44f1e5cd844b94e7e3f001f95d52ed1772ab4
[ncclient] / examples / misc.py
1 #import logging
2 #logging.basicConfig(level=logging.DEBUG)
3
4 from ncclient import manager
5 from ncclient.operations import RPCError
6
7 m = manager.connect('broccoli', 22, username='sbhushan')
8
9 # add user
10 print 'Add user:',
11 config = """<config>
12     <aaa xmlns="http://tail-f.com/ns/aaa/1.1">
13         <authentication>
14             <users>
15                 <user>
16                     <name>testtailf</name>
17                     <uid>9099</uid>
18                     <gid>1</gid>
19                     <password>testtailf</password>
20                     <ssh_keydir/>
21                     <homedir/>
22                 </user>
23             </users>
24         </authentication>
25     </aaa>
26 </config>"""
27 try:
28     m.edit_config(target='candidate', config=config)
29 except RPCError as e:
30     print 'error:', e
31 else:
32     print 'OK'
33
34 # get using xpath filter
35 print 'Get using XPath filter:',
36 expr = "aaa/authentication/users/user[name='testtailf']"
37 try:
38     reply = m.get_config(source='candidate', filter=("xpath", expr))
39 except RPCError as e:
40     print 'error:', e
41 else:
42     print reply.data_xml
43
44 # get using subtree filter
45 print 'Get using subtree filter:',
46 criteria = """<aaa xmlns="http://tail-f.com/ns/aaa/1.1">
47     <authentication>
48         <users>
49             <user><name>testtailf</name></user>
50         </users>
51     </authentication>
52 </aaa>"""
53 try:
54     reply = m.get_config(source='candidate', filter=("subtree", criteria))
55 except RPCError as e:
56     print 'error:', e
57 else:
58     print reply.data_xml
59
60 # modify user
61 print 'Modify user:',
62 config = """<config>
63     <aaa xmlns="http://tail-f.com/ns/aaa/1.1">
64         <authentication>
65             <users>
66                 <user>
67             <name>testtailf</name>
68                     <uid>9011</uid>
69                     <homedir>abc123</homedir>
70                 </user>
71             </users>
72         </authentication>
73     </aaa>
74 </config>"""
75 try:
76     reply = m.edit_config(target='candidate', config=config)
77 except RPCError as e:
78     print 'error:', e
79 else:
80     print 'OK'
81
82 print 'Deleting user:',
83 config = """<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
84     <aaa xmlns="http://tail-f.com/ns/aaa/1.1">
85         <authentication>
86             <users>
87                 <user xc:operation="delete">
88                     <name>testtailf</name>
89                 </user>
90             </users>
91         </authentication>
92     </aaa>
93 </config>"""
94 try:
95     m.edit_config(target='candidate', config=config)
96 except RPCError as e:
97     print 'error: ', e
98 else:
99     print 'OK'
100
101 print 'Closing session:',
102 try:
103     m.close_session()
104 except RPCError as e:
105     print 'error', e
106 else:
107     print 'OK'