[libvirt] [dbus PATCH 0/6] Some Set APIs for Domain Interface

Katerina Koukiou (6): Implement BlockJobSetSpeed for Domain Interface Implement MigrateSetCompressionCache method for Domain Interface Implement SetUserPassword method for Domain Interface Implement SetTime method for Domain Interface Implement SetMetadata method for Domain Interface Implement SetMemoryStatsPeriod method for Domain Interface data/org.libvirt.Domain.xml | 43 +++++++++++ src/domain.c | 178 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 221 insertions(+) -- 2.15.0

Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 7 +++++++ src/domain.c | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index ffb40d1..0f0ec79 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -107,6 +107,13 @@ <arg name="size" type="t" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="BlockJobSetSpeed"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainBlockJobSetSpeed"/> + <arg name="disk" type="s" direction="in"/> + <arg name="bandwidth" type="t" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="CoreDump"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainCoreDumpWithFormat"/> diff --git a/src/domain.c b/src/domain.c index 5e59094..465daa6 100644 --- a/src/domain.c +++ b/src/domain.c @@ -442,6 +442,31 @@ virtDBusDomainBlockJobAbort(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); } +static void +virtDBusDomainBlockJobSetSpeed(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; + const gchar *disk; + gulong bandwidth; + guint flags; + + g_variant_get(inArgs, "(&stu)", &disk, &bandwidth, &flags); + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainBlockJobSetSpeed(domain, disk, bandwidth, flags) < 0) + virtDBusUtilSetLastVirtError(error); +} + static void virtDBusDomainBlockPeek(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -1573,6 +1598,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "AttachDevice", virtDBusDomainAttachDevice }, { "BlockCommit", virtDBusDomainBlockCommit }, { "BlockJobAbort", virtDBusDomainBlockJobAbort }, + { "BlockJobSetSpeed", virtDBusDomainBlockJobSetSpeed }, { "BlockPeek", virtDBusDomainBlockPeek }, { "BlockPull", virtDBusDomainBlockPull }, { "BlockRebase", virtDBusDomainBlockRebase }, -- 2.15.0

On Wed, Apr 18, 2018 at 05:47:26PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 7 +++++++ src/domain.c | 26 ++++++++++++++++++++++++++ 2 files changed, 33 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 | 25 +++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index 0f0ec79..a6edfec 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -240,6 +240,12 @@ <arg name="flags" type="u" direction="in"/> <arg name="bandwidth" type="t" direction="out"/> </method> + <method name="MigrateSetCompressionCache"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainMigrateSetCompressionCache"/> + <arg name="cacheSize" type="t" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="MigrateSetMaxDowntime"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainMigrateSetMaxDowntime"/> diff --git a/src/domain.c b/src/domain.c index 465daa6..e4146fe 100644 --- a/src/domain.c +++ b/src/domain.c @@ -1185,6 +1185,30 @@ virtDBusDomainMigrateGetMaxSpeed(GVariant *inArgs, *outArgs = g_variant_new("(t)", bandwidth); } +static void +virtDBusDomainMigrateSetCompressionCache(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; + gulong cacheSize; + guint flags; + + g_variant_get(inArgs, "(tu)", &cacheSize, &flags); + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainMigrateSetCompressionCache(domain, cacheSize, flags) < 0) + virtDBusUtilSetLastVirtError(error); +} + static void virtDBusDomainMigrateSetMaxDowntime(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -1624,6 +1648,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "MemoryStats", virtDBusDomainMemoryStats }, { "MigrateGetMaxDowntime", virtDBusDomainMigrateGetMaxDowntime }, { "MigrateGetMaxSpeed", virtDBusDomainMigrateGetMaxSpeed }, + { "MigrateSetCompressionCache", virtDBusDomainMigrateSetCompressionCache }, { "MigrateSetMaxDowntime", virtDBusDomainMigrateSetMaxDowntime }, { "MigrateSetMaxSpeed", virtDBusDomainMigrateSetMaxSpeed }, { "MigrateStartPostCopy", virtDBusDomainMigrateStartPostCopy }, -- 2.15.0

