File indexing completed on 2024-04-28 05:45:53
0001 /* 0002 SPDX-FileCopyrightText: 2016 Chantara Tith <tith.chantara@gmail.com> 0003 SPDX-FileCopyrightText: 2016-2018 Andrius Štikonas <andrius@stikonas.eu> 0004 0005 SPDX-License-Identifier: GPL-3.0-or-later 0006 */ 0007 0008 #include "jobs/deactivatevolumegroupjob.h" 0009 0010 #include "core/lvmdevice.h" 0011 #include "core/partition.h" 0012 0013 #include "util/report.h" 0014 0015 #include <KLocalizedString> 0016 0017 /** Deactivate LVM Volume Group 0018 */ 0019 DeactivateVolumeGroupJob::DeactivateVolumeGroupJob(VolumeManagerDevice& d) : 0020 Job(), 0021 m_Device(d) 0022 { 0023 } 0024 0025 bool DeactivateVolumeGroupJob::run(Report& parent) 0026 { 0027 bool rval = false; 0028 0029 Report* report = jobStarted(parent); 0030 0031 if (device().type() == Device::Type::LVM_Device) { 0032 rval = LvmDevice::deactivateVG(*report, static_cast<LvmDevice&>(device())); 0033 } 0034 const auto lvmPVs = static_cast<LvmDevice&>(device()).physicalVolumes(); 0035 for (auto &p : lvmPVs) { 0036 Partition *partition = const_cast<Partition *>(p); 0037 partition->setMounted(false); 0038 } 0039 0040 jobFinished(*report, rval); 0041 0042 return rval; 0043 } 0044 0045 QString DeactivateVolumeGroupJob::description() const 0046 { 0047 return xi18nc("@info/plain", "Deactivate Volume Group: <filename>%1</filename>", device().name()); 0048 }