예제 #1
0
    def __init__(self, *args, **kwargs):
        super(Module, self).__init__(*args, **kwargs)
        _global_instance['plugin'] = self
        self.log.info("Constructing module {0}: instance {1}".format(
            __name__, _global_instance))

        self.log_primed = False
        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 = {}

        # Stateful instance of RbdPoolLs, hold cached list of RBD
        # pools
        self.rbd_pool_ls = RbdPoolLs(self)

        # Stateful instance of RbdISCSI
        self.rbd_iscsi = rbd_iscsi.Controller(self)

        # Stateful instance of RbdMirroring, hold cached results.
        self.rbd_mirroring = rbd_mirroring.Controller(self)

        # Stateful instances of CephFSClients, hold cached results.  Key to
        # dict is FSCID
        self.cephfs_clients = {}

        # A short history of pool df stats
        self.pool_stats = defaultdict(
            lambda: defaultdict(lambda: collections.deque(maxlen=10)))
예제 #2
0
    def __init__(self, *args, **kwargs):
        super(Module, self).__init__(*args, **kwargs)
        _global_instance['plugin'] = self
        self.log.info("Constructing module {0}: instance {1}".format(
            __name__, _global_instance))

        self.log_primed = False
        self.log_buffer = collections.deque(maxlen=LOG_BUFFER_SIZE)
        self.audit_buffer = collections.deque(maxlen=LOG_BUFFER_SIZE)

        # Stateful instances of RbdLs, hold cached results.  Key to dict
        # is pool name.
        self.rbd_ls = {}

        # Stateful instance of RbdPoolLs, hold cached list of RBD
        # pools
        self.rbd_pool_ls = RbdPoolLs(self)

        # Stateful instance of RbdISCSI
        self.rbd_iscsi = rbd_iscsi.Controller(self)

        # Stateful instance of RbdMirroring, hold cached results.
        self.rbd_mirroring = rbd_mirroring.Controller(self)

        # Stateful instances of CephFSClients, hold cached results.  Key to
        # dict is FSCID
        self.cephfs_clients = {}
         
        # Stateful instance of RGW
        self.rgw_daemons = RGWDaemons(self)

        # A short history of pool df stats
        self.pool_stats = defaultdict(lambda: defaultdict(
            lambda: collections.deque(maxlen=10)))

        # A prefix for all URLs to use the dashboard with a reverse http proxy
        self.url_prefix = ''