On Wed, Apr 18, 2018 at 05:47:27PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 25 +++++++++++++++++++++++++ 2 files changed, 31 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 | 27 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index a6edfec..a16a13f 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -312,6 +312,13 @@ <arg name="memory" type="t" 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"/> + <arg name="user" type="s" direction="in"/> + <arg name="password" type="s" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="SetVcpus"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetVcpusFlags"/> diff --git a/src/domain.c b/src/domain.c index e4146fe..e7ef054 100644 --- a/src/domain.c +++ b/src/domain.c @@ -1487,6 +1487,32 @@ virtDBusDomainSetMemory(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); } +static void +virtDBusDomainSetUserPassword(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; + const gchar *user; + const gchar *password; + guint flags; + + g_variant_get(inArgs, "(&s&su)", &user, &password, &flags); + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainSetUserPassword(domain, user, password, flags) < 0) + virtDBusUtilSetLastVirtError(error); +} + static void virtDBusDomainSetVcpus(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -1661,6 +1687,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "SendProcessSignal", virtDBusDomainSendProcessSignal }, { "SetVcpus", virtDBusDomainSetVcpus }, { "SetMemory", virtDBusDomainSetMemory }, + { "SetUserPassword", virtDBusDomainSetUserPassword }, { "Shutdown", virtDBusDomainShutdown }, { "Suspend", virtDBusDomainSuspend }, { "Undefine", virtDBusDomainUndefine }, -- 2.15.0

On Wed, Apr 18, 2018 at 05:47:28PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 7 +++++++ src/domain.c | 27 +++++++++++++++++++++++++++ 2 files changed, 34 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 | 27 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index a16a13f..901f84a 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -319,6 +319,13 @@ <arg name="password" type="s" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetTime"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetTime"/> + <arg name="seconds" type="t" direction="in"/> + <arg name="nseconds" type="u" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="SetVcpus"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetVcpusFlags"/> diff --git a/src/domain.c b/src/domain.c index e7ef054..d636328 100644 --- a/src/domain.c +++ b/src/domain.c @@ -1513,6 +1513,32 @@ virtDBusDomainSetUserPassword(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); } +static void +virtDBusDomainSetTime(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; + gulong seconds; + guint nseconds; + guint flags; + + g_variant_get(inArgs, "(tuu)", & seconds, &nseconds, &flags); + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainSetTime(domain, seconds, nseconds, flags) < 0) + virtDBusUtilSetLastVirtError(error); +} + static void virtDBusDomainSetVcpus(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -1687,6 +1713,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "SendProcessSignal", virtDBusDomainSendProcessSignal }, { "SetVcpus", virtDBusDomainSetVcpus }, { "SetMemory", virtDBusDomainSetMemory }, + { "SetTime", virtDBusDomainSetTime }, { "SetUserPassword", virtDBusDomainSetUserPassword }, { "Shutdown", virtDBusDomainShutdown }, { "Suspend", virtDBusDomainSuspend }, -- 2.15.0

