Replace complicated QPair type with custom LvmPV class.
This commit is contained in:
parent
5182c037db
commit
36202cc1ad
|
@ -81,7 +81,7 @@ void DeviceScanner::scan()
|
||||||
// Store list of physical volumes in LvmDevice
|
// Store list of physical volumes in LvmDevice
|
||||||
for (const auto &d : lvmList)
|
for (const auto &d : lvmList)
|
||||||
for (const auto &p : operationStack().physicalVolumes())
|
for (const auto &p : operationStack().physicalVolumes())
|
||||||
if (p.first == d->name())
|
if (p.vgName() == d->name())
|
||||||
d->physicalVolumes().append(p.second);
|
d->physicalVolumes().append(p.partition());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
#define OPERATIONSTACK__H
|
#define OPERATIONSTACK__H
|
||||||
|
|
||||||
|
#include "fs/lvm2_pv.h"
|
||||||
#include "util/libpartitionmanagerexport.h"
|
#include "util/libpartitionmanagerexport.h"
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
@ -48,7 +49,6 @@ class LIBKPMCORE_EXPORT OperationStack : public QObject
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef QList<Device*> Devices;
|
typedef QList<Device*> Devices;
|
||||||
typedef QList<QPair<QString, const Partition *>> PhysicalVolumes;
|
|
||||||
typedef QList<Operation*> Operations;
|
typedef QList<Operation*> Operations;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -75,10 +75,10 @@ public:
|
||||||
return m_PreviewDevices; /**< @return the list of Devices */
|
return m_PreviewDevices; /**< @return the list of Devices */
|
||||||
}
|
}
|
||||||
|
|
||||||
PhysicalVolumes& physicalVolumes() {
|
QList<LvmPV>& physicalVolumes() {
|
||||||
return m_LVMPhysicalVolumes; /**< @return the list of LVM PVs */
|
return m_LVMPhysicalVolumes; /**< @return the list of LVM PVs */
|
||||||
}
|
}
|
||||||
const PhysicalVolumes& physicalVolumes() const {
|
const QList<LvmPV>& physicalVolumes() const {
|
||||||
return m_LVMPhysicalVolumes; /**< @return the list of LVM PVs */
|
return m_LVMPhysicalVolumes; /**< @return the list of LVM PVs */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ protected:
|
||||||
private:
|
private:
|
||||||
Operations m_Operations;
|
Operations m_Operations;
|
||||||
mutable Devices m_PreviewDevices;
|
mutable Devices m_PreviewDevices;
|
||||||
mutable PhysicalVolumes m_LVMPhysicalVolumes;
|
mutable QList<LvmPV> m_LVMPhysicalVolumes;
|
||||||
QReadWriteLock m_Lock;
|
QReadWriteLock m_Lock;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -309,8 +309,6 @@ bool luks::cryptClose(const QString& deviceNode)
|
||||||
|
|
||||||
m_isCryptOpen = (m_innerFs != nullptr);
|
m_isCryptOpen = (m_innerFs != nullptr);
|
||||||
|
|
||||||
if (m_isCryptOpen)
|
|
||||||
return false;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -250,9 +250,9 @@ QString lvm2_pv::getVGName(const QString& deviceNode)
|
||||||
return getpvField(QStringLiteral("vg_name"), deviceNode);
|
return getpvField(QStringLiteral("vg_name"), deviceNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
lvm2_pv::PhysicalVolumes lvm2_pv::getPVinNode(const PartitionNode* parent)
|
QList<LvmPV> lvm2_pv::getPVinNode(const PartitionNode* parent)
|
||||||
{
|
{
|
||||||
PhysicalVolumes partitions;
|
QList<LvmPV> partitions;
|
||||||
if (parent == nullptr)
|
if (parent == nullptr)
|
||||||
return partitions;
|
return partitions;
|
||||||
|
|
||||||
|
@ -267,7 +267,7 @@ lvm2_pv::PhysicalVolumes lvm2_pv::getPVinNode(const PartitionNode* parent)
|
||||||
|
|
||||||
// FIXME: reenable newly created PVs (before applying) once everything works
|
// FIXME: reenable newly created PVs (before applying) once everything works
|
||||||
if(p->fileSystem().type() == FileSystem::Lvm2_PV && p->deviceNode() == p->partitionPath())
|
if(p->fileSystem().type() == FileSystem::Lvm2_PV && p->deviceNode() == p->partitionPath())
|
||||||
partitions.append(QPair<QString, const Partition *>(p->mountPoint(), p));
|
partitions.append(LvmPV(p->mountPoint(), p));
|
||||||
}
|
}
|
||||||
|
|
||||||
return partitions;
|
return partitions;
|
||||||
|
@ -278,9 +278,9 @@ lvm2_pv::PhysicalVolumes lvm2_pv::getPVinNode(const PartitionNode* parent)
|
||||||
* @param devices list of Devices which we scan for LVM PVs
|
* @param devices list of Devices which we scan for LVM PVs
|
||||||
* @return list of LVM PVs
|
* @return list of LVM PVs
|
||||||
*/
|
*/
|
||||||
lvm2_pv::PhysicalVolumes lvm2_pv::getPVs(const QList<Device*>& devices)
|
QList<LvmPV> lvm2_pv::getPVs(const QList<Device*>& devices)
|
||||||
{
|
{
|
||||||
PhysicalVolumes partitions;
|
QList<LvmPV> partitions;
|
||||||
for (auto const &d : devices)
|
for (auto const &d : devices)
|
||||||
partitions.append(getPVinNode(d->partitionTable()));
|
partitions.append(getPVinNode(d->partitionTable()));
|
||||||
|
|
||||||
|
@ -288,3 +288,10 @@ lvm2_pv::PhysicalVolumes lvm2_pv::getPVs(const QList<Device*>& devices)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LvmPV::LvmPV(const QString vgName, const Partition* p, bool isLuks)
|
||||||
|
: m_vgName(vgName)
|
||||||
|
, m_p(p)
|
||||||
|
, m_isLuks(isLuks)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -28,9 +28,36 @@
|
||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
|
||||||
class Report;
|
class Report;
|
||||||
|
|
||||||
class QString;
|
class QString;
|
||||||
|
|
||||||
|
/** Stores information about LVM PV or potentially encrypted LVM PV
|
||||||
|
* @author Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
*/
|
||||||
|
|
||||||
|
class LvmPV
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LvmPV(const QString vgName, const Partition* p, bool isLuks = false);
|
||||||
|
|
||||||
|
const QString vgName() const {
|
||||||
|
return m_vgName;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Partition* partition() const {
|
||||||
|
return m_p;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isLuks() const {
|
||||||
|
return m_isLuks;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString m_vgName;
|
||||||
|
const Partition *m_p;
|
||||||
|
bool m_isLuks;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
namespace FS
|
namespace FS
|
||||||
{
|
{
|
||||||
/** LVM2 physical volume.
|
/** LVM2 physical volume.
|
||||||
|
@ -38,8 +65,6 @@ namespace FS
|
||||||
*/
|
*/
|
||||||
class LIBKPMCORE_EXPORT lvm2_pv : public FileSystem
|
class LIBKPMCORE_EXPORT lvm2_pv : public FileSystem
|
||||||
{
|
{
|
||||||
public:
|
|
||||||
typedef QList<QPair<QString, const Partition *>> PhysicalVolumes;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
lvm2_pv(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label);
|
lvm2_pv(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label);
|
||||||
|
@ -120,8 +145,8 @@ public:
|
||||||
static qint64 getTotalPE(const QString& deviceNode);
|
static qint64 getTotalPE(const QString& deviceNode);
|
||||||
static qint64 getAllocatedPE(const QString& deviceNode);
|
static qint64 getAllocatedPE(const QString& deviceNode);
|
||||||
static QString getVGName(const QString& deviceNode);
|
static QString getVGName(const QString& deviceNode);
|
||||||
static PhysicalVolumes getPVinNode(const PartitionNode* parent);
|
static QList<LvmPV> getPVinNode(const PartitionNode* parent);
|
||||||
static PhysicalVolumes getPVs(const QList<Device*>& devices);
|
static QList<LvmPV> getPVs(const QList<Device*>& devices);
|
||||||
|
|
||||||
qint64 allocatedPE() const { return m_AllocatedPE; };
|
qint64 allocatedPE() const { return m_AllocatedPE; };
|
||||||
qint64 freePE() const { return m_TotalPE - m_AllocatedPE; };
|
qint64 freePE() const { return m_TotalPE - m_AllocatedPE; };
|
||||||
|
|
Loading…
Reference in New Issue