From 68cc1a0da11b491afe57019134adad8119c37800 Mon Sep 17 00:00:00 2001 From: Andrew Hutchings Date: Mon, 21 Oct 2013 07:33:41 +0100 Subject: [PATCH] [WORKER]+[MGM]: gearman needs string names, ports need ints, socks need close Change-Id: I72c9730ccb53bfe3fbe5291d8e6e7ec5099272e9 --- libra/mgm/controllers/build.py | 6 +++--- libra/mgm/controllers/root.py | 3 ++- libra/mgm/controllers/vip.py | 2 ++ libra/worker/controller.py | 3 ++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libra/mgm/controllers/build.py b/libra/mgm/controllers/build.py index 4f87518a..153bcc63 100644 --- a/libra/mgm/controllers/build.py +++ b/libra/mgm/controllers/build.py @@ -68,7 +68,7 @@ class BuildController(object): if self.msg[self.RESPONSE_FIELD] == self.RESPONSE_SUCCESS: status = self._test_node(self.msg['name']) if not status: - self.msg[self.RESPONSE_FIELD] == self.RESPONSE_FAILURE + self.msg[self.RESPONSE_FIELD] = self.RESPONSE_FAILURE return self.msg else: self.logger.error( @@ -143,7 +143,7 @@ class BuildController(object): job_data = {'hpcs_action': 'DIAGNOSTICS'} job_status = gm_client.submit_job( - name, job_data, background=False, wait_until_complete=True, + str(name), job_data, background=False, wait_until_complete=True, max_retries=10, poll_timeout=10 ) if job_status.state == JOB_UNKNOWN: @@ -156,7 +156,7 @@ class BuildController(object): return False self.logger.debug(job_status.result) # Would only happen if DIAGNOSTICS call not supported - if job_status.result['hpcs_result'] == 'FAIL': + if job_status.result['hpcs_response'] == 'FAIL': return True if job_status.result['network'] == 'FAIL': diff --git a/libra/mgm/controllers/root.py b/libra/mgm/controllers/root.py index 9ac173cc..23ea3bdc 100644 --- a/libra/mgm/controllers/root.py +++ b/libra/mgm/controllers/root.py @@ -59,7 +59,8 @@ class PoolMgmController(object): self.msg = controller.run() # Delete a built device if it has failed if ( - action == 'BUILD_DEVICE' and self.msg == self.RESPONSE_FAILURE + action == 'BUILD_DEVICE' + and self.msg[self.RESPONSE_FIELD] == self.RESPONSE_FAILURE and 'name' in self.msg ): delete_msg = {'name': self.msg['name']} diff --git a/libra/mgm/controllers/vip.py b/libra/mgm/controllers/vip.py index 22e2d8d8..97cf6861 100644 --- a/libra/mgm/controllers/vip.py +++ b/libra/mgm/controllers/vip.py @@ -105,6 +105,7 @@ class AssignIpController(object): while True: try: sock.connect((ip, port)) + sock.close() return True except socket.error: loop_count += 1 @@ -113,6 +114,7 @@ class AssignIpController(object): "TCP connect error after floating IP assign {0}" .format(ip) ) + sock.close() raise time.sleep(2) diff --git a/libra/worker/controller.py b/libra/worker/controller.py index 31326050..355db006 100644 --- a/libra/worker/controller.py +++ b/libra/worker/controller.py @@ -95,7 +95,7 @@ class LBaaSController(object): for host_port in cfg.CONF['gearman']['servers']: host, port = host_port.split(':') try: - self._check_host(host, port) + self._check_host(host, int(port)) except: self.msg['gearman'].append( {'host': host, 'status': self.RESPONSE_FAILURE} @@ -122,6 +122,7 @@ class LBaaSController(object): sock.settimeout(5) try: sock.connect((ip, port)) + sock.close() return True except socket.error: self.logger.error(