Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libstorage-ng for openSUSE:Factory checked in at 2023-03-06 18:54:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libstorage-ng (Old) and /work/SRC/openSUSE:Factory/.libstorage-ng.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libstorage-ng" Mon Mar 6 18:54:57 2023 rev:204 rq:1069606 version:4.5.76 Changes: -------- --- /work/SRC/openSUSE:Factory/libstorage-ng/libstorage-ng.changes 2023-03-04 22:42:08.811443781 +0100 +++ /work/SRC/openSUSE:Factory/.libstorage-ng.new.31432/libstorage-ng.changes 2023-03-06 18:55:01.924505732 +0100 @@ -1,0 +2,14 @@ +Mon Mar 6 11:44:41 UTC 2023 - aschn...@suse.com + +- merge gh#openSUSE/libstorage-ng#914 +- use some actions for different objects +- more defensive programming +- 4.5.76 + +-------------------------------------------------------------------- +Sun Mar 5 13:29:03 UTC 2023 - bit...@opensuse.org + +- Translated using Weblate (Swedish) (bsc#1149754) +- 4.5.75 + +-------------------------------------------------------------------- Old: ---- libstorage-ng-4.5.74.tar.xz New: ---- libstorage-ng-4.5.76.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libstorage-ng.spec ++++++ --- /var/tmp/diff_new_pack.wEhtGB/_old 2023-03-06 18:55:02.688509631 +0100 +++ /var/tmp/diff_new_pack.wEhtGB/_new 2023-03-06 18:55:02.692509651 +0100 @@ -18,7 +18,7 @@ %define libname %{name}1 Name: libstorage-ng -Version: 4.5.74 +Version: 4.5.76 Release: 0 Summary: Library for storage management License: GPL-2.0-only ++++++ libstorage-ng-4.5.74.tar.xz -> libstorage-ng-4.5.76.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/VERSION new/libstorage-ng-4.5.76/VERSION --- old/libstorage-ng-4.5.74/VERSION 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/VERSION 2023-03-06 12:44:41.000000000 +0100 @@ -1 +1 @@ -4.5.74 +4.5.76 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/doc/status.md new/libstorage-ng-4.5.76/doc/status.md --- old/libstorage-ng-4.5.74/doc/status.md 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/doc/status.md 2023-03-06 12:44:41.000000000 +0100 @@ -56,6 +56,7 @@ Not planned: +* Renaming volume groups or logical volumes. * Cluster support. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/integration-tests/lvm/rename-lv.py new/libstorage-ng-4.5.76/integration-tests/lvm/rename-lv.py --- old/libstorage-ng-4.5.74/integration-tests/lvm/rename-lv.py 1970-01-01 01:00:00.000000000 +0100 +++ new/libstorage-ng-4.5.76/integration-tests/lvm/rename-lv.py 2023-03-06 12:44:41.000000000 +0100 @@ -0,0 +1,29 @@ +#!/usr/bin/python3 + +# requirements: unused logical volume a in volume group test1 + +# The operation is not supported. On it own it works but not in +# combination with other operations. + + +from storage import * +from storageitu import * + + +set_logger(get_logfile_logger()) + +environment = Environment(False) + +storage = Storage(environment) +storage.probe() + +staging = storage.get_staging() + +lvm_vg = LvmVg.find_by_vg_name(staging, "test1") + +lvm_lv = lvm_vg.get_lvm_lv("a") +lvm_lv.set_lv_name("b") + +print(staging) + +commit(storage) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/integration-tests/lvm/rename-vg.py new/libstorage-ng-4.5.76/integration-tests/lvm/rename-vg.py --- old/libstorage-ng-4.5.74/integration-tests/lvm/rename-vg.py 1970-01-01 01:00:00.000000000 +0100 +++ new/libstorage-ng-4.5.76/integration-tests/lvm/rename-vg.py 2023-03-06 12:44:41.000000000 +0100 @@ -0,0 +1,27 @@ +#!/usr/bin/python3 + +# requirements: unused volume group test1 + +# The operation is not supported. On it own it works but not in +# combination with other operations. + + +from storage import * +from storageitu import * + + +set_logger(get_logfile_logger()) + +environment = Environment(False) + +storage = Storage(environment) +storage.probe() + +staging = storage.get_staging() + +lvm_vg = LvmVg.find_by_vg_name(staging, "test1") +lvm_vg.set_vg_name("test2") + +print(staging) + +commit(storage) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/po/sv.po new/libstorage-ng-4.5.76/po/sv.po --- old/libstorage-ng-4.5.74/po/sv.po 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/po/sv.po 2023-03-06 12:44:41.000000000 +0100 @@ -10,7 +10,7 @@ "Project-Id-Version: YaST (@memory@)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-08-05 08:30+0200\n" -"PO-Revision-Date: 2022-08-12 10:13+0000\n" +"PO-Revision-Date: 2023-03-05 16:14+0000\n" "Last-Translator: Luna Jernberg <bit...@opensuse.org>\n" "Language-Team: Swedish <https://l10n.opensuse.org/projects/libstorage/" "ng-master/sv/>\n" @@ -3358,18 +3358,18 @@ #. %2$s is replaced by the btrfs qgroup id (e.g. 1/0), #. %3$s is replaced by one or more devices (e.g /dev/sda1 (2.00 GiB) #. and /dev/sdb2 (2.00 GiB)) -#, fuzzy, c-format +#, c-format msgid "Unassign qgroup of subvolume %1$s from qgroup %2$s on %3$s" -msgstr "Avmontera delvolym %1$s på %2$s i %3$s" +msgstr "Ta bort qgroup av delvolym %1$s från qgroup %2$s på %3$s" #. TRANSLATORS: displayed during action, #. %1$s is replaced by the btrfs qgroup id (e.g. 1/0), #. %2$s is replaced by the btrfs qgroup id (e.g. 2/0), #. %3$s is replaced by one or more devices (e.g /dev/sda1 (2.00 GiB) #. and /dev/sdb2 (2.00 GiB)) -#, fuzzy, c-format +#, c-format msgid "Unassigning qgroup %1$s from qgroup %2$s on %3$s" -msgstr "Krymper partition %1$s från %2$s till %3$s" +msgstr "Tar bort qgroup %1$s från qgroup %2$s på %3$s" # SLE12 #. TRANSLATORS: displayed during action, @@ -3377,9 +3377,9 @@ #. %2$s is replaced by the btrfs qgroup id (e.g. 1/0), #. %3$s is replaced by one or more devices (e.g /dev/sda1 (2.00 GiB) #. and /dev/sdb2 (2.00 GiB)) -#, fuzzy, c-format +#, c-format msgid "Unassigning qgroup of subvolume %1$s from qgroup %2$s on %3$s" -msgstr "Avmonterar delvolym %1$s på %2$s i %3$s" +msgstr "Tar bort qgroup av delvolym %1$s från qgroup %2$s på %3$s" #. TRANSLATORS: name of partition type msgid "Unknown" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/Base.h new/libstorage-ng-4.5.76/storage/Actions/Base.h --- old/libstorage-ng-4.5.74/storage/Actions/Base.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/Base.h 2023-03-06 12:44:41.000000000 +0100 @@ -39,8 +39,8 @@ { /** - * An action can either affect a device or a holder. Thus either sid or sid_pair - * is valid. + * Abstract base class for actions. An action can either affect a device or a + * holder. Thus either sid or sid_pair is valid. */ class Base : private boost::noncopyable { @@ -114,6 +114,9 @@ return dynamic_cast<const Type*>(action); } + + static_assert(std::is_abstract<Action::Base>(), "Base ought to be abstract."); + } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/Create.h new/libstorage-ng-4.5.76/storage/Actions/Create.h --- old/libstorage-ng-4.5.74/storage/Actions/Create.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/Create.h 2023-03-06 12:44:41.000000000 +0100 @@ -82,6 +82,9 @@ return is_action_of_type<const Action::Create>(action); } + + static_assert(!std::is_abstract<Action::Create>(), "Create ought not to be abstract."); + } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/Delete.h new/libstorage-ng-4.5.76/storage/Actions/Delete.h --- old/libstorage-ng-4.5.74/storage/Actions/Delete.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/Delete.h 2023-03-06 12:44:41.000000000 +0100 @@ -82,6 +82,9 @@ return is_action_of_type<const Action::Delete>(action); } + + static_assert(!std::is_abstract<Action::Delete>(), "Delete ought not to be abstract."); + } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/Makefile.am new/libstorage-ng-4.5.76/storage/Actions/Makefile.am --- old/libstorage-ng-4.5.74/storage/Actions/Makefile.am 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/Makefile.am 2023-03-06 12:44:41.000000000 +0100 @@ -34,11 +34,10 @@ SetLegacyBoot.h SetLegacyBoot.cc \ SetLimits.h SetLimits.cc \ SetNocow.h SetNocow.cc \ - SetPartitionId.h SetPartitionId.cc \ - SetPartitionLabel.h SetPartitionLabel.cc \ SetPmbrBoot.h SetPmbrBoot.cc \ SetQuota.h SetQuota.cc \ SetTuneOptions.h SetTuneOptions.cc \ + SetTypeId.h SetTypeId.cc \ SetUuid.h SetUuid.cc \ Unmount.h Unmount.cc \ UpdateCacheMode.h UpdateCacheMode.cc \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/Modify.h new/libstorage-ng-4.5.76/storage/Actions/Modify.h --- old/libstorage-ng-4.5.74/storage/Actions/Modify.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/Modify.h 2023-03-06 12:44:41.000000000 +0100 @@ -57,6 +57,9 @@ return is_action_of_type<const Action::Modify>(action); } + + static_assert(std::is_abstract<Action::Modify>(), "Modify ought to be abstract."); + } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/Reallot.cc new/libstorage-ng-4.5.76/storage/Actions/Reallot.cc --- old/libstorage-ng-4.5.74/storage/Actions/Reallot.cc 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/Reallot.cc 2023-03-06 12:44:41.000000000 +0100 @@ -22,6 +22,7 @@ #include "storage/Actions/Reallot.h" +#include "storage/Devices/DeviceImpl.h" namespace storage diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/Reallot.h new/libstorage-ng-4.5.76/storage/Actions/Reallot.h --- old/libstorage-ng-4.5.74/storage/Actions/Reallot.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/Reallot.h 2023-03-06 12:44:41.000000000 +0100 @@ -26,7 +26,7 @@ #include "storage/Actions/Modify.h" -#include "storage/Devices/DeviceImpl.h" +#include "storage/Devices/Device.h" namespace storage diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/Rename.cc new/libstorage-ng-4.5.76/storage/Actions/Rename.cc --- old/libstorage-ng-4.5.74/storage/Actions/Rename.cc 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/Rename.cc 2023-03-06 12:44:41.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) [2016-2021] SUSE LLC + * Copyright (c) [2016-2023] SUSE LLC * * All Rights Reserved. * @@ -22,6 +22,7 @@ #include "storage/Actions/Rename.h" #include "storage/Devices/LvmLvImpl.h" +#include "storage/Devices/LvmVgImpl.h" namespace storage @@ -33,25 +34,63 @@ Text Rename::text(const CommitData& commit_data) const { - const LvmLv* lhs_lvm_lv = to_lvm_lv(get_device(commit_data.actiongraph, LHS)); - const LvmLv* rhs_lvm_lv = to_lvm_lv(get_device(commit_data.actiongraph, RHS)); - return rhs_lvm_lv->get_impl().do_rename_text(lhs_lvm_lv->get_impl(), commit_data.tense); + const Device* device_rhs = get_device(commit_data.actiongraph, RHS); + + if (is_lvm_lv(device_rhs)) + { + const LvmLv* rhs_lvm_lv = to_lvm_lv(device_rhs); + return rhs_lvm_lv->get_impl().do_rename_text(commit_data, this); + } + + if (is_lvm_vg(device_rhs)) + { + const LvmVg* rhs_lvm_vg = to_lvm_vg(device_rhs); + return rhs_lvm_vg->get_impl().do_rename_text(commit_data, this); + } + + ST_THROW(LogicException("Rename called for unsupported object")); } + void Rename::commit(CommitData& commit_data, const CommitOptions& commit_options) const { - const LvmLv* lhs_lvm_lv = to_lvm_lv(get_device(commit_data.actiongraph, LHS)); - const LvmLv* rhs_lvm_lv = to_lvm_lv(get_device(commit_data.actiongraph, RHS)); - return rhs_lvm_lv->get_impl().do_rename(lhs_lvm_lv->get_impl()); + const Device* device_rhs = get_device(commit_data.actiongraph, RHS); + + if (is_lvm_lv(device_rhs)) + { + const LvmLv* rhs_lvm_lv = to_lvm_lv(device_rhs); + return rhs_lvm_lv->get_impl().do_rename(commit_data, this); + } + + if (is_lvm_vg(device_rhs)) + { + const LvmVg* rhs_lvm_vg = to_lvm_vg(device_rhs); + return rhs_lvm_vg->get_impl().do_rename(commit_data, this); + } + + ST_THROW(LogicException("Rename called for unsupported object")); } uf_t Rename::used_features(const Actiongraph::Impl& actiongraph) const { - const LvmLv* lvm_lv = to_lvm_lv(get_device(actiongraph, RHS)); - return lvm_lv->get_impl().do_rename_used_features(); + const Device* device = get_device(actiongraph, RHS); + + if (is_lvm_lv(device)) + { + const LvmLv* lvm_lv = to_lvm_lv(device); + return lvm_lv->get_impl().do_rename_used_features(); + } + + if (is_lvm_vg(device)) + { + const LvmVg* lvm_vg = to_lvm_vg(device); + return lvm_vg->get_impl().do_rename_used_features(); + } + + ST_THROW(LogicException("Rename called for unsupported object")); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/RenameIn.h new/libstorage-ng-4.5.76/storage/Actions/RenameIn.h --- old/libstorage-ng-4.5.74/storage/Actions/RenameIn.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/RenameIn.h 2023-03-06 12:44:41.000000000 +0100 @@ -36,8 +36,8 @@ { /** - * Base class for renaming a blk device in some file, e.g. /etc/fstab - * or /etc/crypttab. + * Abstract class for renaming a blk device in some file, e.g. /etc/fstab or + * /etc/crypttab. */ class RenameIn : public Modify { @@ -60,6 +60,9 @@ } + + static_assert(std::is_abstract<Action::RenameIn>(), "RenameIn ought to be abstract."); + } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/Resize.h new/libstorage-ng-4.5.76/storage/Actions/Resize.h --- old/libstorage-ng-4.5.74/storage/Actions/Resize.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/Resize.h 2023-03-06 12:44:41.000000000 +0100 @@ -26,7 +26,7 @@ #include "storage/Actions/Modify.h" -#include "storage/Devices/DeviceImpl.h" +#include "storage/Devices/BlkDevice.h" namespace storage diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/SetLabel.cc new/libstorage-ng-4.5.76/storage/Actions/SetLabel.cc --- old/libstorage-ng-4.5.74/storage/Actions/SetLabel.cc 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/SetLabel.cc 2023-03-06 12:44:41.000000000 +0100 @@ -1,6 +1,6 @@ /* * Copyright (c) [2014-2015] Novell, Inc. - * Copyright (c) [2016-2022] SUSE LLC + * Copyright (c) [2016-2023] SUSE LLC * * All Rights Reserved. * @@ -22,6 +22,7 @@ #include "storage/Actions/SetLabel.h" +#include "storage/Devices/PartitionImpl.h" #include "storage/Filesystems/BlkFilesystemImpl.h" @@ -34,24 +35,63 @@ Text SetLabel::text(const CommitData& commit_data) const { - const BlkFilesystem* blk_filesystem = to_blk_filesystem(get_device(commit_data.actiongraph, RHS)); - return blk_filesystem->get_impl().do_set_label_text(commit_data.tense); + const Device* device = get_device(commit_data.actiongraph, RHS); + + if (is_partition(device)) + { + const Partition* partition = to_partition(device); + return partition->get_impl().do_set_label_text(commit_data.tense); + } + + if (is_blk_filesystem(device)) + { + const BlkFilesystem* blk_filesystem = to_blk_filesystem(device); + return blk_filesystem->get_impl().do_set_label_text(commit_data.tense); + } + + ST_THROW(LogicException("SetLabel called for unsupported object")); } void SetLabel::commit(CommitData& commit_data, const CommitOptions& commit_options) const { - const BlkFilesystem* blk_filesystem = to_blk_filesystem(get_device(commit_data.actiongraph, RHS)); - blk_filesystem->get_impl().do_set_label(); + const Device* device = get_device(commit_data.actiongraph, RHS); + + if (is_partition(device)) + { + const Partition* partition = to_partition(device); + return partition->get_impl().do_set_label(); + } + + if (is_blk_filesystem(device)) + { + const BlkFilesystem* blk_filesystem = to_blk_filesystem(device); + return blk_filesystem->get_impl().do_set_label(); + } + + ST_THROW(LogicException("SetLabel called for unsupported object")); } uf_t SetLabel::used_features(const Actiongraph::Impl& actiongraph) const { - const BlkFilesystem* blk_filesystem = to_blk_filesystem(get_device(actiongraph, RHS)); - return blk_filesystem->get_impl().do_set_label_used_features(); + const Device* device = get_device(actiongraph, RHS); + + if (is_partition(device)) + { + const Partition* partition = to_partition(device); + return partition->get_impl().do_set_label_used_features(); + } + + if (is_blk_filesystem(device)) + { + const BlkFilesystem* blk_filesystem = to_blk_filesystem(device); + return blk_filesystem->get_impl().do_set_label_used_features(); + } + + ST_THROW(LogicException("SetLabel called for unsupported object")); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/SetPartitionId.cc new/libstorage-ng-4.5.76/storage/Actions/SetPartitionId.cc --- old/libstorage-ng-4.5.74/storage/Actions/SetPartitionId.cc 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/SetPartitionId.cc 1970-01-01 01:00:00.000000000 +0100 @@ -1,51 +0,0 @@ -/* - * Copyright (c) [2014-2015] Novell, Inc. - * Copyright (c) [2016-2022] SUSE LLC - * - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as published - * by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, contact Novell, Inc. - * - * To contact Novell about this file by physical or electronic mail, you may - * find current contact information at www.novell.com. - */ - - -#include "storage/Actions/SetPartitionId.h" -#include "storage/Devices/PartitionImpl.h" - - -namespace storage -{ - - namespace Action - { - - Text - SetPartitionId::text(const CommitData& commit_data) const - { - const Partition* partition = to_partition(get_device(commit_data.actiongraph, RHS)); - return partition->get_impl().do_set_id_text(commit_data.tense); - } - - - void - SetPartitionId::commit(CommitData& commit_data, const CommitOptions& commit_options) const - { - const Partition* partition = to_partition(get_device(commit_data.actiongraph, RHS)); - partition->get_impl().do_set_id(); - } - - } - -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/SetPartitionId.h new/libstorage-ng-4.5.76/storage/Actions/SetPartitionId.h --- old/libstorage-ng-4.5.74/storage/Actions/SetPartitionId.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/SetPartitionId.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,52 +0,0 @@ -/* - * Copyright (c) [2014-2015] Novell, Inc. - * Copyright (c) [2016-2022] SUSE LLC - * - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as published - * by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, contact Novell, Inc. - * - * To contact Novell about this file by physical or electronic mail, you may - * find current contact information at www.novell.com. - */ - - -#ifndef STORAGE_ACTION_SET_PARTITION_ID_H -#define STORAGE_ACTION_SET_PARTITION_ID_H - - -#include "storage/Actions/Modify.h" - - -namespace storage -{ - - namespace Action - { - - class SetPartitionId : public Modify - { - public: - - SetPartitionId(sid_t sid) : Modify(sid) {} - - virtual Text text(const CommitData& commit_data) const override; - virtual void commit(CommitData& commit_data, const CommitOptions& commit_options) const override; - - }; - - } - -} - -#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/SetPartitionLabel.cc new/libstorage-ng-4.5.76/storage/Actions/SetPartitionLabel.cc --- old/libstorage-ng-4.5.74/storage/Actions/SetPartitionLabel.cc 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/SetPartitionLabel.cc 1970-01-01 01:00:00.000000000 +0100 @@ -1,51 +0,0 @@ -/* - * Copyright (c) [2014-2015] Novell, Inc. - * Copyright (c) [2016-2022] SUSE LLC - * - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as published - * by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, contact Novell, Inc. - * - * To contact Novell about this file by physical or electronic mail, you may - * find current contact information at www.novell.com. - */ - - -#include "storage/Actions/SetPartitionLabel.h" -#include "storage/Devices/PartitionImpl.h" - - -namespace storage -{ - - namespace Action - { - - Text - SetPartitionLabel::text(const CommitData& commit_data) const - { - const Partition* partition = to_partition(get_device(commit_data.actiongraph, RHS)); - return partition->get_impl().do_set_label_text(commit_data.tense); - } - - - void - SetPartitionLabel::commit(CommitData& commit_data, const CommitOptions& commit_options) const - { - const Partition* partition = to_partition(get_device(commit_data.actiongraph, RHS)); - partition->get_impl().do_set_label(); - } - - } - -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/SetPartitionLabel.h new/libstorage-ng-4.5.76/storage/Actions/SetPartitionLabel.h --- old/libstorage-ng-4.5.74/storage/Actions/SetPartitionLabel.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/SetPartitionLabel.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,52 +0,0 @@ -/* - * Copyright (c) [2014-2015] Novell, Inc. - * Copyright (c) [2016-2022] SUSE LLC - * - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as published - * by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, contact Novell, Inc. - * - * To contact Novell about this file by physical or electronic mail, you may - * find current contact information at www.novell.com. - */ - - -#ifndef STORAGE_ACTION_SET_PARTITION_LABEL_H -#define STORAGE_ACTION_SET_PARTITION_LABEL_H - - -#include "storage/Actions/Modify.h" - - -namespace storage -{ - - namespace Action - { - - class SetPartitionLabel : public Modify - { - public: - - SetPartitionLabel(sid_t sid) : Modify(sid) {} - - virtual Text text(const CommitData& commit_data) const override; - virtual void commit(CommitData& commit_data, const CommitOptions& commit_options) const override; - - }; - - } - -} - -#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/SetTypeId.cc new/libstorage-ng-4.5.76/storage/Actions/SetTypeId.cc --- old/libstorage-ng-4.5.74/storage/Actions/SetTypeId.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/SetTypeId.cc 2023-03-06 12:44:41.000000000 +0100 @@ -0,0 +1,51 @@ +/* + * Copyright (c) [2014-2015] Novell, Inc. + * Copyright (c) [2016-2022] SUSE LLC + * + * All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, contact Novell, Inc. + * + * To contact Novell about this file by physical or electronic mail, you may + * find current contact information at www.novell.com. + */ + + +#include "storage/Actions/SetTypeId.h" +#include "storage/Devices/PartitionImpl.h" + + +namespace storage +{ + + namespace Action + { + + Text + SetTypeId::text(const CommitData& commit_data) const + { + const Partition* partition = to_partition(get_device(commit_data.actiongraph, RHS)); + return partition->get_impl().do_set_type_id_text(commit_data.tense); + } + + + void + SetTypeId::commit(CommitData& commit_data, const CommitOptions& commit_options) const + { + const Partition* partition = to_partition(get_device(commit_data.actiongraph, RHS)); + partition->get_impl().do_set_type_id(); + } + + } + +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Actions/SetTypeId.h new/libstorage-ng-4.5.76/storage/Actions/SetTypeId.h --- old/libstorage-ng-4.5.74/storage/Actions/SetTypeId.h 1970-01-01 01:00:00.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Actions/SetTypeId.h 2023-03-06 12:44:41.000000000 +0100 @@ -0,0 +1,52 @@ +/* + * Copyright (c) [2014-2015] Novell, Inc. + * Copyright (c) [2016-2022] SUSE LLC + * + * All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, contact Novell, Inc. + * + * To contact Novell about this file by physical or electronic mail, you may + * find current contact information at www.novell.com. + */ + + +#ifndef STORAGE_ACTION_SET_TYPE_ID_H +#define STORAGE_ACTION_SET_TYPE_ID_H + + +#include "storage/Actions/Modify.h" + + +namespace storage +{ + + namespace Action + { + + class SetTypeId : public Modify + { + public: + + SetTypeId(sid_t sid) : Modify(sid) {} + + virtual Text text(const CommitData& commit_data) const override; + virtual void commit(CommitData& commit_data, const CommitOptions& commit_options) const override; + + }; + + } + +} + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Devices/LvmLv.h new/libstorage-ng-4.5.76/storage/Devices/LvmLv.h --- old/libstorage-ng-4.5.74/storage/Devices/LvmLv.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Devices/LvmLv.h 2023-03-06 12:44:41.000000000 +0100 @@ -180,7 +180,8 @@ const std::string& get_lv_name() const; /** - * Set the logical volume name. + * Set the logical volume name. The library does not support to rename logical + * volumes on disk. * * @see get_lv_name() */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Devices/LvmLvImpl.cc new/libstorage-ng-4.5.76/storage/Devices/LvmLvImpl.cc --- old/libstorage-ng-4.5.74/storage/Devices/LvmLvImpl.cc 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Devices/LvmLvImpl.cc 2023-03-06 12:44:41.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) [2016-2021] SUSE LLC + * Copyright (c) [2016-2023] SUSE LLC * * All Rights Reserved. * @@ -62,8 +62,7 @@ LvmLv::Impl::Impl(const string& vg_name, const string& lv_name, LvType lv_type) : BlkDevice::Impl(make_name(vg_name, lv_name)), lv_name(lv_name), lv_type(lv_type), - uuid(), used_extents(0), stripes(lv_type == LvType::THIN ? 0 : 1), stripe_size(0), - chunk_size(0) + stripes(lv_type == LvType::THIN ? 0 : 1) { set_active(lv_type != LvType::THIN_POOL && lv_type != LvType::CACHE_POOL); @@ -72,8 +71,7 @@ LvmLv::Impl::Impl(const xmlNode* node) - : BlkDevice::Impl(node), lv_name(), lv_type(LvType::NORMAL), uuid(), used_extents(0), - stripes(0), stripe_size(0), chunk_size(0) + : BlkDevice::Impl(node), lv_type(LvType::NORMAL) { string tmp; @@ -884,7 +882,7 @@ const Impl& lhs = dynamic_cast<const Impl&>(lhs_base->get_impl()); - if (get_name() != lhs.get_name()) + if (get_lv_name() != lhs.get_lv_name()) { shared_ptr<Action::Base> action = make_shared<Action::Rename>(get_sid()); actiongraph.add_vertex(action); @@ -1050,20 +1048,35 @@ Text - LvmLv::Impl::do_rename_text(const Impl& lhs, Tense tense) const + LvmLv::Impl::do_rename_text(const CommitData& commit_data, const Action::Rename* action) const { + const LvmVg* lvm_vg = get_lvm_vg(); + + const LvmLv* lvm_lv_lhs = to_lvm_lv(action->get_device(commit_data.actiongraph, LHS)); + const LvmLv* lvm_lv_rhs = to_lvm_lv(action->get_device(commit_data.actiongraph, RHS)); + // TRANSLATORS: // %1$s is replaced with the old logical volume name (e.g. foo), - // %2$s is replaced with the new logical volume name (e.g. bar) - Text text = _("Rename %1$s to %2$s"); + // %2$s is replaced with the new logical volume name (e.g. bar), + // %3$s is replaced with the volume group name (e.g. system) + Text text = _("Rename logical volume %1$s to %2$s on volume group %3$s"); - return sformat(text, lhs.get_displayname(), get_displayname()); + return sformat(text, lvm_lv_lhs->get_displayname(), lvm_lv_rhs->get_displayname(), lvm_vg->get_vg_name()); } void - LvmLv::Impl::do_rename(const Impl& lhs) const + LvmLv::Impl::do_rename(const CommitData& commit_data, const Action::Rename* action) const { + const LvmVg* lvm_vg = get_lvm_vg(); + + const LvmLv* lvm_lv_lhs = to_lvm_lv(action->get_device(commit_data.actiongraph, LHS)); + const LvmLv* lvm_lv_rhs = to_lvm_lv(action->get_device(commit_data.actiongraph, RHS)); + + string cmd_line = LVRENAME_BIN " " + quote(lvm_vg->get_vg_name()) + " " + + quote(lvm_lv_lhs->get_lv_name()) + " " + quote(lvm_lv_rhs->get_lv_name()); + + SystemCmd cmd(cmd_line, SystemCmd::DoThrow); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Devices/LvmLvImpl.h new/libstorage-ng-4.5.76/storage/Devices/LvmLvImpl.h --- old/libstorage-ng-4.5.74/storage/Devices/LvmLvImpl.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Devices/LvmLvImpl.h 2023-03-06 12:44:41.000000000 +0100 @@ -27,6 +27,7 @@ #include "storage/Devices/LvmLv.h" #include "storage/Devices/BlkDeviceImpl.h" #include "storage/Utils/Enum.h" +#include "storage/Actions/Rename.h" namespace storage @@ -148,8 +149,8 @@ virtual void do_create_post_verify() const override; virtual uf_t do_create_used_features() const override { return UF_LVM; } - virtual Text do_rename_text(const Impl& lhs, Tense tense) const; - virtual void do_rename(const Impl& lhs) const; + virtual Text do_rename_text(const CommitData& commit_data, const Action::Rename* action) const; + virtual void do_rename(const CommitData& commit_data, const Action::Rename* action) const; virtual uf_t do_rename_used_features() const { return UF_LVM; } virtual Text do_resize_text(const CommitData& commit_data, const Action::Resize* action) const override; @@ -192,12 +193,12 @@ * * TODO For RAIDs and mirrors the value is incorrect. */ - unsigned long long used_extents; + unsigned long long used_extents = 0; - unsigned int stripes; - unsigned long long stripe_size; + unsigned int stripes = 0; + unsigned long long stripe_size = 0; - unsigned long long chunk_size; + unsigned long long chunk_size = 0; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Devices/LvmVg.h new/libstorage-ng-4.5.76/storage/Devices/LvmVg.h --- old/libstorage-ng-4.5.74/storage/Devices/LvmVg.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Devices/LvmVg.h 2023-03-06 12:44:41.000000000 +0100 @@ -76,8 +76,8 @@ const std::string& get_vg_name() const; /** - * Set the volume group name. The library does not support to - * rename volume groups on disk. + * Set the volume group name. The library does not support to rename volume groups + * on disk. * * @see get_vg_name() */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Devices/LvmVgImpl.cc new/libstorage-ng-4.5.76/storage/Devices/LvmVgImpl.cc --- old/libstorage-ng-4.5.74/storage/Devices/LvmVgImpl.cc 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Devices/LvmVgImpl.cc 2023-03-06 12:44:41.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) [2016-2021] SUSE LLC + * Copyright (c) [2016-2023] SUSE LLC * * All Rights Reserved. * @@ -523,6 +523,22 @@ void + LvmVg::Impl::add_modify_actions(Actiongraph::Impl& actiongraph, const Device* lhs_base) const + { + Device::Impl::add_modify_actions(actiongraph, lhs_base); + + const Impl& lhs = dynamic_cast<const Impl&>(lhs_base->get_impl()); + + if (get_vg_name() != lhs.get_vg_name()) + { + shared_ptr<Action::Base> action = make_shared<Action::Rename>(get_sid()); + actiongraph.add_vertex(action); + action->first = action->last = true; + } + } + + + void LvmVg::Impl::add_delete_actions(Actiongraph::Impl& actiongraph) const { vector<shared_ptr<Action::Base>> actions; @@ -586,6 +602,34 @@ } + Text + LvmVg::Impl::do_rename_text(const CommitData& commit_data, const Action::Rename* action) const + { + const LvmVg* lvm_vg_lhs = to_lvm_vg(action->get_device(commit_data.actiongraph, LHS)); + const LvmVg* lvm_vg_rhs = to_lvm_vg(action->get_device(commit_data.actiongraph, RHS)); + + // TRANSLATORS: + // %1$s is replaced with the old volume group name (e.g. foo), + // %2$s is replaced with the new volume group name (e.g. bar) + Text text = _("Rename volume group %1$s to %2$s"); + + return sformat(text, lvm_vg_lhs->get_displayname(), lvm_vg_rhs->get_displayname()); + } + + + void + LvmVg::Impl::do_rename(const CommitData& commit_data, const Action::Rename* action) const + { + const LvmVg* lvm_vg_lhs = to_lvm_vg(action->get_device(commit_data.actiongraph, LHS)); + const LvmVg* lvm_vg_rhs = to_lvm_vg(action->get_device(commit_data.actiongraph, RHS)); + + string cmd_line = VGRENAME_BIN " " + quote(lvm_vg_lhs->get_vg_name()) + " " + + quote(lvm_vg_rhs->get_vg_name()); + + SystemCmd cmd(cmd_line, SystemCmd::DoThrow); + } + + Text LvmVg::Impl::do_delete_text(Tense tense) const { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Devices/LvmVgImpl.h new/libstorage-ng-4.5.76/storage/Devices/LvmVgImpl.h --- old/libstorage-ng-4.5.74/storage/Devices/LvmVgImpl.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Devices/LvmVgImpl.h 2023-03-06 12:44:41.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) [2016-2019] SUSE LLC + * Copyright (c) [2016-2023] SUSE LLC * * All Rights Reserved. * @@ -29,6 +29,7 @@ #include "storage/Utils/StorageDefines.h" #include "storage/Devices/LvmVg.h" #include "storage/Devices/DeviceImpl.h" +#include "storage/Actions/Rename.h" namespace storage @@ -131,6 +132,7 @@ */ bool is_partial() const; + virtual void add_modify_actions(Actiongraph::Impl& actiongraph, const Device* lhs_base) const override; virtual void add_delete_actions(Actiongraph::Impl& actiongraph) const override; virtual Text do_create_text(Tense tense) const override; @@ -138,6 +140,10 @@ virtual void do_create_post_verify() const override; virtual uf_t do_create_used_features() const override { return UF_LVM; } + virtual Text do_rename_text(const CommitData& commit_data, const Action::Rename* action) const; + virtual void do_rename(const CommitData& commit_data, const Action::Rename* action) const; + virtual uf_t do_rename_used_features() const { return UF_LVM; } + virtual Text do_delete_text(Tense tense) const override; virtual void do_delete() const override; virtual uf_t do_delete_used_features() const override { return UF_LVM; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Devices/PartitionImpl.cc new/libstorage-ng-4.5.76/storage/Devices/PartitionImpl.cc --- old/libstorage-ng-4.5.74/storage/Devices/PartitionImpl.cc 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Devices/PartitionImpl.cc 2023-03-06 12:44:41.000000000 +0100 @@ -45,8 +45,8 @@ #include "storage/Prober.h" #include "storage/Utils/Format.h" #include "storage/Actions/Resize.h" -#include "storage/Actions/SetPartitionId.h" -#include "storage/Actions/SetPartitionLabel.h" +#include "storage/Actions/SetTypeId.h" +#include "storage/Actions/SetLabel.h" #include "storage/Actions/SetBoot.h" #include "storage/Actions/SetLegacyBoot.h" #include "storage/Actions/Create.h" @@ -416,11 +416,11 @@ }; if (!contains(skip_ids, id)) - actions.push_back(make_shared<Action::SetPartitionId>(get_sid())); + actions.push_back(make_shared<Action::SetTypeId>(get_sid())); } if (!label.empty()) - actions.push_back(make_shared<Action::SetPartitionLabel>(get_sid())); + actions.push_back(make_shared<Action::SetLabel>(get_sid())); if (boot) actions.push_back(make_shared<Action::SetBoot>(get_sid())); @@ -451,13 +451,13 @@ if (get_id() != lhs.get_id()) { - shared_ptr<Action::Base> action = make_shared<Action::SetPartitionId>(get_sid()); + shared_ptr<Action::Base> action = make_shared<Action::SetTypeId>(get_sid()); actiongraph.add_vertex(action); } if (label != lhs.label) { - shared_ptr<Action::Base> action = make_shared<Action::SetPartitionLabel>(get_sid()); + shared_ptr<Action::Base> action = make_shared<Action::SetLabel>(get_sid()); actiongraph.add_vertex(action); } @@ -1129,7 +1129,7 @@ Text - Partition::Impl::do_set_id_text(Tense tense) const + Partition::Impl::do_set_type_id_text(Tense tense) const { const PartitionTable* partition_table = get_partition_table(); @@ -1187,7 +1187,7 @@ void - Partition::Impl::do_set_id() const + Partition::Impl::do_set_type_id() const { const PartitionTable* partition_table = get_partition_table(); const Partitionable* partitionable = partition_table->get_partitionable(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Devices/PartitionImpl.h new/libstorage-ng-4.5.76/storage/Devices/PartitionImpl.h --- old/libstorage-ng-4.5.74/storage/Devices/PartitionImpl.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Devices/PartitionImpl.h 2023-03-06 12:44:41.000000000 +0100 @@ -138,11 +138,12 @@ virtual void do_create() override; virtual void do_create_post_verify() const override; - virtual Text do_set_id_text(Tense tense) const; - virtual void do_set_id() const; + virtual Text do_set_type_id_text(Tense tense) const; + virtual void do_set_type_id() const; virtual Text do_set_label_text(Tense tense) const; virtual void do_set_label() const; + virtual uf_t do_set_label_used_features() const { return 0; } virtual Text do_set_boot_text(Tense tense) const; virtual void do_set_boot() const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libstorage-ng-4.5.74/storage/Utils/StorageDefines.h new/libstorage-ng-4.5.76/storage/Utils/StorageDefines.h --- old/libstorage-ng-4.5.74/storage/Utils/StorageDefines.h 2023-03-02 18:36:53.000000000 +0100 +++ new/libstorage-ng-4.5.76/storage/Utils/StorageDefines.h 2023-03-06 12:44:41.000000000 +0100 @@ -82,12 +82,14 @@ #define LVCREATE_BIN "/sbin/lvcreate" #define LVREMOVE_BIN "/sbin/lvremove" +#define LVRENAME_BIN "/sbin/lvrename" #define LVRESIZE_BIN "/sbin/lvresize" #define LVCHANGE_BIN "/sbin/lvchange" #define LVS_BIN "/sbin/lvs" #define VGCREATE_BIN "/sbin/vgcreate" #define VGREMOVE_BIN "/sbin/vgremove" +#define VGRENAME_BIN "/sbin/vgrename" #define VGEXTEND_BIN "/sbin/vgextend" #define VGREDUCE_BIN "/sbin/vgreduce" #define VGS_BIN "/sbin/vgs"