mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-23 06:23:10 +00:00
test_driver: Implement testDomainSetIOThreadParams
Signed-off-by: Luke Yue <lukedyue@gmail.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
cde87e941f
commit
fd205b6712
@ -9628,6 +9628,7 @@ testDomainGetIOThreadInfo(virDomainPtr dom,
|
|||||||
typedef enum {
|
typedef enum {
|
||||||
VIR_DOMAIN_IOTHREAD_ACTION_ADD,
|
VIR_DOMAIN_IOTHREAD_ACTION_ADD,
|
||||||
VIR_DOMAIN_IOTHREAD_ACTION_DEL,
|
VIR_DOMAIN_IOTHREAD_ACTION_DEL,
|
||||||
|
VIR_DOMAIN_IOTHREAD_ACTION_MOD,
|
||||||
} virDomainIOThreadAction;
|
} virDomainIOThreadAction;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -9659,6 +9660,16 @@ testDomainChgIOThread(virDomainObj *vm,
|
|||||||
|
|
||||||
virDomainIOThreadIDDel(def, iothread_id);
|
virDomainIOThreadIDDel(def, iothread_id);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VIR_DOMAIN_IOTHREAD_ACTION_MOD:
|
||||||
|
if (!(virDomainIOThreadIDFind(def, iothread_id))) {
|
||||||
|
virReportError(VIR_ERR_INVALID_ARG,
|
||||||
|
_("cannot find IOThread '%u' in iothreadids"),
|
||||||
|
iothread_id);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -9803,6 +9814,84 @@ testDomainPinIOThread(virDomainPtr dom,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
testDomainIOThreadParseParams(virTypedParameterPtr params,
|
||||||
|
int nparams,
|
||||||
|
testIOThreadInfo *iothread)
|
||||||
|
{
|
||||||
|
if (virTypedParamsValidate(params, nparams,
|
||||||
|
VIR_DOMAIN_IOTHREAD_POLL_MAX_NS,
|
||||||
|
VIR_TYPED_PARAM_ULLONG,
|
||||||
|
VIR_DOMAIN_IOTHREAD_POLL_GROW,
|
||||||
|
VIR_TYPED_PARAM_UINT,
|
||||||
|
VIR_DOMAIN_IOTHREAD_POLL_SHRINK,
|
||||||
|
VIR_TYPED_PARAM_UINT,
|
||||||
|
NULL) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (virTypedParamsGetULLong(params, nparams,
|
||||||
|
VIR_DOMAIN_IOTHREAD_POLL_MAX_NS,
|
||||||
|
&iothread->poll_max_ns) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (virTypedParamsGetUInt(params, nparams,
|
||||||
|
VIR_DOMAIN_IOTHREAD_POLL_GROW,
|
||||||
|
&iothread->poll_grow) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (virTypedParamsGetUInt(params, nparams,
|
||||||
|
VIR_DOMAIN_IOTHREAD_POLL_SHRINK,
|
||||||
|
&iothread->poll_shrink) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
testDomainSetIOThreadParams(virDomainPtr dom,
|
||||||
|
unsigned int iothread_id,
|
||||||
|
virTypedParameterPtr params,
|
||||||
|
int nparams,
|
||||||
|
unsigned int flags)
|
||||||
|
{
|
||||||
|
virDomainObj *vm = NULL;
|
||||||
|
testDomainObjPrivate *priv;
|
||||||
|
size_t i;
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE, -1);
|
||||||
|
|
||||||
|
if (iothread_id == 0) {
|
||||||
|
virReportError(VIR_ERR_INVALID_ARG, "%s",
|
||||||
|
_("invalid value of 0 for iothread_id"));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(vm = testDomObjFromDomain(dom)))
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
if (testDomainChgIOThread(vm, iothread_id,
|
||||||
|
VIR_DOMAIN_IOTHREAD_ACTION_MOD, flags) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
priv = vm->privateData;
|
||||||
|
|
||||||
|
for (i = 0; i < priv->iothreads->len; i++) {
|
||||||
|
testIOThreadInfo *iothread = &g_array_index(priv->iothreads,
|
||||||
|
testIOThreadInfo, i);
|
||||||
|
if (iothread->iothread_id == iothread_id) {
|
||||||
|
if (testDomainIOThreadParseParams(params, nparams, iothread) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
ret = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
virDomainObjEndAPI(&vm);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Test driver
|
* Test driver
|
||||||
*/
|
*/
|
||||||
@ -9873,6 +9962,7 @@ static virHypervisorDriver testHypervisorDriver = {
|
|||||||
.domainAddIOThread = testDomainAddIOThread, /* 7.8.0 */
|
.domainAddIOThread = testDomainAddIOThread, /* 7.8.0 */
|
||||||
.domainDelIOThread = testDomainDelIOThread, /* 7.8.0 */
|
.domainDelIOThread = testDomainDelIOThread, /* 7.8.0 */
|
||||||
.domainPinIOThread = testDomainPinIOThread, /* 7.8.0 */
|
.domainPinIOThread = testDomainPinIOThread, /* 7.8.0 */
|
||||||
|
.domainSetIOThreadParams = testDomainSetIOThreadParams, /* 7.8.0 */
|
||||||
.domainGetSecurityLabel = testDomainGetSecurityLabel, /* 7.5.0 */
|
.domainGetSecurityLabel = testDomainGetSecurityLabel, /* 7.5.0 */
|
||||||
.nodeGetSecurityModel = testNodeGetSecurityModel, /* 7.5.0 */
|
.nodeGetSecurityModel = testNodeGetSecurityModel, /* 7.5.0 */
|
||||||
.domainGetXMLDesc = testDomainGetXMLDesc, /* 0.1.4 */
|
.domainGetXMLDesc = testDomainGetXMLDesc, /* 0.1.4 */
|
||||||
|
Loading…
Reference in New Issue
Block a user