[libvirt] [dbus PATCH 0/6] More DomainSet* APIs

Katerina Koukiou (6): Implement SetBlkioParameters method for Domain Interface Implement SetBlockIOTune method for Domain Interface Implement SetInterfaceParameters method for Domain Interface Implement SetMemoryParameters method for Domain Interface Implement SetNumaParameters method for Domain Interface Implement SetSchedulerParameters method for Domain Interface data/org.libvirt.Domain.xml | 37 ++++++++ src/domain.c | 200 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 237 insertions(+) -- 2.15.0

Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index 96b9220..4a69f25 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -410,6 +410,12 @@ <arg name="sigNum" type="u" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetBlkioParameters"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetBlkioParameters"/> + <arg name="params" type="a{sv}" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="SetMemory"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetMemoryFlags"/> diff --git a/src/domain.c b/src/domain.c index 76eec1d..726b90d 100644 --- a/src/domain.c +++ b/src/domain.c @@ -2127,6 +2127,38 @@ virtDBusDomainSendProcessSignal(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); } +static void +virtDBusDomainSetBlkioParameters(GVariant *inArgs, + GUnixFDList *inFDs G_GNUC_UNUSED, + const gchar *objectPath, + gpointer userData, + GVariant **outArgs G_GNUC_UNUSED, + GUnixFDList **outFDs G_GNUC_UNUSED, + GError **error) +{ + virtDBusConnect *connect = userData; + g_autoptr(virDomain) domain = NULL; + g_autoptr(GVariantIter) iter = NULL; + g_auto(virtDBusUtilTypedParams) params = { 0 }; + guint flags; + + g_variant_get(inArgs, "(a{sv}u)", &iter, &flags); + + if (!virtDBusUtilGVariantToTypedParams(iter, ¶ms.params, + ¶ms.nparams, error)) { + return; + } + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainSetBlkioParameters(domain, params.params, + params.nparams, flags) < 0) { + virtDBusUtilSetLastVirtError(error); + } +} + static void virtDBusDomainSetMemory(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -2488,6 +2520,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "Save", virtDBusDomainSave }, { "SendKey", virtDBusDomainSendKey }, { "SendProcessSignal", virtDBusDomainSendProcessSignal }, + { "SetBlkioParameters", virtDBusDomainSetBlkioParameters }, { "SetVcpus", virtDBusDomainSetVcpus }, { "SetMemory", virtDBusDomainSetMemory }, { "SetMemoryStatsPeriod", virtDBusDomainSetMemoryStatsPeriod }, -- 2.15.0

On Wed, Apr 25, 2018 at 07:22:37PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+)
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>

Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 7 +++++++ src/domain.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index 4a69f25..a7b0d22 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -416,6 +416,13 @@ <arg name="params" type="a{sv}" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetBlockIOTune"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetBlockIoTune"/> + <arg name="disk" type="s" direction="in"/> + <arg name="params" type="a{sv}" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="SetMemory"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetMemoryFlags"/> diff --git a/src/domain.c b/src/domain.c index 726b90d..51ab3ec 100644 --- a/src/domain.c +++ b/src/domain.c @@ -2159,6 +2159,39 @@ virtDBusDomainSetBlkioParameters(GVariant *inArgs, } } +static void +virtDBusDomainSetBlockIOTune(GVariant *inArgs, + GUnixFDList *inFDs G_GNUC_UNUSED, + const gchar *objectPath, + gpointer userData, + GVariant **outArgs G_GNUC_UNUSED, + GUnixFDList **outFDs G_GNUC_UNUSED, + GError **error) +{ + virtDBusConnect *connect = userData; + g_autoptr(virDomain) domain = NULL; + g_autoptr(GVariantIter) iter = NULL; + g_auto(virtDBusUtilTypedParams) params = { 0 }; + const gchar *disk; + guint flags; + + g_variant_get(inArgs, "(&sa{sv}u)", &disk, &iter, &flags); + + if (!virtDBusUtilGVariantToTypedParams(iter, ¶ms.params, + ¶ms.nparams, error)) { + return; + } + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainSetBlockIoTune(domain, disk, params.params, + params.nparams, flags) < 0) { + virtDBusUtilSetLastVirtError(error); + } +} + static void virtDBusDomainSetMemory(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -2521,6 +2554,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "SendKey", virtDBusDomainSendKey }, { "SendProcessSignal", virtDBusDomainSendProcessSignal }, { "SetBlkioParameters", virtDBusDomainSetBlkioParameters }, + { "SetBlockIOTune", virtDBusDomainSetBlockIOTune }, { "SetVcpus", virtDBusDomainSetVcpus }, { "SetMemory", virtDBusDomainSetMemory }, { "SetMemoryStatsPeriod", virtDBusDomainSetMemoryStatsPeriod }, -- 2.15.0

