Statistics
| Branch: | Tag: | Revision:

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:])