def create_pool_with_unique_name(self, pg_num=16,
erasure_code_profile_name=None,
- min_size=None):
+ min_size=None,
+ erasure_code_use_hacky_overwrites=False):
"""
Create a pool named unique_pool_X where X is unique.
"""
name,
pg_num,
erasure_code_profile_name=erasure_code_profile_name,
- min_size=min_size)
+ min_size=min_size,
+ erasure_code_use_hacky_overwrites=erasure_code_use_hacky_overwrites)
return name
@contextlib.contextmanager
def create_pool(self, pool_name, pg_num=16,
erasure_code_profile_name=None,
- min_size=None):
+ min_size=None,
+ erasure_code_use_hacky_overwrites=False):
"""
Create a pool named from the pool_name parameter.
:param pool_name: name of the pool being created.
:param pg_num: initial number of pgs.
:param erasure_code_profile_name: if set and !None create an
erasure coded pool using the profile
+ :param erasure_code_use_hacky_overwrites: if true, use the hacky
+ overwrites mode
"""
with self.lock:
assert isinstance(pool_name, basestring)
'osd', 'pool', 'set', pool_name,
'min_size',
str(min_size))
+ if erasure_code_use_hacky_overwrites:
+ self.raw_cluster_cmd(
+ 'osd', 'pool', 'set', pool_name,
+ 'debug_white_box_testing_ec_overwrites',
+ 'true')
self.pools[pool_name] = pg_num
time.sleep(1)
rollback: 2
snap_remove: 0
ec_pool: create an ec pool, defaults to False
+ erasure_code_use_hacky_overwrites: use the whitebox
+ testing experimental
+ overwrites mode
erasure_code_profile:
name: teuthologyprofile
k: 2
'{tdir}/archive/coverage'.format(tdir=testdir),
'ceph_test_rados']
if config.get('ec_pool', False):
- args.extend(['--ec-pool'])
+ args.extend(['--no-omap'])
+ if config.get('erasure_code_use_hacky_overwrites', False):
+ args.extend(['--no-sparse'])
+ else:
+ args.extend(['--ec-pool'])
if config.get('write_fadvise_dontneed', False):
args.extend(['--write-fadvise-dontneed'])
if config.get('pool_snaps', False):
if not pool and existing_pools:
pool = existing_pools.pop()
else:
- pool = manager.create_pool_with_unique_name(erasure_code_profile_name=profile_name)
+ pool = manager.create_pool_with_unique_name(
+ erasure_code_profile_name=profile_name,
+ erasure_code_use_hacky_overwrites=
+ config.get('erasure_code_use_hacky_overwrites', False)
+ )
created_pools.append(pool)
if config.get('fast_read', False):
manager.raw_cluster_cmd(