]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
python-common/drive_group: handle fields outside of 'spec' even when 'spec' is provided
authorAdam King <adking@redhat.com>
Wed, 31 May 2023 17:08:35 +0000 (13:08 -0400)
committerAdam King <adking@redhat.com>
Wed, 31 May 2023 17:17:05 +0000 (13:17 -0400)
commit12901f617d9f21dcc4de9b039b7ab6484fbc99ca
tree1977fb32f9701cb0294b1ddb4d2bc68c5350dd30
parenta5483da7c785a756bfc477d37e2dbed23be8539c
python-common/drive_group: handle fields outside of 'spec' even when 'spec' is provided

Otherwise certain specs such as

service_type: osd
service_id: xxx
service_name: osd.xxx
placement:
  hosts:
  - vm-00
spec:
  osds_per_device: 2
data_devices:
  paths:
  - /dev/vde

fail to apply with

Error EINVAL: ServiceSpec: 'dict' object has no attribute 'validate'

which is not a useful error message. This is caused by the
spec assuming all osd specific fields are either defined
in the 'spec' section or outside of it, but not mixed in.
We could also just consider these specs to be invalid
and just raise a better error message, but it seems easier
to make the minor adjustment for it to work, given there doesn't
seem to be an issue with mixing the styles for specs for
other service types.

Fixes: https://tracker.ceph.com/issues/61533
Signed-off-by: Adam King <adking@redhat.com>
src/python-common/ceph/deployment/drive_group.py
src/python-common/ceph/tests/test_drive_group.py