]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
osd: add journal option in ceph_volume call (batch)
authorGuillaume Abrioux <gabrioux@redhat.com>
Fri, 28 Feb 2020 18:59:22 +0000 (19:59 +0100)
committerDimitri Savineau <savineau.dimitri@gmail.com>
Fri, 28 Feb 2020 22:29:59 +0000 (17:29 -0500)
This commit adds the journal option to the ceph_volume call when
scenario is lvm batch

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
library/ceph_volume.py
roles/ceph-osd/tasks/scenarios/lvm-batch.yml
tests/library/test_ceph_volume.py

index 9468a2012c2df7f4306d2e62d1b582e42d32594c..1bdd7c7f486a0049822cba4d0570f7ba50099c84 100644 (file)
@@ -277,6 +277,7 @@ def batch(module, container_image):
     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)
@@ -319,6 +320,9 @@ def batch(module, container_image):
 
     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)])
 
@@ -512,6 +516,7 @@ def run_module():
         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=[]),
index 5826af0f29de2f0afea5b097c398f553427db4d1..a34400e7ac0ea2b250facebefc2cd5a45a157920 100644 (file)
     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
index 1254c1c7a4c48cb799321be65f89efd3b1472a50..0802045509882246ee98f6a1e1cd00e58bef455c 100644 (file)
@@ -344,3 +344,29 @@ class TestCephVolumeModule(object):
         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