A CT disk statistics is reported with prefix "hdd" and we should use
it to extract data.
Signed-off-by: Maxim Nestratov <mnestratov(a)virtuozzo.com>
---
src/vz/vz_driver.c | 10 ++++++++--
src/vz/vz_sdk.c | 5 +++--
src/vz/vz_sdk.h | 2 +-
3 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
index a634ed2..3a22b07 100644
--- a/src/vz/vz_driver.c
+++ b/src/vz/vz_driver.c
@@ -1743,7 +1743,10 @@ vzDomainBlockStatsImpl(virDomainObjPtr dom,
virReportError(VIR_ERR_INVALID_ARG, _("invalid path: %s"), path);
return -1;
}
- if (prlsdkGetBlockStats(privdom->stats, dom->def->disks[idx], stats)
< 0)
+ if (prlsdkGetBlockStats(privdom->stats,
+ dom->def->disks[idx],
+ stats,
+ IS_CT(dom->def)) < 0)
return -1;
} else {
virDomainBlockStatsStruct s;
@@ -1756,7 +1759,10 @@ vzDomainBlockStatsImpl(virDomainObjPtr dom,
#undef PARALLELS_ZERO_STATS
for (i = 0; i < dom->def->ndisks; i++) {
- if (prlsdkGetBlockStats(privdom->stats, dom->def->disks[i], &s)
< 0)
+ if (prlsdkGetBlockStats(privdom->stats,
+ dom->def->disks[i],
+ &s,
+ IS_CT(dom->def)) < 0)
return -1;
#define PARALLELS_SUM_STATS(VAR, TYPE, NAME) \
diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
index 9b8b48e..dff531f 100644
--- a/src/vz/vz_sdk.c
+++ b/src/vz/vz_sdk.c
@@ -4360,7 +4360,8 @@ prlsdkExtractStatsParam(PRL_HANDLE sdkstats, const char *name, long
long *val)
int
prlsdkGetBlockStats(PRL_HANDLE sdkstats,
virDomainDiskDefPtr disk,
- virDomainBlockStatsPtr stats)
+ virDomainBlockStatsPtr stats,
+ bool isCt)
{
virDomainDeviceDriveAddressPtr address;
int idx;
@@ -4379,7 +4380,7 @@ prlsdkGetBlockStats(PRL_HANDLE sdkstats,
idx = address->unit;
break;
case VIR_DOMAIN_DISK_BUS_SCSI:
- prefix = "scsi";
+ prefix = isCt ? "hdd" : "scsi";
idx = address->unit;
break;
default:
diff --git a/src/vz/vz_sdk.h b/src/vz/vz_sdk.h
index ef789ab..e4e46dc 100644
--- a/src/vz/vz_sdk.h
+++ b/src/vz/vz_sdk.h
@@ -63,7 +63,7 @@ prlsdkDetachDevice(vzDriverPtr driver, virDomainObjPtr dom,
virDomainDeviceDefPt
int
prlsdkUpdateDevice(vzDriverPtr driver, virDomainObjPtr dom, virDomainDeviceDefPtr dev);
int
-prlsdkGetBlockStats(PRL_HANDLE sdkstats, virDomainDiskDefPtr disk, virDomainBlockStatsPtr
stats);
+prlsdkGetBlockStats(PRL_HANDLE sdkstats, virDomainDiskDefPtr disk, virDomainBlockStatsPtr
stats, bool isCt);
int
prlsdkGetNetStats(PRL_HANDLE sdkstas, PRL_HANDLE sdkdom, const char *path,
virDomainInterfaceStatsPtr stats);
int
--
2.4.11