From 4da9e2cf686a06db8b09d5b88568a08fcdb0a29d Mon Sep 17 00:00:00 2001 From: John Estabrook Date: Tue, 19 Sep 2023 11:24:24 -0500 Subject: op-mode: disk: T5609: add arg by-id to format disk (cherry picked from commit 42736111facf08ac37b86e6fc3cbd395aab166bc) --- op-mode-definitions/disks.xml.in | 20 ++++++++++++++++++++ src/op_mode/format_disk.py | 11 +++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/op-mode-definitions/disks.xml.in b/op-mode-definitions/disks.xml.in index 117ac5065..8a1e2c86f 100644 --- a/op-mode-definitions/disks.xml.in +++ b/op-mode-definitions/disks.xml.in @@ -5,6 +5,26 @@ Format a device + + + Find disk by ending of id string + + + + + Format a disk drive + + + + + Format this disk the same as another disk + + sudo ${vyos_op_scripts_dir}/format_disk.py --by-id --target $4 --proto $6 + + + + + Format a disk drive diff --git a/src/op_mode/format_disk.py b/src/op_mode/format_disk.py index 31ceb196a..dc3c96322 100755 --- a/src/op_mode/format_disk.py +++ b/src/op_mode/format_disk.py @@ -24,6 +24,7 @@ from vyos.utils.io import ask_yes_no from vyos.utils.process import call from vyos.utils.process import cmd from vyos.utils.process import DEVNULL +from vyos.utils.disk import device_from_id def list_disks(): disks = set() @@ -77,12 +78,18 @@ if __name__ == '__main__': group = parser.add_argument_group() group.add_argument('-t', '--target', type=str, required=True, help='Target device to format') group.add_argument('-p', '--proto', type=str, required=True, help='Prototype device to use as reference') + parser.add_argument('--by-id', action='store_true', help='Specify device by disk id') args = parser.parse_args() + target = args.target + proto = args.proto + if args.by_id: + target = device_from_id(target) + proto = device_from_id(proto) - target_disk = args.target + target_disk = target eligible_target_disks = list_disks() - proto_disk = args.proto + proto_disk = proto eligible_proto_disks = eligible_target_disks.copy() eligible_proto_disks.remove(target_disk) -- cgit v1.2.3