[libvirt] [PATCH v2 07/25] backup: Implement backup APIs for remote driver

Peter Krempa pkrempa at redhat.com
Tue Dec 3 17:17:29 UTC 2019


From: Eric Blake <eblake at redhat.com>

This one is fairly straightforward - the generator already does what
we need.

Signed-off-by: Eric Blake <eblake at redhat.com>
Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/remote/remote_driver.c   |  2 ++
 src/remote/remote_protocol.x | 33 ++++++++++++++++++++++++++++++++-
 src/remote_protocol-structs  | 15 +++++++++++++++
 3 files changed, 49 insertions(+), 1 deletion(-)

diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index a1384fc655..ddb95914a6 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -8702,6 +8702,8 @@ static virHypervisorDriver hypervisor_driver = {
     .domainCheckpointDelete = remoteDomainCheckpointDelete, /* 5.6.0 */
     .domainGetGuestInfo = remoteDomainGetGuestInfo, /* 5.7.0 */
     .domainAgentSetResponseTimeout = remoteDomainAgentSetResponseTimeout, /* 5.10.0 */
+    .domainBackupBegin = remoteDomainBackupBegin, /* 6.0.0 */
+    .domainBackupGetXMLDesc = remoteDomainBackupGetXMLDesc, /* 6.0.0 */
 };

 static virNetworkDriver network_driver = {
diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x
index 23e42d17b1..c79cb98ae8 100644
--- a/src/remote/remote_protocol.x
+++ b/src/remote/remote_protocol.x
@@ -3754,6 +3754,23 @@ struct remote_domain_agent_set_response_timeout_ret {
     int result;
 };

+
+struct remote_domain_backup_begin_args {
+    remote_nonnull_domain dom;
+    remote_string backup_xml;
+    remote_string checkpoint_xml;
+    unsigned int flags;
+};
+
+struct remote_domain_backup_get_xml_desc_args {
+    remote_nonnull_domain dom;
+    unsigned int flags;
+};
+
+struct remote_domain_backup_get_xml_desc_ret {
+    remote_nonnull_string xml;
+};
+
 /*----- Protocol. -----*/

 /* Define the program number, protocol version and procedure numbers here. */
@@ -6633,5 +6650,19 @@ enum remote_procedure {
      * @generate: both
      * @acl: domain:write
      */
-    REMOTE_PROC_DOMAIN_AGENT_SET_RESPONSE_TIMEOUT = 420
+    REMOTE_PROC_DOMAIN_AGENT_SET_RESPONSE_TIMEOUT = 420,
+
+    /**
+     * @generate: both
+     * @acl: domain:checkpoint
+     * @acl: domain:block_write
+     */
+    REMOTE_PROC_DOMAIN_BACKUP_BEGIN = 421,
+
+    /**
+     * @generate: both
+     * @priority: high
+     * @acl: domain:read
+     */
+    REMOTE_PROC_DOMAIN_BACKUP_GET_XML_DESC = 422
 };
diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs
index 9ad7a857e0..abc5c5fd2c 100644
--- a/src/remote_protocol-structs
+++ b/src/remote_protocol-structs
@@ -3122,6 +3122,19 @@ struct remote_domain_agent_set_response_timeout_args {
 struct remote_domain_agent_set_response_timeout_ret {
         int                        result;
 };
+struct remote_domain_backup_begin_args {
+        remote_nonnull_domain      dom;
+        remote_string              backup_xml;
+        remote_string              checkpoint_xml;
+        u_int                      flags;
+};
+struct remote_domain_backup_get_xml_desc_args {
+        remote_nonnull_domain      dom;
+        u_int                      flags;
+};
+struct remote_domain_backup_get_xml_desc_ret {
+        remote_nonnull_string      xml;
+};
 enum remote_procedure {
         REMOTE_PROC_CONNECT_OPEN = 1,
         REMOTE_PROC_CONNECT_CLOSE = 2,
@@ -3543,4 +3556,6 @@ enum remote_procedure {
         REMOTE_PROC_DOMAIN_GET_GUEST_INFO = 418,
         REMOTE_PROC_CONNECT_SET_IDENTITY = 419,
         REMOTE_PROC_DOMAIN_AGENT_SET_RESPONSE_TIMEOUT = 420,
+        REMOTE_PROC_DOMAIN_BACKUP_BEGIN = 421,
+        REMOTE_PROC_DOMAIN_BACKUP_GET_XML_DESC = 422,
 };
-- 
2.23.0




More information about the libvir-list mailing list