]>
git.proxmox.com Git - ceph.git/blob - ceph/src/python-common/ceph/deployment/translate.py
a09e7126971849e296c757805a1632676bafe998
4 from typing
import Optional
8 from ceph
.deployment
.drive_group
import DriveGroupSpec
9 from ceph
.deployment
.drive_selection
.selector
import DriveSelection
11 logger
= logging
.getLogger(__name__
)
14 class to_ceph_volume(object):
17 spec
, # type: DriveGroupSpec
18 selection
# type: DriveSelection
22 self
.selection
= selection
25 # type: () -> Optional[str]
26 """ Generate ceph-volume commands based on the DriveGroup filters """
27 data_devices
= [x
.path
for x
in self
.selection
.data_devices()]
28 db_devices
= [x
.path
for x
in self
.selection
.db_devices()]
29 wal_devices
= [x
.path
for x
in self
.selection
.wal_devices()]
30 journal_devices
= [x
.path
for x
in self
.selection
.journal_devices()]
35 if self
.spec
.objectstore
== 'filestore':
36 cmd
= "lvm batch --no-auto"
38 cmd
+= " {}".format(" ".join(data_devices
))
40 if self
.spec
.journal_size
:
41 cmd
+= " --journal-size {}".format(self
.spec
.journal_size
)
44 cmd
+= " --journal-devices {}".format(
45 ' '.join(journal_devices
))
50 if self
.spec
.objectstore
== 'bluestore' and \
51 not self
.spec
.encrypted
and \
52 not self
.spec
.osds_per_device
and \
53 len(data_devices
) == 1 and \
56 cmd
= "lvm prepare --bluestore --data %s --no-systemd" % (' '.join(data_devices
))
59 if self
.spec
.objectstore
== 'bluestore':
61 cmd
= "lvm batch --no-auto {}".format(" ".join(data_devices
))
64 cmd
+= " --db-devices {}".format(" ".join(db_devices
))
67 cmd
+= " --wal-devices {}".format(" ".join(wal_devices
))
69 if self
.spec
.block_wal_size
:
70 cmd
+= " --block-wal-size {}".format(self
.spec
.block_wal_size
)
72 if self
.spec
.block_db_size
:
73 cmd
+= " --block-db-size {}".format(self
.spec
.block_db_size
)
75 if self
.spec
.encrypted
:
78 if self
.spec
.osds_per_device
:
79 cmd
+= " --osds-per-device {}".format(self
.spec
.osds_per_device
)
82 cmd
+= " --no-systemd"