On Wed, Apr 25, 2018 at 07:22:38PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 7 +++++++ src/domain.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+)
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>

Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index a7b0d22..7bbe520 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -423,6 +423,12 @@ <arg name="params" type="a{sv}" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetInterfaceParameters"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetInterfaceParameters"/> + <arg name="params" type="a{sv}" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="SetMemory"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetMemoryFlags"/> diff --git a/src/domain.c b/src/domain.c index 51ab3ec..fb8db94 100644 --- a/src/domain.c +++ b/src/domain.c @@ -2192,6 +2192,39 @@ virtDBusDomainSetBlockIOTune(GVariant *inArgs, } } +static void +virtDBusDomainSetInterfaceParameters(GVariant *inArgs, + GUnixFDList *inFDs G_GNUC_UNUSED, + const gchar *objectPath, + gpointer userData, + GVariant **outArgs G_GNUC_UNUSED, + GUnixFDList **outFDs G_GNUC_UNUSED, + GError **error) +{ + virtDBusConnect *connect = userData; + g_autoptr(virDomain) domain = NULL; + g_autoptr(GVariantIter) iter = NULL; + g_auto(virtDBusUtilTypedParams) params = { 0 }; + const gchar *device; + guint flags; + + g_variant_get(inArgs, "(&sa{sv}u)", &device, &iter, &flags); + + if (!virtDBusUtilGVariantToTypedParams(iter, ¶ms.params, + ¶ms.nparams, error)) { + return; + } + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainSetInterfaceParameters(domain, device, params.params, + params.nparams, flags) < 0) { + virtDBusUtilSetLastVirtError(error); + } +} + static void virtDBusDomainSetMemory(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -2555,6 +2588,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "SendProcessSignal", virtDBusDomainSendProcessSignal }, { "SetBlkioParameters", virtDBusDomainSetBlkioParameters }, { "SetBlockIOTune", virtDBusDomainSetBlockIOTune }, + { "SetInterfaceParameters", virtDBusDomainSetInterfaceParameters }, { "SetVcpus", virtDBusDomainSetVcpus }, { "SetMemory", virtDBusDomainSetMemory }, { "SetMemoryStatsPeriod", virtDBusDomainSetMemoryStatsPeriod }, -- 2.15.0

On Wed, Apr 25, 2018 at 07:22:39PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+)
diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index a7b0d22..7bbe520 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -423,6 +423,12 @@ <arg name="params" type="a{sv}" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetInterfaceParameters"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetInterfaceParameters"/>
<arg name="device" type="s" direction="in"/> is missing. Reviewed-by: Pavel Hrdina <phrdina@redhat.com>

Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index 7bbe520..61ac52e 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -435,6 +435,12 @@ <arg name="memory" type="t" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetMemoryParameters"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetMemoryParameters"/> + <arg name="params" type="a{sv}" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="SetMemoryStatsPeriod"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetMemoryStatsPeriod"/> diff --git a/src/domain.c b/src/domain.c index fb8db94..0202a92 100644 --- a/src/domain.c +++ b/src/domain.c @@ -2250,6 +2250,38 @@ virtDBusDomainSetMemory(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); } +static void +virtDBusDomainSetMemoryParameters(GVariant *inArgs, + GUnixFDList *inFDs G_GNUC_UNUSED, + const gchar *objectPath, + gpointer userData, + GVariant **outArgs G_GNUC_UNUSED, + GUnixFDList **outFDs G_GNUC_UNUSED, + GError **error) +{ + virtDBusConnect *connect = userData; + g_autoptr(virDomain) domain = NULL; + g_autoptr(GVariantIter) iter = NULL; + g_auto(virtDBusUtilTypedParams) params = { 0 }; + guint flags; + + g_variant_get(inArgs, "(a{sv}u)", &iter, &flags); + + if (!virtDBusUtilGVariantToTypedParams(iter, ¶ms.params, + ¶ms.nparams, error)) { + return; + } + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainSetMemoryParameters(domain, params.params, + params.nparams, flags) < 0) { + virtDBusUtilSetLastVirtError(error); + } +} + static void virtDBusDomainSetMemoryStatsPeriod(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -2591,6 +2623,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "SetInterfaceParameters", virtDBusDomainSetInterfaceParameters }, { "SetVcpus", virtDBusDomainSetVcpus }, { "SetMemory", virtDBusDomainSetMemory }, + { "SetMemoryParameters", virtDBusDomainSetMemoryParameters }, { "SetMemoryStatsPeriod", virtDBusDomainSetMemoryStatsPeriod }, { "SetMetadata", virtDBusDomainSetMetadata }, { "SetPerfEvents", virtDBusDomainSetPerfEvents }, -- 2.15.0

