diff options
author | Lennart Poettering <lennart@poettering.net> | 2024-07-01 11:55:52 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2024-07-01 16:39:40 +0200 |
commit | a90682f9819bbbde8717b90498df246bf4650314 (patch) | |
tree | 7732c1f8164446321b466ca0cff94bb80427086d | |
parent | repart: add --list-devices switch for listing candidate block devices (diff) | |
download | systemd-a90682f9819bbbde8717b90498df246bf4650314.tar.xz systemd-a90682f9819bbbde8717b90498df246bf4650314.zip |
storagetm: add --list-devices command
-rw-r--r-- | man/systemd-storagetm.service.xml | 11 | ||||
-rw-r--r-- | src/storagetm/storagetm.c | 19 | ||||
-rwxr-xr-x | test/units/TEST-84-STORAGETM.sh | 2 |
3 files changed, 28 insertions, 4 deletions
diff --git a/man/systemd-storagetm.service.xml b/man/systemd-storagetm.service.xml index 6fdbc3dc05..25c5c4e4fc 100644 --- a/man/systemd-storagetm.service.xml +++ b/man/systemd-storagetm.service.xml @@ -90,6 +90,17 @@ <xi:include href="version-info.xml" xpointer="v255"/></listitem> </varlistentry> + + <varlistentry> + <term><option>--list-devices</option></term> + + <listitem><para>Show a list of candidate block devices this command may operate on. Specifically, + this enumerates block devices currently present, and shows their device node paths along with any of + their symlinks.</para> + + <xi:include href="version-info.xml" xpointer="v257"/></listitem> + </varlistentry> + <xi:include href="standard-options.xml" xpointer="help" /> <xi:include href="standard-options.xml" xpointer="version" /> </variablelist> diff --git a/src/storagetm/storagetm.c b/src/storagetm/storagetm.c index 1bb8eec316..910746dc34 100644 --- a/src/storagetm/storagetm.c +++ b/src/storagetm/storagetm.c @@ -5,6 +5,7 @@ #include "af-list.h" #include "alloc-util.h" +#include "blockdev-list.h" #include "blockdev-util.h" #include "build.h" #include "daemon-util.h" @@ -50,6 +51,7 @@ static int help(void) { " --version Show package version\n" " --nqn=STRING Select NQN (NVMe Qualified Name)\n" " -a --all Expose all devices\n" + " --list-devices List candidate block devices to operate on\n" "\nSee the %s for details.\n", program_invocation_short_name, ansi_highlight(), @@ -64,13 +66,15 @@ static int parse_argv(int argc, char *argv[]) { enum { ARG_NQN = 0x100, ARG_VERSION, + ARG_LIST_DEVICES, }; static const struct option options[] = { - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, ARG_VERSION }, - { "nqn", required_argument, NULL, ARG_NQN }, - { "all", no_argument, NULL, 'a' }, + { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, ARG_VERSION }, + { "nqn", required_argument, NULL, ARG_NQN }, + { "all", no_argument, NULL, 'a' }, + { "list-devices", no_argument, NULL, ARG_LIST_DEVICES }, {} }; @@ -102,6 +106,13 @@ static int parse_argv(int argc, char *argv[]) { arg_all++; break; + case ARG_LIST_DEVICES: + r = blockdev_list(BLOCKDEV_LIST_SHOW_SYMLINKS|BLOCKDEV_LIST_IGNORE_ZRAM); + if (r < 0) + return r; + + return 0; + case '?': return -EINVAL; diff --git a/test/units/TEST-84-STORAGETM.sh b/test/units/TEST-84-STORAGETM.sh index eae87d5234..1dd2ea6184 100755 --- a/test/units/TEST-84-STORAGETM.sh +++ b/test/units/TEST-84-STORAGETM.sh @@ -3,6 +3,8 @@ set -eux set -o pipefail +/usr/lib/systemd/systemd-storagetm --list-devices + modprobe -v nvmet-tcp modprobe -v nvme-tcp |