Pass the scheduler element name instead of trying to reconstructing
it from the attribute name.
This has the benefit of not mixing '%s' with regular text in
translatable strings as well as preventing the confusion when
the 's' marking the plural in the element name ('vcpus') is taken
as a first letter of the 'sched' suffix.
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
Fixes: 7ea55a481dd45f09b54425005362533ecc800cd2
Fixes: 99c5fe0e7c26c08103415248ffef1f5acb81ddc7
---
src/conf/domain_conf.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index fd968635fe..0f12b54575 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -19965,6 +19965,7 @@ virDomainEmulatorSchedParse(xmlNodePtr node,
static virBitmapPtr
virDomainSchedulerParse(xmlNodePtr node,
+ const char *elementName,
const char *attributeName,
virProcessSchedPolicy *policy,
int *priority)
@@ -19974,8 +19975,8 @@ virDomainSchedulerParse(xmlNodePtr node,
if (!(tmp = virXMLPropString(node, attributeName))) {
virReportError(VIR_ERR_XML_ERROR,
- _("Missing attribute '%s' in element
'%sched'"),
- attributeName, attributeName);
+ _("Missing attribute '%s' in element
'%s'"),
+ attributeName, elementName);
goto error;
}
@@ -20002,6 +20003,7 @@ virDomainSchedulerParse(xmlNodePtr node,
static int
virDomainThreadSchedParseHelper(xmlNodePtr node,
+ const char *elementName,
const char *attributeName,
virDomainThreadSchedParamPtr (*func)(virDomainDefPtr,
unsigned int),
virDomainDefPtr def)
@@ -20012,7 +20014,8 @@ virDomainThreadSchedParseHelper(xmlNodePtr node,
int priority = 0;
g_autoptr(virBitmap) map = NULL;
- if (!(map = virDomainSchedulerParse(node, attributeName, &policy,
&priority)))
+ if (!(map = virDomainSchedulerParse(node, elementName, attributeName,
+ &policy, &priority)))
return -1;
while ((next = virBitmapNextSetBit(map, next)) > -1) {
@@ -20021,8 +20024,8 @@ virDomainThreadSchedParseHelper(xmlNodePtr node,
if (sched->policy != VIR_PROC_POLICY_NONE) {
virReportError(VIR_ERR_XML_DETAIL,
- _("%ssched attributes 'vcpus' must not
overlap"),
- STREQ(attributeName, "vcpus") ? "vcpu" :
attributeName);
+ _("'%s' attributes 'vcpus' must not
overlap"),
+ elementName);
return -1;
}
@@ -20038,7 +20041,9 @@ static int
virDomainVcpuThreadSchedParse(xmlNodePtr node,
virDomainDefPtr def)
{
- return virDomainThreadSchedParseHelper(node, "vcpus",
+ return virDomainThreadSchedParseHelper(node,
+ "vcpusched",
+ "vcpus",
virDomainDefGetVcpuSched,
def);
}
@@ -20065,7 +20070,9 @@ static int
virDomainIOThreadSchedParse(xmlNodePtr node,
virDomainDefPtr def)
{
- return virDomainThreadSchedParseHelper(node, "iothreads",
+ return virDomainThreadSchedParseHelper(node,
+ "iothreadsched",
+ "iothreads",
virDomainDefGetIOThreadSched,
def);
}
--
2.26.2