On Wed, Apr 18, 2018 at 05:47:29PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 7 +++++++ src/domain.c | 27 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+)
diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index a16a13f..901f84a 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -319,6 +319,13 @@ <arg name="password" type="s" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetTime"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetTime"/> + <arg name="seconds" type="t" direction="in"/> + <arg name="nseconds" type="u" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="SetVcpus"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetVcpusFlags"/> diff --git a/src/domain.c b/src/domain.c index e7ef054..d636328 100644 --- a/src/domain.c +++ b/src/domain.c @@ -1513,6 +1513,32 @@ virtDBusDomainSetUserPassword(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); }
+static void +virtDBusDomainSetTime(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; + gulong seconds; + guint nseconds; + guint flags; + + g_variant_get(inArgs, "(tuu)", & seconds, &nseconds, &flags);
^ extra space here Reviewed-by: Pavel Hrdina <phrdina@redhat.com>

Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 10 ++++++++++ src/domain.c | 47 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index 901f84a..f2ecb1f 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -312,6 +312,16 @@ <arg name="memory" type="t" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetMetadata"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetMetadata + Empty string can be used to pass a NULL as @key or @uri argument."/> + <arg name="type" type="s" direction="in"/> + <arg name="metadata" type="s" direction="in"/> + <arg name="key" type="s" direction="in"/> + <arg name="uri" type="s" 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 d636328..c3c530e 100644 --- a/src/domain.c +++ b/src/domain.c @@ -27,6 +27,13 @@ VIRT_DBUS_ENUM_IMPL(virtDBusDomainMemoryStat, "usable", "last_update") +VIRT_DBUS_ENUM_DECL(virtDBusDomainMetadata) +VIRT_DBUS_ENUM_IMPL(virtDBusDomainMetadata, + VIR_DOMAIN_METADATA_LAST, + "description", + "title", + "element") + static GVariant * virtDBusDomainMemoryStatsToGVariant(virDomainMemoryStatPtr stats, gint nr_stats) @@ -1487,6 +1494,45 @@ virtDBusDomainSetMemory(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); } +static void +virtDBusDomainSetMetadata(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; + const gchar *typeStr; + gint type; + const gchar *metadata; + const gchar *key; + const gchar *uri; + guint flags; + + g_variant_get(inArgs, "(&s&s&s&su)", &typeStr, &metadata, &key, &uri, &flags); + if (g_str_equal(key, "")) + key = NULL; + if (g_str_equal(uri, "")) + uri = NULL; + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + type = virtDBusDomainMetadataTypeFromString(typeStr); + if (type < 0) + g_set_error(error, VIRT_DBUS_ERROR, VIRT_DBUS_ERROR_LIBVIRT, + "Can't get valid virDomainMetadataType from string '%s'.", + typeStr); + + if (virDomainSetMetadata(domain, type, metadata, key, uri, flags) < 0) + virtDBusUtilSetLastVirtError(error); +} + static void virtDBusDomainSetUserPassword(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -1713,6 +1759,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "SendProcessSignal", virtDBusDomainSendProcessSignal }, { "SetVcpus", virtDBusDomainSetVcpus }, { "SetMemory", virtDBusDomainSetMemory }, + { "SetMetadata", virtDBusDomainSetMetadata }, { "SetTime", virtDBusDomainSetTime }, { "SetUserPassword", virtDBusDomainSetUserPassword }, { "Shutdown", virtDBusDomainShutdown }, -- 2.15.0

On Wed, Apr 18, 2018 at 05:47:30PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 10 ++++++++++ src/domain.c | 47 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+)
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>

