X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fpybind%2Fmgr%2Flocalpool%2Fmodule.py;fp=src%2Fceph%2Fsrc%2Fpybind%2Fmgr%2Flocalpool%2Fmodule.py;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=0abdbfbc741ae2bd1c0d51b744a47fdd6b458cd4;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/pybind/mgr/localpool/module.py b/src/ceph/src/pybind/mgr/localpool/module.py deleted file mode 100644 index 0abdbfb..0000000 --- a/src/ceph/src/pybind/mgr/localpool/module.py +++ /dev/null @@ -1,92 +0,0 @@ -from mgr_module import MgrModule, CommandResult -import json -import threading - -class Module(MgrModule): - def __init__(self, *args, **kwargs): - super(Module, self).__init__(*args, **kwargs) - self.serve_event = threading.Event() - - def notify(self, notify_type, notify_id): - if notify_type == 'osd_map': - self.handle_osd_map() - - def handle_osd_map(self): - """ - Check pools on each OSDMap change - """ - subtree_type = self.get_config('subtree') or 'rack' - failure_domain = self.get_config('failure_domain') or 'host' - pg_num = self.get_config('pg_num') or '128' - num_rep = self.get_config('num_rep') or '3' - min_size = self.get_config('min_size') - prefix = self.get_config('prefix') or 'by-' + subtree_type + '-' - - osdmap = self.get("osd_map") - lpools = [] - for pool in osdmap['pools']: - if pool['pool_name'].find(prefix) == 0: - lpools.append(pool['pool_name']) - - self.log.debug('localized pools = %s', lpools) - subtrees = [] - tree = self.get('osd_map_tree') - for node in tree['nodes']: - if node['type'] == subtree_type: - subtrees.append(node['name']) - pool_name = prefix + node['name'] - if pool_name not in lpools: - self.log.info('Creating localized pool %s', pool_name) - # - result = CommandResult("") - self.send_command(result, "mon", "", json.dumps({ - "prefix": "osd crush rule create-replicated", - "format": "json", - "name": pool_name, - "root": node['name'], - "type": failure_domain, - }), "") - r, outb, outs = result.wait() - - result = CommandResult("") - self.send_command(result, "mon", "", json.dumps({ - "prefix": "osd pool create", - "format": "json", - "pool": pool_name, - 'rule': pool_name, - 'erasure_code_profile': pool_name, - "pool_type": 'replicated', - 'pg_num': str(pg_num), - }), "") - r, outb, outs = result.wait() - - result = CommandResult("") - self.send_command(result, "mon", "", json.dumps({ - "prefix": "osd pool set", - "format": "json", - "pool": pool_name, - 'var': 'size', - "val": str(num_rep), - }), "") - r, outb, outs = result.wait() - - if min_size: - result = CommandResult("") - self.send_command(result, "mon", "", json.dumps({ - "prefix": "osd pool set", - "format": "json", - "pool": pool_name, - 'var': 'min_size', - "val": str(min_size), - }), "") - r, outb, outs = result.wait() - - # TODO remove pools for hosts that don't exist? - - def serve(self): - self.handle_osd_map() - self.serve_event.wait() - self.serve_event.clear() - - def shutdown(self): - self.serve_event.set()