On Wed, Apr 25, 2018 at 07:22:40PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+)
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>

Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index 61ac52e..12b5aa0 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -457,6 +457,12 @@ <arg name="uri" type="s" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetNumaParameters"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetNumaParameters"/> + <arg name="params" type="a{sv}" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="SetPerfEvents"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetPerfEvents"/> diff --git a/src/domain.c b/src/domain.c index 0202a92..5d3b810 100644 --- a/src/domain.c +++ b/src/domain.c @@ -2348,6 +2348,38 @@ virtDBusDomainSetMetadata(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); } +static void +virtDBusDomainSetNumaParameters(GVariant *inArgs, + GUnixFDList *inFDs G_GNUC_UNUSED, + const gchar *objectPath, + gpointer userData, + GVariant **outArgs G_GNUC_UNUSED, + GUnixFDList **outFDs G_GNUC_UNUSED, + GError **error) +{ + virtDBusConnect *connect = userData; + g_autoptr(virDomain) domain = NULL; + g_autoptr(GVariantIter) iter = NULL; + g_auto(virtDBusUtilTypedParams) params = { 0 }; + guint flags; + + g_variant_get(inArgs, "(a{sv}u)", &iter, &flags); + + if (!virtDBusUtilGVariantToTypedParams(iter, ¶ms.params, + ¶ms.nparams, error)) { + return; + } + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainSetNumaParameters(domain, params.params, + params.nparams, flags) < 0) { + virtDBusUtilSetLastVirtError(error); + } +} + static void virtDBusDomainSetPerfEvents(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -2626,6 +2658,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "SetMemoryParameters", virtDBusDomainSetMemoryParameters }, { "SetMemoryStatsPeriod", virtDBusDomainSetMemoryStatsPeriod }, { "SetMetadata", virtDBusDomainSetMetadata }, + { "SetNumaParameters", virtDBusDomainSetNumaParameters }, { "SetPerfEvents", virtDBusDomainSetPerfEvents }, { "SetTime", virtDBusDomainSetTime }, { "SetUserPassword", virtDBusDomainSetUserPassword }, -- 2.15.0

On Wed, Apr 25, 2018 at 07:22:41PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+)
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>

Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index 12b5aa0..8670582 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -469,6 +469,12 @@ <arg name="params" type="a{sv}" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetSchedulerParameters"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetSchedulerParameters"/> + <arg name="params" type="a{sv}" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="SetUserPassword"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetUserPassword"/> diff --git a/src/domain.c b/src/domain.c index 5d3b810..ec5b99c 100644 --- a/src/domain.c +++ b/src/domain.c @@ -2410,6 +2410,38 @@ virtDBusDomainSetPerfEvents(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); } +static void +virtDBusDomainSetSchedulerParameters(GVariant *inArgs, + GUnixFDList *inFDs G_GNUC_UNUSED, + const gchar *objectPath, + gpointer userData, + GVariant **outArgs G_GNUC_UNUSED, + GUnixFDList **outFDs G_GNUC_UNUSED, + GError **error) +{ + virtDBusConnect *connect = userData; + g_autoptr(virDomain) domain = NULL; + g_autoptr(GVariantIter) iter = NULL; + g_auto(virtDBusUtilTypedParams) params = { 0 }; + guint flags; + + g_variant_get(inArgs, "(a{sv}u)", &iter, &flags); + + if (!virtDBusUtilGVariantToTypedParams(iter, ¶ms.params, + ¶ms.nparams, error)) { + return; + } + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainSetSchedulerParametersFlags(domain, params.params, + params.nparams, flags) < 0) { + virtDBusUtilSetLastVirtError(error); + } +} + static void virtDBusDomainSetUserPassword(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -2660,6 +2692,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "SetMetadata", virtDBusDomainSetMetadata }, { "SetNumaParameters", virtDBusDomainSetNumaParameters }, { "SetPerfEvents", virtDBusDomainSetPerfEvents }, + { "SetSchedulerParameters", virtDBusDomainSetSchedulerParameters }, { "SetTime", virtDBusDomainSetTime }, { "SetUserPassword", virtDBusDomainSetUserPassword }, { "Shutdown", virtDBusDomainShutdown }, -- 2.15.0

On Wed, Apr 25, 2018 at 07:22:42PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+)
diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index 12b5aa0..8670582 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -469,6 +469,12 @@ <arg name="params" type="a{sv}" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetSchedulerParameters"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetSchedulerParameters"/>
s/virDomainSetSchedulerParameters/virDomainSetSchedulerParametersFlags/ Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
participants (2)
-
Katerina Koukiou
-
Pavel Hrdina