On Wed, Apr 18, 2018 at 05:47:30PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 10 ++++++++++ src/domain.c | 47 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+)
diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index 901f84a..f2ecb1f 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -312,6 +312,16 @@ <arg name="memory" type="t" direction="in"/> <arg name="flags" type="u" direction="in"/> </method> + <method name="SetMetadata"> + <annotation name="org.gtk.GDBus.DocString" + value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetMetadata + Empty string can be used to pass a NULL as @key or @uri argument."/> + <arg name="type" type="s" direction="in"/> + <arg name="metadata" type="s" direction="in"/> + <arg name="key" type="s" direction="in"/> + <arg name="uri" type="s" 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 d636328..c3c530e 100644 --- a/src/domain.c +++ b/src/domain.c @@ -27,6 +27,13 @@ VIRT_DBUS_ENUM_IMPL(virtDBusDomainMemoryStat, "usable", "last_update")
+VIRT_DBUS_ENUM_DECL(virtDBusDomainMetadata) +VIRT_DBUS_ENUM_IMPL(virtDBusDomainMetadata, + VIR_DOMAIN_METADATA_LAST, + "description", + "title", + "element") + static GVariant * virtDBusDomainMemoryStatsToGVariant(virDomainMemoryStatPtr stats, gint nr_stats) @@ -1487,6 +1494,45 @@ virtDBusDomainSetMemory(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); }
+static void +virtDBusDomainSetMetadata(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; + const gchar *typeStr; + gint type; + const gchar *metadata; + const gchar *key; + const gchar *uri; + guint flags; + + g_variant_get(inArgs, "(&s&s&s&su)", &typeStr, &metadata, &key, &uri, &flags); + if (g_str_equal(key, "")) + key = NULL; + if (g_str_equal(uri, "")) + uri = NULL; + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + type = virtDBusDomainMetadataTypeFromString(typeStr); + if (type < 0) + g_set_error(error, VIRT_DBUS_ERROR, VIRT_DBUS_ERROR_LIBVIRT, + "Can't get valid virDomainMetadataType from string '%s'.", + typeStr);
Missing return if the error is set. For some reason I forgot to mention it.
+ + if (virDomainSetMetadata(domain, type, metadata, key, uri, flags) < 0) + virtDBusUtilSetLastVirtError(error); +} + static void virtDBusDomainSetUserPassword(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -1713,6 +1759,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "SendProcessSignal", virtDBusDomainSendProcessSignal }, { "SetVcpus", virtDBusDomainSetVcpus }, { "SetMemory", virtDBusDomainSetMemory }, + { "SetMetadata", virtDBusDomainSetMetadata }, { "SetTime", virtDBusDomainSetTime }, { "SetUserPassword", virtDBusDomainSetUserPassword }, { "Shutdown", virtDBusDomainShutdown }, -- 2.15.0
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list

Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/data/org.libvirt.Domain.xml b/data/org.libvirt.Domain.xml index f2ecb1f..7ced3ff 100644 --- a/data/org.libvirt.Domain.xml +++ b/data/org.libvirt.Domain.xml @@ -312,6 +312,12 @@ <arg name="memory" type="t" 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"/> + <arg name="period" type="i" direction="in"/> + <arg name="flags" type="u" direction="in"/> + </method> <method name="SetMetadata"> <annotation name="org.gtk.GDBus.DocString" value="See https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainSetMetadata diff --git a/src/domain.c b/src/domain.c index c3c530e..1a62c21 100644 --- a/src/domain.c +++ b/src/domain.c @@ -1494,6 +1494,31 @@ virtDBusDomainSetMemory(GVariant *inArgs, virtDBusUtilSetLastVirtError(error); } +static void +virtDBusDomainSetMemoryStatsPeriod(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; + gint period; + guint flags; + + g_variant_get(inArgs, "(iu)", &period, &flags); + + domain = virtDBusDomainGetVirDomain(connect, objectPath, error); + if (!domain) + return; + + if (virDomainSetMemoryStatsPeriod(domain, period, flags) < 0) + virtDBusUtilSetLastVirtError(error); +} + static void virtDBusDomainSetMetadata(GVariant *inArgs, GUnixFDList *inFDs G_GNUC_UNUSED, @@ -1759,6 +1784,7 @@ static virtDBusGDBusMethodTable virtDBusDomainMethodTable[] = { { "SendProcessSignal", virtDBusDomainSendProcessSignal }, { "SetVcpus", virtDBusDomainSetVcpus }, { "SetMemory", virtDBusDomainSetMemory }, + { "SetMemoryStatsPeriod", virtDBusDomainSetMemoryStatsPeriod }, { "SetMetadata", virtDBusDomainSetMetadata }, { "SetTime", virtDBusDomainSetTime }, { "SetUserPassword", virtDBusDomainSetUserPassword }, -- 2.15.0

On Wed, Apr 18, 2018 at 05:47:31PM +0200, Katerina Koukiou wrote:
Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com> --- data/org.libvirt.Domain.xml | 6 ++++++ src/domain.c | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+)
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
participants (2)
-
Katerina Koukiou
-
Pavel Hrdina