]>
git.proxmox.com Git - ceph.git/blob - ceph/qa/tasks/util/rados.py
2d9d263d45f09f1c1dc033b215a634656d6e7aba
3 from teuthology
import misc
as teuthology
5 log
= logging
.getLogger(__name__
)
7 def rados(ctx
, remote
, cmd
, wait
=True, check_status
=False):
8 testdir
= teuthology
.get_testdir(ctx
)
9 log
.info("rados %s" % ' '.join(cmd
))
13 '{tdir}/archive/coverage'.format(tdir
=testdir
),
19 check_status
=check_status
,
23 return proc
.exitstatus
27 def create_ec_pool(remote
, name
, profile_name
, pgnum
, profile
={}, cluster_name
="ceph"):
28 remote
.run(args
=['sudo', 'ceph'] +
29 cmd_erasure_code_profile(profile_name
, profile
) + ['--cluster', cluster_name
])
31 'sudo', 'ceph', 'osd', 'pool', 'create', name
,
32 str(pgnum
), str(pgnum
), 'erasure', profile_name
, '--cluster', cluster_name
35 def create_replicated_pool(remote
, name
, pgnum
, cluster_name
="ceph"):
37 'sudo', 'ceph', 'osd', 'pool', 'create', name
, str(pgnum
), str(pgnum
), '--cluster', cluster_name
40 def create_cache_pool(remote
, base_name
, cache_name
, pgnum
, size
, cluster_name
="ceph"):
42 'sudo', 'ceph', 'osd', 'pool', 'create', cache_name
, str(pgnum
), '--cluster', cluster_name
45 'sudo', 'ceph', 'osd', 'tier', 'add-cache', base_name
, cache_name
,
46 str(size
), '--cluster', cluster_name
49 def cmd_erasure_code_profile(profile_name
, profile
):
51 Return the shell command to run to create the erasure code profile
52 described by the profile parameter.
54 :param profile_name: a string matching [A-Za-z0-9-_.]+
55 :param profile: a map whose semantic depends on the erasure code plugin
56 :returns: a shell command as an array suitable for Remote.run
58 If profile is {}, it is replaced with
60 { 'k': '2', 'm': '1', 'ruleset-failure-domain': 'osd'}
62 for backward compatibility. In previous versions of teuthology,
63 these values were hardcoded as function arguments and some yaml
64 files were designed with these implicit values. The teuthology
65 code should not know anything about the erasure code profile
66 content or semantic. The valid values and parameters are outside
74 'ruleset-failure-domain': 'osd'
77 'osd', 'erasure-code-profile', 'set',
79 ] + [ str(key
) + '=' + str(value
) for key
, value
in profile
.iteritems() ]