X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fceph-volume%2Fceph_volume%2Fdevices%2Flvm%2Fzap.py;fp=src%2Fceph%2Fsrc%2Fceph-volume%2Fceph_volume%2Fdevices%2Flvm%2Fzap.py;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=4b19efebab46cd683db1d12bd6c48bf1def948a7;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/ceph-volume/ceph_volume/devices/lvm/zap.py b/src/ceph/src/ceph-volume/ceph_volume/devices/lvm/zap.py deleted file mode 100644 index 4b19efe..0000000 --- a/src/ceph/src/ceph-volume/ceph_volume/devices/lvm/zap.py +++ /dev/null @@ -1,106 +0,0 @@ -import argparse -import logging - -from textwrap import dedent - -from ceph_volume import decorators, terminal, process -from ceph_volume.api import lvm as api - -logger = logging.getLogger(__name__) - - -def wipefs(path): - """ - Removes the filesystem from an lv or partition. - """ - process.run([ - 'wipefs', - '--all', - path - ]) - - -def zap_data(path): - """ - Clears all data from the given path. Path should be - an absolute path to an lv or partition. - - 10M of data is written to the path to make sure that - there is no trace left of any previous Filesystem. - """ - process.run([ - 'dd', - 'if=/dev/zero', - 'of={path}'.format(path=path), - 'bs=1M', - 'count=10', - ]) - - -class Zap(object): - - help = 'Removes all data and filesystems from a logical volume or partition.' - - def __init__(self, argv): - self.argv = argv - - @decorators.needs_root - def zap(self, args): - device = args.device - lv = api.get_lv_from_argument(device) - if lv: - # we are zapping a logical volume - path = lv.lv_path - else: - # we are zapping a partition - #TODO: ensure device is a partition - path = device - - logger.info("Zapping: %s", path) - terminal.write("Zapping: %s" % path) - - wipefs(path) - zap_data(path) - - if lv: - # remove all lvm metadata - lv.clear_tags() - - terminal.success("Zapping successful for: %s" % path) - - def main(self): - sub_command_help = dedent(""" - Zaps the given logical volume or partition. If given a path to a logical - volume it must be in the format of vg/lv. Any filesystems present - on the given lv or partition will be removed and all data will be purged. - - However, the lv or partition will be kept intact. - - Example calls for supported scenarios: - - Zapping a logical volume: - - ceph-volume lvm zap {vg name/lv name} - - Zapping a partition: - - ceph-volume lvm zap /dev/sdc1 - - """) - parser = argparse.ArgumentParser( - prog='ceph-volume lvm zap', - formatter_class=argparse.RawDescriptionHelpFormatter, - description=sub_command_help, - ) - - parser.add_argument( - 'device', - metavar='DEVICE', - nargs='?', - help='Path to an lv (as vg/lv) or to a partition like /dev/sda1' - ) - if len(self.argv) == 0: - print(sub_command_help) - return - args = parser.parse_args(self.argv) - self.zap(args)