Working northbound rest api calls for affinity objects.
[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 waypoint_init():
23     # Create two affinity groups
24
25     print "create web servers group"
26     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/create/group/webservers'
27     rest_method(put_url, "PUT")
28
29     print "create external addresses"
30     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/create/group/clients'
31     rest_method(put_url, "PUT")
32
33     print "create link inflows"
34     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/create/link/inflows/from/clients/to/webservers'
35     rest_method(put_url, "PUT")
36
37     print "add ip to webservers"
38     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/group/webservers/add/ip/192.168.1.1'
39     rest_method(put_url, "PUT")
40
41     print "add ip to webservers"
42     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/group/webservers/add/ip/192.168.1.2'
43     rest_method(put_url, "PUT")
44
45     print "add ip to external"    
46     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/group/clients/add/ip/10.10.0.0'
47     rest_method(put_url, "PUT")
48
49
50 def get_all_affinity_groups(): 
51     print "get all affinity groups"
52     get_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/affinity-groups'
53     rest_method(get_url, "GET")
54
55 def get_all_affinity_links(): 
56     print "get all affinity groups"
57     get_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/affinity-links'
58     rest_method(get_url, "GET")
59
60 def get_affinity_group(groupname): 
61     get_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/group/' + groupname
62     rest_method(get_url, "GET")
63
64 def set_waypoint_address():
65     wp = "192.168.1.10"
66     put_url = 'http://localhost:8080/affinity/nb/v2/affinity/default/link/inflows/setwaypoint/' + wp
67     rest_method(put_url, "PUT")
68
69 # Add waypoint IP to an affinity link.
70 def main():
71     global h
72     h = httplib2.Http(".cache")
73     h.add_credentials('admin', 'admin')
74
75 #    waypoint_init()
76     set_waypoint_address()
77 #    unset_waypoint_address()
78
79     get_affinity_group('webservers')
80     get_affinity_group('clients')
81
82     get_all_affinity_groups()
83 #    get_all_affinity_links()
84
85 if __name__ == "__main__":
86     main()
87
88     
89