From 42adc45937bb2cb9663c9beff7ba4fa459deb199 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 21 Aug 2019 20:42:43 -0500 Subject: [PATCH] backup: Implement backup APIs for remote driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This one is fairly straightforward - the generator already does what we need. Signed-off-by: Eric Blake Signed-off-by: Peter Krempa Reviewed-by: Daniel P. Berrangé Reviewed-by: Ján Tomko --- 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..79cdb13a90 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_nonnull_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..bae0f0b545 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_nonnull_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, }; -- GitLab