Switch to use new ovs nsh version
[groupbasedpolicy.git] / demos / gbpsfc-env / demo-symmetric-chain / get-nsps.py
1 #!/usr/bin/python
2 import socket
3 import requests,json
4 from requests.auth import HTTPBasicAuth
5 import sys
6 import os
7 import time
8 from subprocess import check_output
9 from infrastructure_config import *
10
11
12 DEFAULT_PORT='8181'
13 USERNAME='admin'
14 PASSWORD='admin'
15
16 def get(host, port, uri):
17     proxies = {
18         "http": None,
19         "https": None
20     }
21
22     url='http://'+host+":"+port+uri
23     #print url
24     r = requests.get(url, proxies=proxies, auth=HTTPBasicAuth(USERNAME, PASSWORD))
25     jsondata=json.loads(r.text)
26     return jsondata
27
28
29 def get_rsps_uri():
30         return "/restconf/operational/rendered-service-path:rendered-service-paths"
31
32 def doCmd(cmd):
33     listcmd=cmd.split()
34     print check_output(listcmd)
35
36 if __name__ == "__main__":
37     # Launch main menu
38
39
40     # Some sensible defaults
41     controller=os.environ.get('ODL')
42     if controller == None:
43         sys.exit("No controller set.")
44     #else:
45         #print "Contacting controller at %s" % controller
46
47     resp=get(controller,DEFAULT_PORT,get_rsps_uri())
48     if len(resp['rendered-service-paths']) > 0:
49        paths=resp['rendered-service-paths']['rendered-service-path']
50
51        nsps=[]
52        for path in paths:
53            nsps.append(path['path-id'])
54        if len(nsps) > 0:
55            sw_index=int(socket.gethostname().split("gbpsfc",1)[1])-1
56            if sw_index in range(0,len(switches)+1):
57
58               controller=os.environ.get('ODL')
59               sw_type = switches[sw_index]['type']
60               sw_name = switches[sw_index]['name']
61               if sw_type == 'sf':
62                   print "******************************"
63                   print "Adding flows for %s as an SF." % sw_name
64                   print "******************************"
65                   doCmd('sudo /vagrant/demo-symmetric-chain/sf-flows.sh %s' % min(nsps))
66