2 Thrash -- Simulate random osd failures.
11 log = logging.getLogger(__name__)
13 @contextlib.contextmanager
14 def task(ctx, config):
16 "Thrash" snap creation and removal on the listed pools
21 pools: [.rgw.buckets, .rgw.buckets.index]
28 pools = config.get('pools', [])
29 max_snaps = config.get('max_snaps', 10)
30 min_snaps = config.get('min_snaps', 5)
31 period = config.get('period', 30)
33 manager = ctx.managers['ceph']
36 snap = random.choice(snaps)
37 log.info("Removing snap %s" % (snap,))
39 manager.remove_pool_snap(pool, str(snap))
42 log.info("Adding snap %s" % (snap,))
44 manager.add_pool_snap(pool, str(snap))
50 if len(snaps) <= min_snaps:
52 elif len(snaps) >= max_snaps:
55 random.choice([lambda: add_snap(index), remove_snap])()
57 thread = gevent.spawn(do_thrash)