]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/crash: add option and serve infra
authorSage Weil <sage@redhat.com>
Sat, 13 Jul 2019 16:06:41 +0000 (11:06 -0500)
committerSage Weil <sage@redhat.com>
Fri, 15 Nov 2019 14:33:44 +0000 (08:33 -0600)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 7cbaa5ac563bf0be7dd2227ef8a1ae7d0ae20143)

src/pybind/mgr/crash/module.py

index 49c524b4ab42943d85380d4cfc9bfdcee719d0dc..a51bd163e652479d56b47fa805053e89e83638a9 100644 (file)
@@ -5,16 +5,39 @@ import json
 import six
 from collections import defaultdict
 from prettytable import PrettyTable
+from threading import Event
 
 
 DATEFMT = '%Y-%m-%d %H:%M:%S.%f'
 
 
 class Module(MgrModule):
+    MODULE_OPTIONS = [
+    ]
 
     def __init__(self, *args, **kwargs):
         super(Module, self).__init__(*args, **kwargs)
         self.crashes = None
+        self.run = True
+        self.event = Event()
+
+    def shutdown(self):
+        self.run = False
+        self.event.set()
+
+    def serve(self):
+        self.config_notify()
+        while self.run:
+            self.event.wait(self.warn_recent_interval / 100)
+            self.event.clear()
+
+    def config_notify(self):
+        for opt in self.MODULE_OPTIONS:
+            setattr(self,
+                    opt['name'],
+                    self.get_module_option(opt['name']) or opt['default'])
+            self.log.debug(' mgr option %s = %s',
+                           opt['name'], getattr(self, opt['name']))
 
     def _load_crashes(self):
         raw = self.get_store_prefix('crash/')