From: Sage Weil Date: Tue, 30 Nov 2021 04:25:43 +0000 (-0500) Subject: python-common/ceph/deployment/drive_group: fix 'orch ls --format yaml' X-Git-Tag: v17.1.0~341^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F44140%2Fhead;p=ceph.git python-common/ceph/deployment/drive_group: fix 'orch ls --format yaml' In f76c02a658ed1de54a380381932bb58b6ab91d41 we may leave out the placement key when it is empty. If we take that path, we need to tolerate specs that are missing that key. Fixes: f76c02a658ed1de54a380381932bb58b6ab91d41 Signed-off-by: Sage Weil --- diff --git a/src/python-common/ceph/deployment/drive_group.py b/src/python-common/ceph/deployment/drive_group.py index 0befac1169e..8eb18cbdc04 100644 --- a/src/python-common/ceph/deployment/drive_group.py +++ b/src/python-common/ceph/deployment/drive_group.py @@ -257,7 +257,7 @@ class DriveGroupSpec(ServiceSpec): try: args['placement'] = PlacementSpec.from_json(json_drive_group.pop('placement')) except KeyError: - raise DriveGroupValidationError('OSD spec needs a `placement` key.') + args['placement'] = PlacementSpec() args['service_type'] = json_drive_group.pop('service_type', 'osd') diff --git a/src/python-common/ceph/tests/test_drive_group.py b/src/python-common/ceph/tests/test_drive_group.py index 0199a451938..282f35a7cf9 100644 --- a/src/python-common/ceph/tests/test_drive_group.py +++ b/src/python-common/ceph/tests/test_drive_group.py @@ -38,10 +38,6 @@ def test_DriveGroup(test_input): re.escape('Service Spec is not an (JSON or YAML) object. got "None"'), '' ), - ( - "Failed to validate Drive Group: OSD spec needs a `placement` key.", - '{}' - ), ( 'Failed to validate Drive Group: DeviceSelection cannot be empty', """ service_type: osd