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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
import sys
import xml.etree.ElementTree as ET
from netconf.client import connect_ssh
def usage():
print('usage: test.py host user password operation{route_dump, face_dump, face_add, route_add, punt_add, face_del, punt_del, route_del}')
def test(host,user,password,operation):
with connect_ssh(host, 830, user, password) as session:
if (operation=='face_dump'):
config = session.get()
for root in config:
if root.tag=="{urn:sysrepo:hicn}hicn-state":
for entity in root:
if entity.tag=="{urn:sysrepo:hicn}faces":
print('Faces')
for face in entity:
for elem in face:
print(elem.tag +" : "+ elem.text)
elif (operation=='state_dump'):
config = session.get()
for root in config:
if root.tag=="{urn:sysrepo:hicn}hicn-state":
for entity in root:
if entity.tag=="{urn:sysrepo:hicn}states":
print('States')
for state in entity:
print(state.tag +" : "+ state.text)
elif (operation=='route_dump'):
config = session.get()
for root in config:
if root.tag=="{urn:sysrepo:hicn}hicn-state":
for entity in root:
if entity.tag=="{urn:sysrepo:hicn}routes":
print('Routes')
for route in entity:
for elem in route:
print(elem.tag +" : "+ elem.text)
elif(operation=='face_add'):
root = ET.parse('aface.xml').getroot()
session.send_rpc(ET.tostring(root, encoding='utf8').decode('utf8'))
elif(operation=='punt_add'):
root = ET.parse('apunt.xml').getroot()
session.send_rpc(ET.tostring(root, encoding='utf8').decode('utf8'))
elif(operation=='route_add'):
root = ET.parse('aroute.xml').getroot()
session.send_rpc(ET.tostring(root, encoding='utf8').decode('utf8'))
elif(operation=='face_del'):
root = ET.parse('dface.xml').getroot()
session.send_rpc(ET.tostring(root, encoding='utf8').decode('utf8'))
elif(operation=='punt_del'):
root = ET.parse('dpunt.xml').getroot()
session.send_rpc(ET.tostring(root, encoding='utf8').decode('utf8'))
elif(operation=='route_del'):
root = ET.parse('droute.xml').getroot()
session.send_rpc(ET.tostring(root, encoding='utf8').decode('utf8'))
else:
usage()
if __name__ == '__main__':
if(len(sys.argv)<4):
usage()
else:
test(sys.argv[1],sys.argv[2],sys.argv[3],sys.argv[4])
|