]> git.proxmox.com Git - ceph.git/blame - ceph/qa/tasks/cephfs_upgrade_snap.py
Import ceph 15.2.8
[ceph.git] / ceph / qa / tasks / cephfs_upgrade_snap.py
CommitLineData
11fdf7f2
TL
1"""
2Upgrade cluster snap format.
3"""
4
5import logging
6import time
7
8from tasks.cephfs.filesystem import Filesystem
9
10log = logging.getLogger(__name__)
11
12def task(ctx, config):
13 """
14 Upgrade CephFS file system snap format.
15 """
16
17 if config is None:
18 config = {}
19 assert isinstance(config, dict), \
20 'snap-upgrade task only accepts a dict for configuration'
21
22 fs = Filesystem(ctx)
23
24 mds_map = fs.get_mds_map()
25 assert(mds_map['max_mds'] == 1)
26
27 json = fs.rank_tell(["scrub", "start", "/", "force", "recursive", "repair"])
28 if not json or json['return_code'] == 0:
29 log.info("scrub / completed")
30 else:
31 log.info("scrub / failed: {}".format(json))
32
33 json = fs.rank_tell(["scrub", "start", "~mdsdir", "force", "recursive", "repair"])
34 if not json or json['return_code'] == 0:
35 log.info("scrub ~mdsdir completed")
36 else:
37 log.info("scrub / failed: {}".format(json))
38
39 for i in range(0, 10):
40 mds_map = fs.get_mds_map()
41 if (mds_map['flags'] & (1<<1)) != 0 and (mds_map['flags'] & (1<<4)) != 0:
42 break
43 time.sleep(10)
44 assert((mds_map['flags'] & (1<<1)) != 0) # Test CEPH_MDSMAP_ALLOW_SNAPS
45 assert((mds_map['flags'] & (1<<4)) != 0) # Test CEPH_MDSMAP_ALLOW_MULTIMDS_SNAPS