]>
git.proxmox.com Git - ceph.git/blob - ceph/qa/tasks/thrash_pool_snaps.py
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
)