From 9f469e2c5a224ddfe0c5c0c42f7d3e1c637fff9c Mon Sep 17 00:00:00 2001 From: Andrew Schoen Date: Wed, 14 Mar 2018 11:47:07 -0500 Subject: [PATCH] ceph_volume: objectstore is now optional except when state is present Signed-off-by: Andrew Schoen --- library/ceph_volume.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/library/ceph_volume.py b/library/ceph_volume.py index c6f55830a..54707920c 100644 --- a/library/ceph_volume.py +++ b/library/ceph_volume.py @@ -28,7 +28,8 @@ options: objectstore: description: - The objectstore of the OSD, either filestore or bluestore - required: true + - Required if state is 'present' + required: false choices: ['bluestore', 'filestore'] state: description: @@ -145,7 +146,7 @@ def get_wal(wal, wal_vg): def create_osd(module): cluster = module.params['cluster'] - objectstore = module.params['objectstore'] + objectstore = module.params.get('objectstore') data = module.params['data'] data_vg = module.params.get('data_vg', None) journal = module.params.get('journal', None) @@ -157,6 +158,9 @@ def create_osd(module): crush_device_class = module.params.get('crush_device_class', None) dmcrypt = module.params['dmcrypt'] + if not objectstore: + module.fail_json(msg="The objectstore param is required if state is 'present'. Choices are 'bluestore' or 'filestore'.", changed=False) + cmd = [ 'ceph-volume', '--cluster', @@ -346,7 +350,7 @@ def remove_osd(module): def run_module(): module_args = dict( cluster=dict(type='str', required=False, default='ceph'), - objectstore=dict(type='str', required=True), + objectstore=dict(type='str', required=False, choices=['bluestore', 'filestore']), state=dict(type='str', required=True, choices=['present', 'absent'], default='present'), data=dict(type='str', required=True), data_vg=dict(type='str', required=False), -- 2.39.5