LVM support #6

Closed
andrius wants to merge 109 commits from (deleted):lvm-support-rebase into master
2 changed files with 55 additions and 10 deletions
Showing only changes of commit 786bf82935 - Show all commits

View File

@ -173,30 +173,72 @@ bool lvm2_pv::canUnmount(const QString& deviceNode) const
return true;
}
qint64 lvm2_pv::getTotalPE(const QString& deviceNode) const
qint64 lvm2_pv::getTotalPE(const QString& deviceNode)
{
QString val = getpvField(QStringLiteral("pv_pe_count"), deviceNode);
return val.isEmpty() ? -1 : val.toLongLong();
}
qint64 lvm2_pv::getFreePE(const QString& deviceNode) const
qint64 lvm2_pv::getTotalPE(const QStringList& deviceNodeList)
{
qint64 sum = 0;
foreach (QString deviceNode, deviceNodeList) {
qint64 totalPE = getTotalPE(deviceNode);
if (totalPE < 0) {
sum = -1;
break;
}
sum += totalPE;
}
return sum;
}
qint64 lvm2_pv::getFreePE(const QString& deviceNode)
{
return getTotalPE(deviceNode) - getAllocatedPE(deviceNode);
}
qint64 lvm2_pv::getAllocatedPE(const QString& deviceNode) const
qint64 lvm2_pv::getFreePE(const QStringList& deviceNodeList)
{
qint64 sum = 0;
foreach (QString deviceNode, deviceNodeList) {
qint64 freePE = getFreePE(deviceNode);
if (freePE < 0) {
sum = -1;
break;
}
sum += freePE;
}
return sum;
}
qint64 lvm2_pv::getAllocatedPE(const QString& deviceNode)
{
QString val = getpvField(QStringLiteral("pv_pe_alloc_count"), deviceNode);
return val.isEmpty() ? -1 : val.toLongLong();
}
qint64 lvm2_pv::getPVSize(const QString& deviceNode) const
qint64 lvm2_pv::getAllocatedPE(const QStringList& deviceNodeList)
{
qint64 sum = 0;
foreach (QString deviceNode, deviceNodeList) {
qint64 allocatedPE = getAllocatedPE(deviceNode);
if (allocatedPE < 0) {
sum = -1;
break;
}
sum += allocatedPE;
}
return sum;
}
qint64 lvm2_pv::getPVSize(const QString& deviceNode)
{
QString val = getpvField(QStringLiteral("pv_size"), deviceNode);
return val.isEmpty() ? -1 : val.toLongLong();
}
qint64 lvm2_pv::getPESize(const QString& deviceNode) const
qint64 lvm2_pv::getPESize(const QString& deviceNode)
{
QString val = getpvField(QStringLiteral("vg_extent_size"), deviceNode);
return val.isEmpty() ? -1 : val.toLongLong();

View File

@ -100,11 +100,14 @@ public:
SupportTool supportToolName() const override;
bool supportToolFound() const override;
qint64 getTotalPE(const QString& deviceNode) const;
qint64 getFreePE(const QString& deviceNode) const;
qint64 getAllocatedPE(const QString& deviceNode) const;
qint64 getPESize(const QString& deviceNode) const; // return PE size in bytes
qint64 getPVSize(const QString& deviceNode) const; // return PV size in bytes
static qint64 getTotalPE(const QString& deviceNode);
static qint64 getTotalPE(const QStringList& deviceNodeList);
static qint64 getFreePE(const QString& deviceNode);
static qint64 getFreePE(const QStringList& deviceNodeList);
static qint64 getAllocatedPE(const QString& deviceNode);
static qint64 getAllocatedPE(const QStringList& deviceNodeList);
static qint64 getPESize(const QString& deviceNode); // return PE size in bytes
static qint64 getPVSize(const QString& deviceNode); // return PV size in bytes
static bool isUsed(const QString& pvNode);