root / examples / nc07.py @ master
History | View | Annotate | Download (980 Bytes)
1 | 91c5e202 | Shikhar Bhushan | #! /usr/bin/env python2.6
|
---|---|---|---|
2 | 91c5e202 | Shikhar Bhushan | #
|
3 | 91c5e202 | Shikhar Bhushan | # Delete a list of existing users from the running configuration using
|
4 | 91c5e202 | Shikhar Bhushan | # edit-config and the candidate datastore protected by a lock.
|
5 | 91c5e202 | Shikhar Bhushan | #
|
6 | 91c5e202 | Shikhar Bhushan | # $ ./nc07.py broccoli bob alice
|
7 | 91c5e202 | Shikhar Bhushan | |
8 | 91c5e202 | Shikhar Bhushan | import sys, os, warnings |
9 | 91c5e202 | Shikhar Bhushan | warnings.simplefilter("ignore", DeprecationWarning) |
10 | 91c5e202 | Shikhar Bhushan | from ncclient import manager |
11 | 91c5e202 | Shikhar Bhushan | |
12 | 91c5e202 | Shikhar Bhushan | template = """<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
|
13 | 91c5e202 | Shikhar Bhushan | <aaa xmlns="http://tail-f.com/ns/aaa/1.1">
|
14 | 91c5e202 | Shikhar Bhushan | <authentication> <users> <user xc:operation="delete">
|
15 | 91c5e202 | Shikhar Bhushan | <name>%s</name> </user></users></authentication></aaa></config>"""
|
16 | 91c5e202 | Shikhar Bhushan | |
17 | 91c5e202 | Shikhar Bhushan | def demo(host, user, names): |
18 | 91c5e202 | Shikhar Bhushan | with manager.connect(host=host, port=22, username=user) as m: |
19 | 91c5e202 | Shikhar Bhushan | assert(":candidate" in m.server_capabilities) |
20 | 91c5e202 | Shikhar Bhushan | with m.locked(target='candidate'): |
21 | 91c5e202 | Shikhar Bhushan | m.discard_changes() |
22 | 91c5e202 | Shikhar Bhushan | for n in names: |
23 | 91c5e202 | Shikhar Bhushan | m.edit_config(target='candidate', config=template % n)
|
24 | 91c5e202 | Shikhar Bhushan | m.commit() |
25 | 91c5e202 | Shikhar Bhushan | |
26 | 91c5e202 | Shikhar Bhushan | if __name__ == '__main__': |
27 | 91c5e202 | Shikhar Bhushan | demo(sys.argv[1], os.getenv("USER"), sys.argv[2:]) |