From 18c0c6bf6db7986ed5adaa7311f062cb0b81f50a Mon Sep 17 00:00:00 2001 From: David Shrewsbury Date: Wed, 6 Feb 2013 11:21:01 -0500 Subject: [PATCH] Get 'weight' value from API server message. Now that the worker supports server weighting, we should, you know, actually use it if it is given in the request. Change-Id: I7b0af9b8fc57ff17e5457b81290a474821b0d932 --- libra/worker/controller.py | 8 ++++++-- libra/worker/drivers/haproxy/driver.py | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libra/worker/controller.py b/libra/worker/controller.py index 20072ef1..94a3073a 100644 --- a/libra/worker/controller.py +++ b/libra/worker/controller.py @@ -163,7 +163,7 @@ class LBaaSController(object): return self.msg for lb_node in current_lb['nodes']: - port, address = None, None + port, address, weight = None, None, None if 'port' in lb_node: port = lb_node['port'] @@ -175,10 +175,14 @@ class LBaaSController(object): else: return BadRequest("Missing 'address' element.").to_json() + if 'weight' in lb_node: + weight = lb_node['weight'] + try: self.driver.add_server(current_lb['protocol'], address, - port) + port, + weight) except NotImplementedError: self.logger.error( "Selected driver does not support adding a server." diff --git a/libra/worker/drivers/haproxy/driver.py b/libra/worker/drivers/haproxy/driver.py index 876989d1..cd219fad 100644 --- a/libra/worker/drivers/haproxy/driver.py +++ b/libra/worker/drivers/haproxy/driver.py @@ -125,6 +125,8 @@ class HAProxyDriver(LoadBalancerDriver): def add_server(self, protocol, host, port, weight=1): proto = protocol.lower() + if weight is None: + weight = 1 try: weight = int(weight)