def create(self, drive_group: DriveGroupSpec) -> str:
logger.debug(f"Processing DriveGroup {drive_group}")
ret = []
- drive_group.osd_id_claims = self.find_destroyed_osds()
- logger.info(f"Found osd claims for drivegroup {drive_group.service_id} -> {drive_group.osd_id_claims}")
+ osd_id_claims = self.find_destroyed_osds()
+ logger.info(f"Found osd claims for drivegroup {drive_group.service_id} -> {osd_id_claims}")
for host, drive_selection in self.prepare_drivegroup(drive_group):
logger.info('Applying %s on host %s...' % (drive_group.service_id, host))
- cmd = self.driveselection_to_ceph_volume(drive_group, drive_selection,
- drive_group.osd_id_claims.get(host, []))
+ cmd = self.driveselection_to_ceph_volume(drive_selection,
+ osd_id_claims.get(host, []))
if not cmd:
logger.debug("No data_devices, skipping DriveGroup: {}".format(drive_group.service_id))
continue
# disable this until https://github.com/ceph/ceph/pull/34835 is merged
env_vars: List[str] = []
ret_msg = self.create_single_host(
- host, cmd, replace_osd_ids=drive_group.osd_id_claims.get(host, []), env_vars=env_vars
+ host, cmd, replace_osd_ids=osd_id_claims.get(host, []), env_vars=env_vars
)
ret.append(ret_msg)
return ", ".join(ret)
-
+
def create_single_host(self, host: str, cmd: str, replace_osd_ids=None, env_vars: Optional[List[str]] = None) -> str:
out, err, code = self._run_ceph_volume_command(host, cmd, env_vars=env_vars)
host_ds_map.append((host, drive_selection))
return host_ds_map
- def driveselection_to_ceph_volume(self, drive_group: DriveGroupSpec,
+ def driveselection_to_ceph_volume(self,
drive_selection: DriveSelection,
osd_id_claims: Optional[List[str]] = None,
preview: bool = False) -> Optional[str]:
- logger.debug(f"Translating DriveGroup <{drive_group}> to ceph-volume command")
- cmd: Optional[str] = translate.to_ceph_volume(drive_group, drive_selection,
+ logger.debug(f"Translating DriveGroup <{drive_selection.spec}> to ceph-volume command")
+ cmd: Optional[str] = translate.to_ceph_volume(drive_selection,
osd_id_claims, preview=preview).run()
logger.debug(f"Resulting ceph-volume cmd: {cmd}")
return cmd
for osdspec in osdspecs:
# populate osd_id_claims
- osdspec.osd_id_claims = self.find_destroyed_osds()
+ osd_id_claims = self.find_destroyed_osds()
# prepare driveselection
for host, ds in self.prepare_drivegroup(osdspec):
continue
# driveselection for host
- cmd = self.driveselection_to_ceph_volume(osdspec,
- ds,
- osdspec.osd_id_claims.get(host, []),
+ cmd = self.driveselection_to_ceph_volume(ds,
+ osd_id_claims.get(host, []),
preview=True)
if not cmd:
logger.debug("No data_devices, skipping DriveGroup: {}".format(
dg = DriveGroupSpec(service_id='test.spec', placement=PlacementSpec(host_pattern='test'), data_devices=DeviceSelection(paths=devices))
ds = DriveSelection(dg, Devices([Device(path) for path in devices]))
preview = preview
- out = cephadm_module.osd_service.driveselection_to_ceph_volume(dg, ds, [], preview)
+ out = cephadm_module.osd_service.driveselection_to_ceph_volume(ds, [], preview)
assert out in exp_command
@mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm(
except ImportError:
pass
-from ceph.deployment.drive_group import DriveGroupSpec
from ceph.deployment.drive_selection.selector import DriveSelection
logger = logging.getLogger(__name__)
class to_ceph_volume(object):
def __init__(self,
- spec, # type: DriveGroupSpec
selection, # type: DriveSelection
osd_id_claims=None, # type: Optional[List[str]]
preview=False # type: bool
):
- self.spec = spec
self.selection = selection
+ self.spec = selection.spec
self.preview = preview
self.osd_id_claims = osd_id_claims
)
inventory = _mk_inventory(_mk_device()*2)
sel = drive_selection.DriveSelection(spec, inventory)
- cmd = translate.to_ceph_volume(spec, sel, []).run()
+ cmd = translate.to_ceph_volume(sel, []).run()
assert cmd == 'lvm batch --no-auto /dev/sda /dev/sdb --yes --no-systemd'
)
inventory = _mk_inventory(_mk_device(rotational=True)*2 + _mk_device(rotational=False)*2)
sel = drive_selection.DriveSelection(spec, inventory)
- cmd = translate.to_ceph_volume(spec, sel, []).run()
+ cmd = translate.to_ceph_volume(sel, []).run()
assert cmd == ('lvm batch --no-auto /dev/sda /dev/sdb '
'--db-devices /dev/sdc /dev/sdd --yes --no-systemd')
_mk_device(size="10.0 GB", rotational=False)*2
)
sel = drive_selection.DriveSelection(spec, inventory)
- cmd = translate.to_ceph_volume(spec, sel, []).run()
+ cmd = translate.to_ceph_volume(sel, []).run()
assert cmd == ('lvm batch --no-auto /dev/sda /dev/sdb '
'--db-devices /dev/sdc /dev/sdd --wal-devices /dev/sde /dev/sdf '
'--yes --no-systemd')
_mk_device(size="10.0 GB", rotational=False)*2
)
sel = drive_selection.DriveSelection(spec, inventory)
- cmd = translate.to_ceph_volume(spec, sel, []).run()
+ cmd = translate.to_ceph_volume(sel, []).run()
assert cmd == ('lvm batch --no-auto /dev/sda /dev/sdb '
'--db-devices /dev/sdc /dev/sdd '
'--wal-devices /dev/sde /dev/sdf --dmcrypt '
_mk_device(size="10.0 GB", rotational=False)*2
)
sel = drive_selection.DriveSelection(spec, inventory)
- cmd = translate.to_ceph_volume(spec, sel, []).run()
+ cmd = translate.to_ceph_volume(sel, []).run()
assert cmd == ('lvm batch --no-auto /dev/sda /dev/sdb '
'--db-devices /dev/sdc /dev/sdd --wal-devices /dev/sde /dev/sdf '
'--block-wal-size 500M --block-db-size 500M --dmcrypt '
)
inventory = _mk_inventory(_mk_device(rotational=True)*2)
sel = drive_selection.DriveSelection(spec, inventory)
- cmd = translate.to_ceph_volume(spec, sel, []).run()
+ cmd = translate.to_ceph_volume(sel, []).run()
assert cmd == 'lvm batch --no-auto /dev/sda /dev/sdb --filestore --yes --no-systemd'
)
inventory = _mk_inventory(_mk_device(rotational=True)*2 + _mk_device(rotational=False)*2)
sel = drive_selection.DriveSelection(spec, inventory)
- cmd = translate.to_ceph_volume(spec, sel, []).run()
+ cmd = translate.to_ceph_volume(sel, []).run()
assert cmd == ('lvm batch --no-auto /dev/sdc /dev/sdd '
'--journal-size 500M --journal-devices /dev/sda /dev/sdb '
'--filestore --yes --no-systemd')
)
inventory = _mk_inventory(_mk_device(rotational=True)*2)
sel = drive_selection.DriveSelection(spec, inventory)
- cmd = translate.to_ceph_volume(spec, sel, ['0', '1']).run()
+ cmd = translate.to_ceph_volume(sel, ['0', '1']).run()
assert cmd == 'lvm batch --no-auto /dev/sda /dev/sdb --osd-ids 0 1 --yes --no-systemd'