mirror of
https://github.com/ceph/ceph
synced 2026-08-02 07:03:18 +00:00
thrashers: standardize stop and join method names
Thrashers that do not inherit from ThrasherGreenlet previously used a method called do_join, which combined stop and join functionality. To ensure consistency and clarity, we want all thrashers to use separate stop, join, and stop_and_join methods. This commit renames methods and implements missing stop and stop_and_join methods in thrashers that did not inherit from ThrasherGreenlet. Fixes: https://tracker.ceph.com/issues/66698 Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>
This commit is contained in:
parent
21b4b89e52
commit
a035b5a22f
@ -870,11 +870,16 @@ class OSDThrasher(Thrasher):
|
||||
self.ceph_manager.raw_cluster_cmd('osd', 'primary-affinity',
|
||||
str(osd), str(1))
|
||||
|
||||
def do_join(self):
|
||||
def stop(self):
|
||||
"""
|
||||
Stop the thrasher
|
||||
"""
|
||||
self.stopping = True
|
||||
|
||||
def join(self):
|
||||
"""
|
||||
Break out of this Ceph loop
|
||||
"""
|
||||
self.stopping = True
|
||||
self.thread.get()
|
||||
if self.sighup_delay:
|
||||
self.log("joining the do_sighup greenlet")
|
||||
@ -889,6 +894,13 @@ class OSDThrasher(Thrasher):
|
||||
self.log("joining the do_noscrub_toggle greenlet")
|
||||
self.noscrub_toggle_thread.join()
|
||||
|
||||
def stop_and_join(self):
|
||||
"""
|
||||
Stop and join the thrasher
|
||||
"""
|
||||
self.stop()
|
||||
return self.join()
|
||||
|
||||
def grow_pool(self):
|
||||
"""
|
||||
Increase the size of the pool
|
||||
|
||||
@ -157,13 +157,26 @@ class MonitorThrasher(Thrasher):
|
||||
"""
|
||||
self.logger.info(x)
|
||||
|
||||
def do_join(self):
|
||||
def stop(self):
|
||||
"""
|
||||
Stop the thrashing process.
|
||||
"""
|
||||
self.stopping = True
|
||||
|
||||
def join(self):
|
||||
"""
|
||||
Break out of this processes thrashing loop.
|
||||
"""
|
||||
self.stopping.set()
|
||||
self.thread.get()
|
||||
|
||||
def stop_and_join(self):
|
||||
"""
|
||||
Stop the thrashing process and join the thread.
|
||||
"""
|
||||
self.stop()
|
||||
return self.join()
|
||||
|
||||
def should_thrash_store(self):
|
||||
"""
|
||||
If allowed, indicate that we should thrash a certain percentage of
|
||||
@ -450,6 +463,6 @@ def task(ctx, config):
|
||||
yield
|
||||
finally:
|
||||
log.info('joining mon_thrasher')
|
||||
thrash_proc.do_join()
|
||||
thrash_proc.stop_and_join()
|
||||
mons = _get_mons(ctx)
|
||||
manager.wait_for_mon_quorum_size(len(mons))
|
||||
|
||||
@ -59,7 +59,7 @@ def task(ctx, config):
|
||||
yield
|
||||
finally:
|
||||
log.info('joining scrub')
|
||||
scrub_proc.do_join()
|
||||
scrub_proc.stop_and_join()
|
||||
|
||||
class Scrubber:
|
||||
"""
|
||||
@ -91,11 +91,19 @@ class Scrubber:
|
||||
|
||||
self.thread = gevent.spawn(self.do_scrub)
|
||||
|
||||
def do_join(self):
|
||||
"""Scrubbing thread finished"""
|
||||
def stop(self):
|
||||
"""Stop scrubbing"""
|
||||
self.stopping = True
|
||||
|
||||
def join(self):
|
||||
"""Scrubbing thread finished"""
|
||||
self.thread.get()
|
||||
|
||||
def stop_and_join(self):
|
||||
"""Stop scrubbing thread"""
|
||||
self.stop()
|
||||
return self.join()
|
||||
|
||||
def do_scrub(self):
|
||||
"""Perform the scrub operation"""
|
||||
frequency = self.config.get("frequency", 30)
|
||||
|
||||
@ -19,6 +19,9 @@ class Thrasher(object):
|
||||
def set_thrasher_exception(self, e):
|
||||
self._exception = e
|
||||
|
||||
def stop(self):
|
||||
raise NotImplementedError("Subclasses didn't implement this method.")
|
||||
|
||||
class ThrasherGreenlet(Thrasher, Greenlet):
|
||||
|
||||
class Stopped(Exception): ...
|
||||
@ -46,3 +49,7 @@ class ThrasherGreenlet(Thrasher, Greenlet):
|
||||
if self.is_stopped and raise_stopped:
|
||||
raise self.Stopped()
|
||||
return not self.is_stopped
|
||||
|
||||
def stop_and_join(self):
|
||||
self.stop()
|
||||
return self.join()
|
||||
|
||||
@ -214,7 +214,7 @@ def task(ctx, config):
|
||||
yield
|
||||
finally:
|
||||
log.info('joining thrashosds')
|
||||
thrash_proc.do_join()
|
||||
thrash_proc.stop_and_join()
|
||||
cluster_manager.wait_for_all_osds_up()
|
||||
cluster_manager.flush_all_pg_stats()
|
||||
cluster_manager.wait_for_recovery(config.get('timeout', 360))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user