Add per OSD crush_device_class definition
This patch introduces a per osd crush_device_class definition in the
DriveGroup spec. The Device object is extended to support a
crush_device_class parameter which is processed by ceph-volume when
drives are prepared in batch mode. According to the per osd defined
crush device classes, drives are collected and grouped in a dict that is
used to produce a set of ceph-volume commands that eventually apply (if
defined) the right device class. The test_drive_group unit tests are
also extended to make sure we're not breaking compatibility with the
default definition and the new syntax is validated, raising an exception
if it's violated.
Fixes: https://tracker.ceph.com/issues/58184
Signed-off-by: Francesco Pantano <fpantano@redhat.com>
(cherry picked from commit
6c6cb2f5130dbcf8e42cf03666173948411fc92b)
Conflicts:
src/python-common/ceph/deployment/drive_group.py