all_clean = False
for _ in range(0, retries):
stats = manager.get_pg_stats()
- states = [stat['state'] for stat in stats]
- if len(set(states)) == 1 and states[0] == 'active+clean':
+ bad = [stat['pgid'] for stat in stats if 'active+clean' not in stat['state']]
+ if not bad:
all_clean = True
break
- log.info("Waiting for all osds to be active and clean.")
+ log.info(
+ "Waiting for all osds to be active and clean, waiting on %s" % bad)
time.sleep(delays)
if not all_clean:
- log.info("Scrubbing terminated -- not all pgs were active and clean.")
- return
+ raise RuntimeError("Scrubbing terminated -- not all pgs were active and clean.")
check_time_now = time.localtime()
time.sleep(1)
all_roles = teuthology.all_roles(ctx.cluster)