SwarmPlayer is now detected; CIS-LB random load balancer created
[living-lab-site.git] / cis / cis_lb / load_balancer / base.py
1 import threading
2 import urllib
3
4 import logger
5
6 class LoadBalancer(threading.Thread):
7     
8     def __init__(self, id, queue):
9         """
10         Initialize Load Balancer,
11         """
12
13         threading.Thread.__init__(self, \
14                 name = '%s%02d' % (self.__class__.__name__, id))
15         
16         self.queue = queue
17     
18     def run(self):
19         
20         while True:
21             (request, data) = self.queue.get()
22             
23             cis = self.choose()
24             logger.log_msg('Forwarding to %s' % cis, logger.LOG_LEVEL_DEBUG)
25             urllib.urlopen(cis + request, data)
26             
27             self.queue.task_done()
28         
29     def choose(self):
30         """
31         Implement load balancing policy in this method for child classes which
32         choses a CIS from config.CIS_URLS .
33         """        
34         pass