return cmd
-def create_profile(module, name, k, m, stripe_unit, cluster='ceph', force=False, container_image=None):
+def create_profile(module, name, k, m, stripe_unit, crush_root, crush_device_class, cluster='ceph', force=False, container_image=None):
'''
Create a profile
'''
args = ['set', name, 'k={}'.format(k), 'm={}'.format(m)]
if stripe_unit:
args.append('stripe_unit={}'.format(stripe_unit))
+ if crush_root:
+ args.append('crush-root={}'.format(crush_root))
+ if crush_device_class:
+ args.append('crush-device-class={}'.format(crush_device_class))
if force:
args.append('--force')
state=dict(type='str', required=False,
choices=['present', 'absent'], default='present'),
stripe_unit=dict(type='str', required=False),
+ crush_root=dict(type='str', required=False),
+ crush_device_class=dict(type='str', required=False),
k=dict(type='str', required=False),
m=dict(type='str', required=False),
)
cluster = module.params.get('cluster')
state = module.params.get('state')
stripe_unit = module.params.get('stripe_unit')
+ crush_root = module.params.get('crush_root')
+ crush_device_class = module.params.get('crush_device_class')
k = module.params.get('k')
m = module.params.get('m')
current_profile = json.loads(out)
if current_profile['k'] != k or \
current_profile['m'] != m or \
- current_profile.get('stripe_unit', stripe_unit) != stripe_unit:
+ current_profile.get('stripe_unit', stripe_unit) != stripe_unit or \
+ current_profile.get('crush_root', crush_root) != crush_root or \
+ current_profile.get('crush_device_class', crush_device_class) != crush_device_class:
rc, cmd, out, err = exec_command(module,
create_profile(module,
name,
k,
m,
stripe_unit,
+ crush_root,
+ crush_device_class,
cluster,
force=True, container_image=container_image))
changed = True
k,
m,
stripe_unit,
+ crush_root,
+ crush_device_class,
cluster,
container_image=container_image))
if rc == 0:
assert ceph_ec_profile.get_profile(self.fake_module, self.fake_name) == expected_cmd
- @pytest.mark.parametrize("stripe_unit,force", [(False, False),
- (32, True),
- (False, True),
- (32, False)])
- def test_create_profile(self, stripe_unit, force):
+ @pytest.mark.parametrize("stripe_unit,crush_root,crush_device_class,force", [(8192, None, None, True),
+ (8192, None, None, False),
+ (8192, None, 'hdd', True),
+ (8192, None, 'hdd', False),
+ (8192, 'hdd', None, True),
+ (8192, 'hdd', None, False),
+ (8192, 'hdd', 'hdd', True),
+ (8192, 'hdd', 'hdd', False),
+ (None, None, None, True),
+ (None, None, None, False),
+ (None, None, 'hdd', True),
+ (None, None, 'hdd', False),
+ (None, 'hdd', None, True),
+ (None, 'hdd', None, False),
+ (None, 'hdd', 'hdd', True),
+ (None, 'hdd', 'hdd', False)])
+ def test_create_profile(self, stripe_unit, crush_root, crush_device_class, force):
expected_cmd = [
self.fake_binary,
'-n', 'client.admin',
]
if stripe_unit:
expected_cmd.append('stripe_unit={}'.format(stripe_unit))
+ if crush_root:
+ expected_cmd.append('crush-root={}'.format(crush_root))
+ if crush_device_class:
+ expected_cmd.append('crush-device-class={}'.format(crush_device_class))
if force:
expected_cmd.append('--force')
self.fake_k,
self.fake_m,
stripe_unit,
+ crush_root,
+ crush_device_class,
self.fake_cluster,
force) == expected_cmd