mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
storage_source: Add flag storing whether threshold event was registered with index
When users register the threshold event for the top level image with an explicit index (e.g. vda[3]) they are clearly expecting the index in the event. This flag will help avoiding emission of the second event without the index when the client clearly requested one with the index. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
2f922b2c46
commit
2ddff1cc40
@ -387,6 +387,11 @@ struct _virStorageSource {
|
||||
char *nfs_group;
|
||||
uid_t nfs_uid;
|
||||
gid_t nfs_gid;
|
||||
|
||||
/* We need a flag to remember that the threshold event for this source was
|
||||
* registered with a full index (vda[3]) so that we can properly report just
|
||||
* one event for it */
|
||||
bool thresholdEventWithIndex;
|
||||
};
|
||||
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virStorageSource, virObjectUnref);
|
||||
|
@ -1951,6 +1951,7 @@ qemuStorageSourcePrivateDataParse(xmlXPathContextPtr ctxt,
|
||||
g_autofree char *encalias = NULL;
|
||||
g_autofree char *httpcookiealias = NULL;
|
||||
g_autofree char *tlskeyalias = NULL;
|
||||
g_autofree char *thresholdEventWithIndex = NULL;
|
||||
|
||||
src->nodestorage = virXPathString("string(./nodenames/nodename[@type='storage']/@name)", ctxt);
|
||||
src->nodeformat = virXPathString("string(./nodenames/nodename[@type='format']/@name)", ctxt);
|
||||
@ -1990,6 +1991,10 @@ qemuStorageSourcePrivateDataParse(xmlXPathContextPtr ctxt,
|
||||
if (virStorageSourcePrivateDataParseRelPath(ctxt, src) < 0)
|
||||
return -1;
|
||||
|
||||
if ((thresholdEventWithIndex = virXPathString("string(./thresholdEvent/@indexUsed)", ctxt)) &&
|
||||
virTristateBoolTypeFromString(thresholdEventWithIndex) == VIR_TRISTATE_BOOL_YES)
|
||||
src->thresholdEventWithIndex = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2044,6 +2049,9 @@ qemuStorageSourcePrivateDataFormat(virStorageSource *src,
|
||||
|
||||
virXMLFormatElement(buf, "objects", NULL, &tmp);
|
||||
|
||||
if (src->thresholdEventWithIndex)
|
||||
virBufferAddLit(buf, "<thresholdEvent indexUsed='yes'/>\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -340,6 +340,7 @@
|
||||
<secret type='tlskey' alias='tls-certificate-key-alias'/>
|
||||
<TLSx509 alias='transport-alias'/>
|
||||
</objects>
|
||||
<thresholdEvent indexUsed='yes'/>
|
||||
</privateData>
|
||||
</source>
|
||||
<backingStore/>
|
||||
|
Loading…
Reference in New Issue
Block a user