+class AffinityControl:
+
+ def __init__(self):
+ self.http = httplib2.Http(".cache")
+ self.http.add_credentials("admin", "admin")
+ self.url_prefix = "http://localhost:8080/affinity/nb/v2/affinity/default/"
+ self.groups = []
+ self.links = []
+
+ def add_affinity_group(self, group_name, ips):
+ resp, content = self.http.request(self.url_prefix + "create/group/%s" % group_name, "PUT")
+ if (resp.status != 201):
+ print "AffinityGroup %s could not be created" % group_name
+ return
+ for ip in ips:
+ resp, content = self.http.request(self.url_prefix + "group/%s/add/ip/%s" % (group_name, ip), "PUT")
+ if (resp.status != 201):
+ print "IP %s could not be added to AffinityGroup %s" % (ip, group_name)
+ return
+ self.groups.append(group_name)
+ print "AffinityGroup %s added successfully. IPs are %s" % (group_name, ips)
+
+
+ def add_affinity_link(self, link_name, src_group, dst_group):
+ resp, content = self.http.request(self.url_prefix + "create/link/%s/from/%s/to/%s" % (link_name, src_group, dst_group), "PUT")
+ if (resp.status != 201):
+ print "AffinityLink %s could not be added between %s and %s" % (link_name, src_group, dst_group)
+ return
+ self.links.append(link_name)
+ print "AffinityLink %s added between %s and %s" % (link_name, src_group, dst_group)
+
+