From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id A1B1F96844 for ; Wed, 25 Jan 2023 13:20:00 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 762D4F9C0 for ; Wed, 25 Jan 2023 13:19:30 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Wed, 25 Jan 2023 13:19:29 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 128AD46130 for ; Wed, 25 Jan 2023 13:19:29 +0100 (CET) From: Christoph Heiss To: pbs-devel@lists.proxmox.com Date: Wed, 25 Jan 2023 13:19:00 +0100 Message-Id: <20230125121902.404950-6-c.heiss@proxmox.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230125121902.404950-1-c.heiss@proxmox.com> References: <20230125121902.404950-1-c.heiss@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.053 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [RFC PATCH v2 pve-qemu 5/7] pve: Add patch to support new proxmox-backup-qemu API X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Jan 2023 12:20:00 -0000 Adds a QEMU patch to support the updated API from proxmox-backup-qemu, which adds a `protected_` parameter to `proxmox_backup_finish{,_async}`. Also exposes a new feature flag from `query-proxmox-support`, indicating whether this new parameter is supported by the proxmox-backup-client or not. Signed-off-by: Christoph Heiss --- Changes v1 -> v2: * Added information about new feature flag to commit message ...upport-for-protected-flag-to-proxmox.patch | 150 ++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 151 insertions(+) create mode 100644 debian/patches/pve/0063-PVE-Backup-Add-support-for-protected-flag-to-proxmox.patch diff --git a/debian/patches/pve/0063-PVE-Backup-Add-support-for-protected-flag-to-proxmox.patch b/debian/patches/pve/0063-PVE-Backup-Add-support-for-protected-flag-to-proxmox.patch new file mode 100644 index 0000000..4d69abd --- /dev/null +++ b/debian/patches/pve/0063-PVE-Backup-Add-support-for-protected-flag-to-proxmox.patch @@ -0,0 +1,150 @@ +From b40c4fe9cc04c95ddaf405fdb4d57cd000f91944 Mon Sep 17 00:00:00 2001 +From: Christoph Heiss +Date: Wed, 18 Jan 2023 10:35:01 +0100 +Subject: [PATCH] PVE-Backup: Add support for `protected` flag to + proxmox-backup-client + +Signed-off-by: Christoph Heiss +--- + block/monitor/block-hmp-cmds.c | 1 + + proxmox-backup-client.c | 3 ++- + proxmox-backup-client.h | 1 + + pve-backup.c | 6 +++++- + qapi/block-core.json | 11 +++++++++-- + 5 files changed, 18 insertions(+), 4 deletions(-) + +diff --git a/block/monitor/block-hmp-cmds.c b/block/monitor/block-hmp-cmds.c +index ab0c988ae9..fef9a25774 100644 +--- a/block/monitor/block-hmp-cmds.c ++++ b/block/monitor/block-hmp-cmds.c +@@ -1051,6 +1051,7 @@ void coroutine_fn hmp_backup(Monitor *mon, const QDict *qdict) + false, NULL, false, NULL, !!devlist, + devlist, qdict_haskey(qdict, "speed"), speed, + false, 0, // BackupPerf max-workers ++ false, false, // PBS protected + &error); + + hmp_handle_error(mon, error); +diff --git a/proxmox-backup-client.c b/proxmox-backup-client.c +index 0923037dec..50691e0993 100644 +--- a/proxmox-backup-client.c ++++ b/proxmox-backup-client.c +@@ -80,6 +80,7 @@ proxmox_backup_co_register_image( + int coroutine_fn + proxmox_backup_co_finish( + ProxmoxBackupHandle *pbs, ++ bool protected_, + Error **errp) + { + Coroutine *co = qemu_coroutine_self(); +@@ -89,7 +90,7 @@ proxmox_backup_co_finish( + int pbs_res = -1; + + proxmox_backup_finish_async( +- pbs, proxmox_backup_schedule_wake, &waker, &pbs_res, &pbs_err); ++ pbs, protected_, proxmox_backup_schedule_wake, &waker, &pbs_res, &pbs_err); + qemu_coroutine_yield(); + if (pbs_res < 0) { + if (errp) error_setg(errp, "backup finish failed: %s", pbs_err ? pbs_err : "unknown error"); +diff --git a/proxmox-backup-client.h b/proxmox-backup-client.h +index 8cbf645b2c..12c128f37c 100644 +--- a/proxmox-backup-client.h ++++ b/proxmox-backup-client.h +@@ -39,6 +39,7 @@ proxmox_backup_co_register_image( + int coroutine_fn + proxmox_backup_co_finish( + ProxmoxBackupHandle *pbs, ++ bool protected_, + Error **errp); + + int coroutine_fn +diff --git a/pve-backup.c b/pve-backup.c +index 3ca4f74cb8..d2469e6065 100644 +--- a/pve-backup.c ++++ b/pve-backup.c +@@ -55,6 +55,7 @@ static struct PVEBackupState { + bool starting; + } stat; + int64_t speed; ++ bool protected; + BackupPerf perf; + VmaWriter *vmaw; + ProxmoxBackupHandle *pbs; +@@ -257,7 +258,7 @@ static void coroutine_fn pvebackup_co_cleanup(void) + if (backup_state.pbs) { + if (!pvebackup_error_or_canceled()) { + Error *local_err = NULL; +- proxmox_backup_co_finish(backup_state.pbs, &local_err); ++ proxmox_backup_co_finish(backup_state.pbs, backup_state.protected, &local_err); + if (local_err != NULL) { + pvebackup_propagate_error(local_err); + } +@@ -585,6 +586,7 @@ UuidInfo coroutine_fn *qmp_backup( + bool has_devlist, const char *devlist, + bool has_speed, int64_t speed, + bool has_max_workers, int64_t max_workers, ++ bool has_protected, bool protected, + Error **errp) + { + assert(qemu_in_coroutine()); +@@ -914,6 +916,7 @@ UuidInfo coroutine_fn *qmp_backup( + qemu_mutex_unlock(&backup_state.stat.lock); + + backup_state.speed = (has_speed && speed > 0) ? speed : 0; ++ backup_state.protected = has_protected ? protected : false; + + backup_state.perf = (BackupPerf){ .max_workers = 16 }; + if (has_max_workers) { +@@ -1096,5 +1099,6 @@ ProxmoxSupportStatus *qmp_query_proxmox_support(Error **errp) + ret->query_bitmap_info = true; + ret->pbs_masterkey = true; + ret->backup_max_workers = true; ++ ret->pbs_protected_flag = true; + return ret; + } +diff --git a/qapi/block-core.json b/qapi/block-core.json +index 65795b7204..01d304022b 100644 +--- a/qapi/block-core.json ++++ b/qapi/block-core.json +@@ -831,6 +831,8 @@ + # + # @max-workers: see @BackupPerf for details. Default 16. + # ++# @protected: set backup as protected when finished (only for format 'pbs', defaults to false) ++# + # Returns: the uuid of the backup job + # + ## +@@ -851,7 +853,8 @@ + '*firewall-file': 'str', + '*devlist': 'str', + '*speed': 'int', +- '*max-workers': 'int' }, ++ '*max-workers': 'int', ++ '*protected': 'bool' }, + 'returns': 'UuidInfo', 'coroutine': true } + + ## +@@ -899,6 +902,9 @@ + # + # @pbs-library-version: Running version of libproxmox-backup-qemu0 library. + # ++# @pbs-protected-flag: True if the QMP backup call supports the ++# 'protected' parameter. ++# + ## + { 'struct': 'ProxmoxSupportStatus', + 'data': { 'pbs-dirty-bitmap': 'bool', +@@ -907,7 +913,8 @@ + 'pbs-dirty-bitmap-migration': 'bool', + 'pbs-masterkey': 'bool', + 'pbs-library-version': 'str', +- 'backup-max-workers': 'bool' } } ++ 'backup-max-workers': 'bool', ++ 'pbs-protected-flag': 'bool' } } + + ## + # @query-proxmox-support: +-- +2.34.1 + diff --git a/debian/patches/series b/debian/patches/series index f8e3fe8..7c44728 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -72,3 +72,4 @@ pve/0059-vma-create-support-64KiB-unaligned-input-images.patch pve/0060-vma-create-avoid-triggering-assertion-in-error-case.patch pve/0061-block-alloc-track-avoid-premature-break.patch pve/0062-PVE-Backup-allow-passing-max-workers-performance-set.patch +pve/0063-PVE-Backup-Add-support-for-protected-flag-to-proxmox.patch -- 2.34.1