From 1fcc43fd7a112a36d1860eddcffb55e4de2aa836 Mon Sep 17 00:00:00 2001 From: Peter Searby Date: Wed, 3 Jan 2024 12:36:21 +0000 Subject: [PATCH] rebalance plot: Handle rebalance_report with missing fields Change-Id: Idec0de6691ff9500984a5370f5c480edd4937834 Reviewed-on: https://review.couchbase.org/c/ns_server/+/203195 Reviewed-by: Steve Watanabe Tested-by: Peter Searby --- scripts/jq/rebalance_report/parser.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/scripts/jq/rebalance_report/parser.py b/scripts/jq/rebalance_report/parser.py index cd35587529..85d861e6cb 100644 --- a/scripts/jq/rebalance_report/parser.py +++ b/scripts/jq/rebalance_report/parser.py @@ -16,13 +16,27 @@ def get_vbucket_moves(report, bucket): - stage_infos = report["stageInfo"] + if not report.get("is_rebalancing", True): + print("Rebalance wasn't running") + return [] - data_info = stage_infos["data"] + stage_infos = report.get("stageInfo") + if stage_infos is None: + print("No stageInfo found") + return [] - details = data_info["details"] + data_info = stage_infos.get("data") + if data_info is None: + print("No data service rebalance found") + return [] + + details = data_info.get("details") + if details is None: + print("No details found") + return [] if bucket not in details: + print(f"No details found for bucket '{bucket}'") return [] bucket_details = details[bucket]