mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 01:45:17 +00:00
vz: get disks statistics for CTs
A CT disk statistics is reported with prefix "hdd" and we should use it to extract data. Signed-off-by: Maxim Nestratov <mnestratov@virtuozzo.com>
This commit is contained in:
parent
7eda8369fc
commit
e4aa80dfde
@ -1746,7 +1746,10 @@ vzDomainBlockStatsImpl(virDomainObjPtr dom,
|
|||||||
virReportError(VIR_ERR_INVALID_ARG, _("invalid path: %s"), path);
|
virReportError(VIR_ERR_INVALID_ARG, _("invalid path: %s"), path);
|
||||||
return -1;
|
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;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
virDomainBlockStatsStruct s;
|
virDomainBlockStatsStruct s;
|
||||||
@ -1759,7 +1762,10 @@ vzDomainBlockStatsImpl(virDomainObjPtr dom,
|
|||||||
#undef PARALLELS_ZERO_STATS
|
#undef PARALLELS_ZERO_STATS
|
||||||
|
|
||||||
for (i = 0; i < dom->def->ndisks; i++) {
|
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;
|
return -1;
|
||||||
|
|
||||||
#define PARALLELS_SUM_STATS(VAR, TYPE, NAME) \
|
#define PARALLELS_SUM_STATS(VAR, TYPE, NAME) \
|
||||||
|
@ -4367,7 +4367,8 @@ prlsdkExtractStatsParam(PRL_HANDLE sdkstats, const char *name, long long *val)
|
|||||||
int
|
int
|
||||||
prlsdkGetBlockStats(PRL_HANDLE sdkstats,
|
prlsdkGetBlockStats(PRL_HANDLE sdkstats,
|
||||||
virDomainDiskDefPtr disk,
|
virDomainDiskDefPtr disk,
|
||||||
virDomainBlockStatsPtr stats)
|
virDomainBlockStatsPtr stats,
|
||||||
|
bool isCt)
|
||||||
{
|
{
|
||||||
virDomainDeviceDriveAddressPtr address;
|
virDomainDeviceDriveAddressPtr address;
|
||||||
int idx;
|
int idx;
|
||||||
@ -4376,23 +4377,29 @@ prlsdkGetBlockStats(PRL_HANDLE sdkstats,
|
|||||||
char *name = NULL;
|
char *name = NULL;
|
||||||
|
|
||||||
address = &disk->info.addr.drive;
|
address = &disk->info.addr.drive;
|
||||||
switch (disk->bus) {
|
|
||||||
case VIR_DOMAIN_DISK_BUS_IDE:
|
if (isCt) {
|
||||||
prefix = "ide";
|
prefix = "hdd";
|
||||||
idx = address->bus * 2 + address->unit;
|
|
||||||
break;
|
|
||||||
case VIR_DOMAIN_DISK_BUS_SATA:
|
|
||||||
prefix = "sata";
|
|
||||||
idx = address->unit;
|
idx = address->unit;
|
||||||
break;
|
} else {
|
||||||
case VIR_DOMAIN_DISK_BUS_SCSI:
|
switch (disk->bus) {
|
||||||
prefix = "scsi";
|
case VIR_DOMAIN_DISK_BUS_IDE:
|
||||||
idx = address->unit;
|
prefix = "ide";
|
||||||
break;
|
idx = address->bus * 2 + address->unit;
|
||||||
default:
|
break;
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
case VIR_DOMAIN_DISK_BUS_SATA:
|
||||||
_("Unknown disk bus: %X"), disk->bus);
|
prefix = "sata";
|
||||||
goto cleanup;
|
idx = address->unit;
|
||||||
|
break;
|
||||||
|
case VIR_DOMAIN_DISK_BUS_SCSI:
|
||||||
|
prefix = "scsi";
|
||||||
|
idx = address->unit;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
|
_("Unknown disk bus: %X"), disk->bus);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ prlsdkDetachDevice(vzDriverPtr driver, virDomainObjPtr dom, virDomainDeviceDefPt
|
|||||||
int
|
int
|
||||||
prlsdkUpdateDevice(vzDriverPtr driver, virDomainObjPtr dom, virDomainDeviceDefPtr dev);
|
prlsdkUpdateDevice(vzDriverPtr driver, virDomainObjPtr dom, virDomainDeviceDefPtr dev);
|
||||||
int
|
int
|
||||||
prlsdkGetBlockStats(PRL_HANDLE sdkstats, virDomainDiskDefPtr disk, virDomainBlockStatsPtr stats);
|
prlsdkGetBlockStats(PRL_HANDLE sdkstats, virDomainDiskDefPtr disk, virDomainBlockStatsPtr stats, bool isCt);
|
||||||
int
|
int
|
||||||
prlsdkGetNetStats(PRL_HANDLE sdkstas, PRL_HANDLE sdkdom, const char *path, virDomainInterfaceStatsPtr stats);
|
prlsdkGetNetStats(PRL_HANDLE sdkstas, PRL_HANDLE sdkdom, const char *path, virDomainInterfaceStatsPtr stats);
|
||||||
int
|
int
|
||||||
|
Loading…
x
Reference in New Issue
Block a user