Demo waypoint for path redirection service: Add flow upon setting a waypoint address...
[affinity.git] / scripts / affinity.py
1 #!/usr/local/bin/python
2
3 import httplib2
4 import json
5 import sys
6
7 #
8 # Configure an affinity link and set its waypoint address. 
9 #
10
11 def rest_method(url, verb): 
12     global h
13
14     print "REST call " + url
15     resp, content = h.request(url, verb)
16
17     print content
18     print "return code %d" % (resp.status)
19     print "done"
20     
21
22 def list_all_hosts(): 
23
24     print "list all hosts"
25     put_url = 'http://localhost:8080/controller/nb/v2/hosttracker/default/hosts/active'
26     rest_method(put_url, "GET")
27     
28
29 def waypoint_init():
30     # Create two affinity groups
31
32     print "create web servers group"
33     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/create/group/webservers'
34     rest_method(put_url, "PUT")
35
36     print "create external addresses"
37     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/create/group/clients'
38     rest_method(put_url, "PUT")
39
40     print "create link inflows"
41     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/create/link/inflows/from/clients/to/webservers'
42     rest_method(put_url, "PUT")
43
44     print "add ip to webservers"
45     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/group/webservers/add/ip/192.168.1.1'
46     rest_method(put_url, "PUT")
47
48     print "add ip to webservers"
49     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/group/webservers/add/ip/192.168.1.2'
50     rest_method(put_url, "PUT")
51
52     print "add ip to external"    
53     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/group/clients/add/ip/10.10.0.0'
54     rest_method(put_url, "PUT")
55
56
57 def get_all_affinity_groups(): 
58     print "get all affinity groups"
59     get_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/affinity-groups'
60     rest_method(get_url, "GET")
61
62 def get_all_affinity_links(): 
63     print "get all affinity groups"
64     get_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/affinity-links'
65     rest_method(get_url, "GET")
66
67 def get_affinity_group(groupname): 
68     get_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/group/' + groupname
69     rest_method(get_url, "GET")
70
71 def set_waypoint_address():
72     wp = "192.168.1.10"
73     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/link/inflows/setwaypoint/' + wp
74     rest_method(put_url, "PUT")
75
76 def demo_set_waypoint_address():
77     wp = "10.0.0.4"
78     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/link/testAL/setwaypoint/' + wp
79     rest_method(put_url, "PUT")
80
81 # Add waypoint IP to an affinity link.
82 def main():
83     global h
84     h = httplib2.Http(".cache")
85     h.add_credentials('admin', 'admin')
86
87 #    waypoint_init()
88     demo_set_waypoint_address()
89 #    unset_waypoint_address()
90
91 #    get_affinity_group('webservers')
92 #    get_affinity_group('clients')
93
94 #    get_all_affinity_groups()
95
96     list_all_hosts()
97 #    get_all_affinity_links()
98
99 if __name__ == "__main__":
100     main()
101
102     
103