aboutsummaryrefslogtreecommitdiffstats
path: root/ctrl/sysrepo-plugins/hicn-plugin/test/netconf-test/test.py
blob: 7c6163521dbf9c0e9e0a6f9ae50efbd8405537d3 (plain)
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])