mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-07 12:17:18 +00:00
remote: introduce remoteGetSchedulerParametersFlags
* daemon/remote.c (remoteDispatchDomainGetSchedulerParameters): New function. * src/remote/remote_driver.c (remoteDomainGetSchedulerParameters): Likewise. * src/remote/remote_protocol.x (remote_domain_get_scheduler_parameters_flags_args) (remote_domain_get_scheduler_parameters_flags_ret): New types. (remote_procedure): New RPC. * src/remote_protocol-structs: Likewise.
This commit is contained in:
parent
8432170f6f
commit
baa371eca0
@ -684,6 +684,59 @@ no_memory:
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
static int
|
||||
remoteDispatchDomainGetSchedulerParametersFlags(struct qemud_server *server ATTRIBUTE_UNUSED,
|
||||
struct qemud_client *client ATTRIBUTE_UNUSED,
|
||||
virConnectPtr conn,
|
||||
remote_message_header *hdr ATTRIBUTE_UNUSED,
|
||||
remote_error *rerr,
|
||||
remote_domain_get_scheduler_parameters_flags_args *args,
|
||||
remote_domain_get_scheduler_parameters_flags_ret *ret)
|
||||
{
|
||||
virDomainPtr dom = NULL;
|
||||
virTypedParameterPtr params = NULL;
|
||||
int nparams = args->nparams;
|
||||
int rv = -1;
|
||||
|
||||
if (!conn) {
|
||||
virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (nparams > REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX) {
|
||||
virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
|
||||
goto cleanup;
|
||||
}
|
||||
if (VIR_ALLOC_N(params, nparams) < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (!(dom = get_nonnull_domain(conn, args->dom)))
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainGetSchedulerParametersFlags(dom, params, &nparams,
|
||||
args->flags) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (remoteSerializeTypedParameters(params, nparams,
|
||||
&ret->params.params_len,
|
||||
&ret->params.params_val) < 0)
|
||||
goto cleanup;
|
||||
|
||||
rv = 0;
|
||||
|
||||
cleanup:
|
||||
if (rv < 0)
|
||||
remoteDispatchError(rerr);
|
||||
if (dom)
|
||||
virDomainFree(dom);
|
||||
VIR_FREE(params);
|
||||
return rv;
|
||||
|
||||
no_memory:
|
||||
virReportOOMError();
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
static int
|
||||
remoteDispatchDomainSetSchedulerParameters(struct qemud_server *server ATTRIBUTE_UNUSED,
|
||||
struct qemud_client *client ATTRIBUTE_UNUSED,
|
||||
|
@ -2466,6 +2466,45 @@ done:
|
||||
return rv;
|
||||
}
|
||||
|
||||
static int
|
||||
remoteDomainGetSchedulerParametersFlags (virDomainPtr domain,
|
||||
virTypedParameterPtr params,
|
||||
int *nparams,
|
||||
unsigned int flags)
|
||||
{
|
||||
int rv = -1;
|
||||
remote_domain_get_scheduler_parameters_flags_args args;
|
||||
remote_domain_get_scheduler_parameters_flags_ret ret;
|
||||
struct private_data *priv = domain->conn->privateData;
|
||||
|
||||
remoteDriverLock(priv);
|
||||
|
||||
make_nonnull_domain (&args.dom, domain);
|
||||
args.nparams = *nparams;
|
||||
args.flags = flags;
|
||||
|
||||
memset (&ret, 0, sizeof ret);
|
||||
if (call (domain->conn, priv, 0, REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS_FLAGS,
|
||||
(xdrproc_t) xdr_remote_domain_get_scheduler_parameters_flags_args, (char *) &args,
|
||||
(xdrproc_t) xdr_remote_domain_get_scheduler_parameters_flags_ret, (char *) &ret) == -1)
|
||||
goto done;
|
||||
|
||||
if (remoteDeserializeTypedParameters(ret.params.params_len,
|
||||
ret.params.params_val,
|
||||
REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX,
|
||||
params,
|
||||
nparams) < 0)
|
||||
goto cleanup;
|
||||
|
||||
rv = 0;
|
||||
|
||||
cleanup:
|
||||
xdr_free ((xdrproc_t) xdr_remote_domain_get_scheduler_parameters_flags_ret, (char *) &ret);
|
||||
done:
|
||||
remoteDriverUnlock(priv);
|
||||
return rv;
|
||||
}
|
||||
|
||||
static int
|
||||
remoteDomainSetSchedulerParameters (virDomainPtr domain,
|
||||
virTypedParameterPtr params, int nparams)
|
||||
@ -6424,7 +6463,9 @@ static virDriver remote_driver = {
|
||||
.domainSetAutostart = remoteDomainSetAutostart, /* 0.3.0 */
|
||||
.domainGetSchedulerType = remoteDomainGetSchedulerType, /* 0.3.0 */
|
||||
.domainGetSchedulerParameters = remoteDomainGetSchedulerParameters, /* 0.3.0 */
|
||||
.domainGetSchedulerParametersFlags = remoteDomainGetSchedulerParametersFlags, /* 0.9.2 */
|
||||
.domainSetSchedulerParameters = remoteDomainSetSchedulerParameters, /* 0.3.0 */
|
||||
.domainSetSchedulerParametersFlags = remoteDomainSetSchedulerParametersFlags, /* 0.9.2 */
|
||||
.domainMigratePrepare = remoteDomainMigratePrepare, /* 0.3.2 */
|
||||
.domainMigratePerform = remoteDomainMigratePerform, /* 0.3.2 */
|
||||
.domainMigrateFinish = remoteDomainMigrateFinish, /* 0.3.2 */
|
||||
@ -6478,7 +6519,6 @@ static virDriver remote_driver = {
|
||||
.domainMigratePerform3 = remoteDomainMigratePerform3, /* 0.9.2 */
|
||||
.domainMigrateFinish3 = remoteDomainMigrateFinish3, /* 0.9.2 */
|
||||
.domainMigrateConfirm3 = remoteDomainMigrateConfirm3, /* 0.9.2 */
|
||||
.domainSetSchedulerParametersFlags = remoteDomainSetSchedulerParametersFlags, /* 0.9.2 */
|
||||
};
|
||||
|
||||
static virNetworkDriver network_driver = {
|
||||
|
@ -434,6 +434,16 @@ struct remote_domain_get_scheduler_parameters_ret {
|
||||
remote_typed_param params<REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX>;
|
||||
};
|
||||
|
||||
struct remote_domain_get_scheduler_parameters_flags_args {
|
||||
remote_nonnull_domain dom;
|
||||
int nparams;
|
||||
unsigned int flags;
|
||||
};
|
||||
|
||||
struct remote_domain_get_scheduler_parameters_flags_ret {
|
||||
remote_typed_param params<REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX>;
|
||||
};
|
||||
|
||||
struct remote_domain_set_scheduler_parameters_args {
|
||||
remote_nonnull_domain dom;
|
||||
remote_typed_param params<REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX>;
|
||||
@ -2281,7 +2291,8 @@ enum remote_procedure {
|
||||
REMOTE_PROC_INTERFACE_CHANGE_BEGIN = 220, /* autogen autogen */
|
||||
|
||||
REMOTE_PROC_INTERFACE_CHANGE_COMMIT = 221, /* autogen autogen */
|
||||
REMOTE_PROC_INTERFACE_CHANGE_ROLLBACK = 222 /* autogen autogen */
|
||||
REMOTE_PROC_INTERFACE_CHANGE_ROLLBACK = 222, /* autogen autogen */
|
||||
REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS_FLAGS = 223 /* skipgen skipgen */
|
||||
/*
|
||||
* Notice how the entries are grouped in sets of 10 ?
|
||||
* Nice isn't it. Please keep it this way when adding more.
|
||||
|
@ -151,6 +151,17 @@ struct remote_domain_get_scheduler_parameters_ret {
|
||||
remote_typed_param * params_val;
|
||||
} params;
|
||||
};
|
||||
struct remote_domain_get_scheduler_parameters_flags_args {
|
||||
remote_nonnull_domain dom;
|
||||
int nparams;
|
||||
u_int flags;
|
||||
};
|
||||
struct remote_domain_get_scheduler_parameters_flags_ret {
|
||||
struct {
|
||||
u_int params_len;
|
||||
remote_typed_param * params_val;
|
||||
} params;
|
||||
};
|
||||
struct remote_domain_set_scheduler_parameters_args {
|
||||
remote_nonnull_domain dom;
|
||||
struct {
|
||||
|
Loading…
x
Reference in New Issue
Block a user