objectstore = module.params['objectstore']
batch_devices = module.params.get('batch_devices', None)
crush_device_class = module.params.get('crush_device_class', None)
+ journal_devices = module.params.get('journal_devices', None)
journal_size = module.params.get('journal_size', None)
block_db_size = module.params.get('block_db_size', None)
block_db_devices = module.params.get('block_db_devices', None)
cmd.extend(batch_devices)
+ if journal_devices and objectstore == 'filestore':
+ cmd.extend(['--journal-devices', ' '.join(journal_devices)])
+
if block_db_devices and objectstore == 'bluestore':
cmd.extend(['--db-devices', ' '.join(block_db_devices)])
batch_devices=dict(type='list', required=False, default=[]),
osds_per_device=dict(type='int', required=False, default=1),
journal_size=dict(type='str', required=False, default='5120'),
+ journal_devices=dict(type='str', required=False, default=False),
block_db_size=dict(type='str', required=False, default='-1'),
block_db_devices=dict(type='list', required=False, default=[]),
wal_devices=dict(type='list', required=False, default=[]),
block_db_size: "{{ block_db_size }}"
block_db_devices: "{{ dedicated_devices | unique if dedicated_devices | length > 0 else omit }}"
wal_devices: "{{ bluestore_wal_devices | unique if bluestore_wal_devices | length > 0 else omit }}"
+ journal_devices: "{{ dedicated_devices | unique if dedicated_devices | length > 0 else omit }}"
action: "batch"
environment:
CEPH_VOLUME_DEBUG: 1
CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment else None }}"
CEPH_CONTAINER_BINARY: "{{ container_binary }}"
PYTHONIOENCODING: utf-8
- when: _devices | default([]) | length > 0
\ No newline at end of file
+ when: _devices | default([]) | length > 0
result = ceph_volume.batch(
fake_module, fake_container_image)
assert result == expected_command_list
+
+ def test_batch_filestore_with_dedicated_journal(self):
+ fake_module = MagicMock()
+ fake_module.params = {'objectstore': 'filestore',
+ 'journal_size': '100',
+ 'cluster': 'ceph',
+ 'batch_devices': ["/dev/sda", "/dev/sdb"],
+ 'journal_devices': ["/dev/sdc"]}
+
+ fake_container_image = None
+ expected_command_list = ['ceph-volume',
+ '--cluster',
+ 'ceph',
+ 'lvm',
+ 'batch',
+ '--filestore',
+ '--yes',
+ '--journal-size',
+ '100',
+ '/dev/sda',
+ '/dev/sdb',
+ '--journal-devices',
+ '/dev/sdc']
+ result = ceph_volume.batch(
+ fake_module, fake_container_image)
+ assert result == expected_command_list