|
16 | 16 | mlogger = terminal.MultiLogger(__name__) |
17 | 17 |
|
18 | 18 |
|
| 19 | +def zap_device(path: str) -> None: |
| 20 | + """Remove any existing filesystem signatures. |
| 21 | +
|
| 22 | + Args: |
| 23 | + path (str): The path to the device to zap. |
| 24 | + """ |
| 25 | + zap_bluestore(path) |
| 26 | + wipefs(path) |
| 27 | + zap_data(path) |
| 28 | + |
| 29 | +def zap_bluestore(path: str) -> None: |
| 30 | + """Remove all BlueStore signature on a device. |
| 31 | +
|
| 32 | + Args: |
| 33 | + path (str): The path to the device to remove BlueStore signatures from. |
| 34 | + """ |
| 35 | + terminal.info(f'Removing all BlueStore signature on {path} if any...') |
| 36 | + process.run([ |
| 37 | + 'ceph-bluestore-tool', |
| 38 | + 'zap-device', |
| 39 | + '--dev', |
| 40 | + path, |
| 41 | + '--yes-i-really-really-mean-it' |
| 42 | + ]) |
| 43 | + |
19 | 44 | def wipefs(path): |
20 | 45 | """ |
21 | 46 | Removes the filesystem from an lv or partition. |
@@ -170,8 +195,7 @@ def zap_lv(self, device): |
170 | 195 | device.vg_name}) |
171 | 196 | self.unmount_lv(lv) |
172 | 197 |
|
173 | | - wipefs(device.path) |
174 | | - zap_data(device.path) |
| 198 | + zap_device(device.path) |
175 | 199 |
|
176 | 200 | if self.args.destroy: |
177 | 201 | lvs = api.get_lvs(filters={'vg_name': device.vg_name}) |
@@ -217,8 +241,7 @@ def zap_partition(self, device): |
217 | 241 | mlogger.info("Unmounting %s", device.path) |
218 | 242 | system.unmount(device.path) |
219 | 243 |
|
220 | | - wipefs(device.path) |
221 | | - zap_data(device.path) |
| 244 | + zap_device(device.path) |
222 | 245 |
|
223 | 246 | if self.args.destroy: |
224 | 247 | mlogger.info("Destroying partition since --destroy was used: %s" % device.path) |
@@ -263,8 +286,7 @@ def zap_raw_device(self, device): |
263 | 286 | for part_name in device.sys_api.get('partitions', {}).keys(): |
264 | 287 | self.zap_partition(Device('/dev/%s' % part_name)) |
265 | 288 |
|
266 | | - wipefs(device.path) |
267 | | - zap_data(device.path) |
| 289 | + zap_device(device.path) |
268 | 290 |
|
269 | 291 | @decorators.needs_root |
270 | 292 | def zap(self, devices=None): |
|
0 commit comments