]>
Commit | Line | Data |
---|---|---|
1 | """ | |
2 | Utilities to control systemd units | |
3 | """ | |
4 | from ceph_volume import process | |
5 | ||
6 | ||
7 | def start(unit): | |
8 | process.run(['systemctl', 'start', unit]) | |
9 | ||
10 | ||
11 | def stop(unit): | |
12 | process.run(['systemctl', 'stop', unit]) | |
13 | ||
14 | ||
15 | def enable(unit): | |
16 | process.run(['systemctl', 'enable', unit]) | |
17 | ||
18 | ||
19 | def disable(unit): | |
20 | process.run(['systemctl', 'disable', unit]) | |
21 | ||
22 | ||
23 | def mask(unit): | |
24 | process.run(['systemctl', 'mask', unit]) | |
25 | ||
26 | ||
27 | def start_osd(id_): | |
28 | return start(osd_unit % id_) | |
29 | ||
30 | ||
31 | def stop_osd(id_): | |
32 | return stop(osd_unit % id_) | |
33 | ||
34 | ||
35 | def enable_osd(id_): | |
36 | return enable(osd_unit % id_) | |
37 | ||
38 | ||
39 | def disable_osd(id_): | |
40 | return disable(osd_unit % id_) | |
41 | ||
42 | ||
43 | def enable_volume(id_, fsid, device_type='lvm'): | |
44 | return enable(volume_unit % (device_type, id_, fsid)) | |
45 | ||
46 | ||
47 | def mask_ceph_disk(): | |
48 | # systemctl allows using a glob like '*' for masking, but there was a bug | |
49 | # in that it wouldn't allow this for service templates. This means that | |
50 | # masking ceph-disk@* will not work, so we must link the service directly. | |
51 | # /etc/systemd takes precendence regardless of the location of the unit | |
52 | process.run( | |
53 | ['ln', '-sf', '/dev/null', '/etc/systemd/system/ceph-disk@.service'] | |
54 | ) | |
55 | ||
56 | ||
57 | # | |
58 | # templates | |
59 | # | |
60 | ||
61 | osd_unit = "ceph-osd@%s" | |
62 | ceph_disk_unit = "ceph-disk@%s" | |
63 | volume_unit = "ceph-volume@%s-%s-%s" |