1+ #!/usr/bin/env python
2+ #
3+ # Copyright (c) 2017 Jason Frazier <jafrazie@cisco.com>
4+ # All rights reserved.
5+ #
6+ # Redistribution and use in source and binary forms, with or without
7+ # modification, are permitted provided that the following conditions
8+ # are met:
9+ # 1. Redistributions of source code must retain the above copyright
10+ # notice, this list of conditions and the following disclaimer.
11+ # 2. Redistributions in binary form must reproduce the above copyright
12+ # notice, this list of conditions and the following disclaimer in the
13+ # documentation and/or other materials provided with the distribution.
14+ #
15+ # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16+ # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18+ # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19+ # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20+ # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21+ # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22+ # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23+ # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25+ # SUCH DAMAGE.
26+ #
27+ # This script retrieves entire configuration from a network element via NETCONF
28+ # prints it out in a "pretty" XML tree.
29+
30+ from argparse import ArgumentParser
31+ from ncclient import manager
32+ import requests
33+
34+ if __name__ == '__main__' :
35+
36+ parser = ArgumentParser (description = 'Select options.' )
37+
38+ # Input parameters
39+ parser .add_argument ('-host' , '--host' , type = str , required = True ,
40+ help = "The device IP or DN" )
41+ parser .add_argument ('-user' , '--username' , type = str , default = 'cisco' ,
42+ help = "User credentials for the request" )
43+ parser .add_argument ('-passwd' , '--password' , type = str , default = 'cisco' ,
44+ help = "It's the password" )
45+ parser .add_argument ('-port' , '--port' , type = int , default = 830 ,
46+ help = "Specify this if you want a non-default port" )
47+
48+ args = parser .parse_args ()
49+
50+ username = args .username
51+ password = args .password
52+ host = args .host
53+ port = str (args .port )
54+
55+ url = "http://" + host + ":" + port + "/restconf/api/running/"
56+
57+ headers = {
58+ "Content-Type" : "application/vnd.yang.datastore+json" ,
59+ "Accept" : "application/vnd.yang.datastore+json" ,
60+ }
61+ response = requests .request ("GET" , url , headers = headers , auth = (username ,password ))
62+
63+ print (response .text )
0 commit comments