from types import OsdMap, NotFound, Config, FsMap, MonMap, \
PgSummary, Health, MonStatus
-import rados
import rbd_iscsi
import rbd_mirroring
from rbd_ls import RbdLs, RbdPoolLs
self.log_buffer = collections.deque(maxlen=LOG_BUFFER_SIZE)
self.audit_buffer = collections.deque(maxlen=LOG_BUFFER_SIZE)
- # Keep a librados instance for those that need it.
- self._rados = None
-
# Stateful instances of RbdLs, hold cached results. Key to dict
# is pool name.
self.rbd_ls = {}
# A prefix for all URLs to use the dashboard with a reverse http proxy
self.url_prefix = ''
- @property
- def rados(self):
- """
- A librados instance to be shared by any classes within
- this mgr module that want one.
- """
- if self._rados:
- return self._rados
-
- ctx_capsule = self.get_context()
- self._rados = rados.Rados(context=ctx_capsule)
- self._rados.connect()
-
- return self._rados
-
def update_pool_stats(self):
df = global_instance().get("df")
pool_stats = dict([(p['id'], p['stats']) for p in df['pools']])
cherrypy.engine.exit()
log.info("Stopped server")
- log.info("Stopping librados...")
- if self._rados:
- self._rados.shutdown()
- log.info("Stopped librados.")
def get_latest(self, daemon_type, daemon_name, stat):
data = self.get_counter(daemon_type, daemon_name, stat)[stat]
import logging
import threading
from collections import defaultdict
+import rados
class CPlusPlusHandler(logging.Handler):
self._perf_schema_cache = None
+ # Keep a librados instance for those that need it.
+ self._rados = None
+
def __del__(self):
unconfigure_logger(self, self.module_name)
:return: None
"""
- pass
+ if self._rados:
+ self._rados.shutdown()
def get(self, data_name):
"""
and/or the monitor cluster is down.
"""
- return self._ceph_have_mon_connection()
\ No newline at end of file
+ return self._ceph_have_mon_connection()
+
+ @property
+ def rados(self):
+ """
+ A librados instance to be shared by any classes within
+ this mgr module that want one.
+ """
+ if self._rados:
+ return self._rados
+
+ ctx_capsule = self.get_context()
+ self._rados = rados.Rados(context=ctx_capsule)
+ self._rados.connect()
+
+ return self._rados
+