From: Fabian Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH storage 4/6] diskmanage: add helper for udev workaround
Date: Mon, 25 Oct 2021 15:47:47 +0200 [thread overview]
Message-ID: <20211025134755.169491-5-f.ebner@proxmox.com> (raw)
In-Reply-To: <20211025134755.169491-1-f.ebner@proxmox.com>
to avoid duplication. Current callers pass along at least one device,
but anticipate future callers that might call with the empty list. Do
nothing in that case, rather than triggering everything.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
PVE/API2/Disks.pm | 7 +------
PVE/API2/Disks/Directory.pm | 6 +-----
PVE/API2/Disks/LVM.pm | 6 +-----
PVE/API2/Disks/LVMThin.pm | 6 +-----
PVE/API2/Disks/ZFS.pm | 6 +-----
PVE/Diskmanage.pm | 11 +++++++++++
6 files changed, 16 insertions(+), 26 deletions(-)
diff --git a/PVE/API2/Disks.pm b/PVE/API2/Disks.pm
index 25c9ded..b618057 100644
--- a/PVE/API2/Disks.pm
+++ b/PVE/API2/Disks.pm
@@ -306,12 +306,7 @@ __PACKAGE__->register_method ({
my $worker = sub {
PVE::Diskmanage::wipe_blockdev($disk);
-
- # FIXME: Remove once we depend on systemd >= v249.
- # Work around udev bug https://github.com/systemd/systemd/issues/18525 to ensure the
- # udev database is updated.
- eval { run_command(['udevadm', 'trigger', $disk]); };
- warn $@ if $@;
+ PVE::Diskmanage::udevadm_trigger($disk);
};
my $basename = basename($disk); # avoid '/' in the ID
diff --git a/PVE/API2/Disks/Directory.pm b/PVE/API2/Disks/Directory.pm
index 36cebbc..e9b05be 100644
--- a/PVE/API2/Disks/Directory.pm
+++ b/PVE/API2/Disks/Directory.pm
@@ -275,11 +275,7 @@ __PACKAGE__->register_method ({
$write_ini->($ini, $mountunitpath);
- # FIXME: Remove once we depend on systemd >= v249.
- # Work around udev bug https://github.com/systemd/systemd/issues/18525 to ensure the
- # udev database is updated and the $uuid_path symlink is actually created!
- eval { run_command(['udevadm', 'trigger', $part]); };
- warn $@ if $@;
+ PVE::Diskmanage::udevadm_trigger($part);
run_command(['systemctl', 'daemon-reload']);
run_command(['systemctl', 'enable', $mountunitname]);
diff --git a/PVE/API2/Disks/LVM.pm b/PVE/API2/Disks/LVM.pm
index ee9e282..1b88af2 100644
--- a/PVE/API2/Disks/LVM.pm
+++ b/PVE/API2/Disks/LVM.pm
@@ -163,11 +163,7 @@ __PACKAGE__->register_method ({
PVE::Storage::LVMPlugin::lvm_create_volume_group($dev, $name);
- # FIXME: Remove once we depend on systemd >= v249.
- # Work around udev bug https://github.com/systemd/systemd/issues/18525 to ensure the
- # udev database is updated.
- eval { run_command(['udevadm', 'trigger', $dev]); };
- warn $@ if $@;
+ PVE::Diskmanage::udevadm_trigger($dev);
if ($param->{add_storage}) {
my $storage_params = {
diff --git a/PVE/API2/Disks/LVMThin.pm b/PVE/API2/Disks/LVMThin.pm
index 52f3062..23f262a 100644
--- a/PVE/API2/Disks/LVMThin.pm
+++ b/PVE/API2/Disks/LVMThin.pm
@@ -141,11 +141,7 @@ __PACKAGE__->register_method ({
$name
]);
- # FIXME: Remove once we depend on systemd >= v249.
- # Work around udev bug https://github.com/systemd/systemd/issues/18525 to ensure the
- # udev database is updated.
- eval { run_command(['udevadm', 'trigger', $dev]); };
- warn $@ if $@;
+ PVE::Diskmanage::udevadm_trigger($dev);
if ($param->{add_storage}) {
my $storage_params = {
diff --git a/PVE/API2/Disks/ZFS.pm b/PVE/API2/Disks/ZFS.pm
index e8d5e7c..e892712 100644
--- a/PVE/API2/Disks/ZFS.pm
+++ b/PVE/API2/Disks/ZFS.pm
@@ -426,11 +426,7 @@ __PACKAGE__->register_method ({
run_command($cmd);
}
- # FIXME: Remove once we depend on systemd >= v249.
- # Work around udev bug https://github.com/systemd/systemd/issues/18525 to ensure the
- # udev database is updated.
- eval { run_command(['udevadm', 'trigger', $devs->@*]); };
- warn $@ if $@;
+ PVE::Diskmanage::udevadm_trigger($devs->@*);
if ($param->{add_storage}) {
my $storage_params = {
diff --git a/PVE/Diskmanage.pm b/PVE/Diskmanage.pm
index 18459f9..d67cc6b 100644
--- a/PVE/Diskmanage.pm
+++ b/PVE/Diskmanage.pm
@@ -966,4 +966,15 @@ sub wipe_blockdev {
}
}
+# FIXME: Remove once we depend on systemd >= v249.
+# Work around udev bug https://github.com/systemd/systemd/issues/18525 ensuring database is updated.
+sub udevadm_trigger {
+ my @devs = @_;
+
+ return if scalar(@devs) == 0;
+
+ eval { run_command(['udevadm', 'trigger', @devs]); };
+ warn $@ if $@;
+}
+
1;
--
2.30.2
next prev parent reply other threads:[~2021-10-25 13:48 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-25 13:47 [pve-devel] [PATCH-SERIES storage/manager] disk-level storage removal for directory, LVM, LVM-thin, ZFS Fabian Ebner
2021-10-25 13:47 ` [pve-devel] [PATCH storage 1/6] LVM: add lvm_destroy_volume_group Fabian Ebner
2021-10-25 13:47 ` [pve-devel] [PATCH storage 2/6] api: disks: add DELETE endpoint for directory, lvm, lvmthin, zfs Fabian Ebner
2021-10-25 13:47 ` [pve-devel] [PATCH storage 3/6] api: list thin pools: add volume group to properties Fabian Ebner
2021-10-25 13:47 ` Fabian Ebner [this message]
2021-10-25 13:47 ` [pve-devel] [PATCH storage 5/6] api: disks: delete: add flag for wiping disks Fabian Ebner
2021-10-25 13:47 ` [pve-devel] [PATCH storage 6/6] api: disks: delete: add flag for cleaning up storage config Fabian Ebner
2021-10-25 13:47 ` [pve-devel] [PATCH manager 1/6] ui: node: directory: use gettext for 'Directory' Fabian Ebner
2021-10-25 13:47 ` [pve-devel] [PATCH manager 2/6] ui: node: lvmthin: add volume group to columns Fabian Ebner
2021-10-25 13:47 ` [pve-devel] [PATCH manager 3/6] ui: utils: add task descriptions for disk removal Fabian Ebner
2021-10-25 13:47 ` [pve-devel] [PATCH manager 4/6] ui: node: add destroy menu for directory, lvm, lvmthin, zfs Fabian Ebner
2021-10-25 13:47 ` [pve-devel] [PATCH manager 5/6] ui: node: storage removal: add checkbox for cleaning up disks Fabian Ebner
2021-10-25 13:47 ` [pve-devel] [PATCH manager 6/6] ui: node: storage removal: add checkbox for cleaning up storage config Fabian Ebner
2021-11-10 13:30 ` [pve-devel] applied-series: [PATCH-SERIES storage/manager] disk-level storage removal for directory, LVM, LVM-thin, ZFS Fabian Grünbichler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211025134755.169491-5-f.ebner@proxmox.com \
--to=f.ebner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox