From 163e6d0dbfd9de07d70babf751989050931ad0e2 Mon Sep 17 00:00:00 2001 From: Prasad Desala Date: Tue, 30 Jan 2018 12:16:57 +0530 Subject: Check for failure in rebalance aggregate status in lib functions * wait_for_fix_layout_to_complete * wait_for_rebalance_to_complete Change-Id: I6e243725040f9d7bd7b46e00292771e76ee6fadf Signed-off-by: Prasad Desala --- .../glustolibs/gluster/rebalance_ops.py | 40 ++++++++++------------ 1 file changed, 19 insertions(+), 21 deletions(-) (limited to 'glustolibs-gluster/glustolibs/gluster') diff --git a/glustolibs-gluster/glustolibs/gluster/rebalance_ops.py b/glustolibs-gluster/glustolibs/gluster/rebalance_ops.py index 3c5615fc1..1c8c10a4b 100644 --- a/glustolibs-gluster/glustolibs/gluster/rebalance_ops.py +++ b/glustolibs-gluster/glustolibs/gluster/rebalance_ops.py @@ -19,8 +19,8 @@ Description: Library for gluster rebalance operations. """ -from glusto.core import Glusto as g import time +from glusto.core import Glusto as g try: import xml.etree.cElementTree as etree @@ -282,25 +282,24 @@ def wait_for_fix_layout_to_complete(mnode, volname, timeout=300): """ count = 0 - flag = 0 - while (count < timeout): + while count < timeout: status_info = get_rebalance_status(mnode, volname) if status_info is None: return False status = status_info['aggregate']['statusStr'] if status == 'fix-layout completed': - flag = 1 - break + g.log.info("Fix-layout is successfully completed") + return True + if status == 'fix-layout failed': + g.log.error("Fix-layout failed on one or more nodes." + "Check rebalance status for more details") + return False time.sleep(10) count = count + 10 - if not flag: - g.log.error("Fix-layout is not completed") - return False - else: - g.log.info("Fix-layout is successfully completed") - return True + g.log.error("Fix layout has not completed. Wait timeout.") + return False def wait_for_rebalance_to_complete(mnode, volname, timeout=300): @@ -322,25 +321,24 @@ def wait_for_rebalance_to_complete(mnode, volname, timeout=300): """ count = 0 - flag = 0 - while (count < timeout): + while count < timeout: status_info = get_rebalance_status(mnode, volname) if status_info is None: return False status = status_info['aggregate']['statusStr'] if status == 'completed': - flag = 1 - break + g.log.info("Rebalance is successfully completed") + return True + if status == 'failed': + g.log.error(" Rebalance failed on one or more nodes." + "Check rebalance status for more details") + return False time.sleep(10) count = count + 10 - if not flag: - g.log.error("rebalance is not completed") - return False - else: - g.log.info("rebalance is successfully completed") - return True + g.log.error("Rebalance operation has not completed. Wait timeout.") + return False def get_remove_brick_status(mnode, volname, bricks_list): -- cgit