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 2944874F75 for ; Tue, 12 Oct 2021 10:52:23 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 202162979D for ; Tue, 12 Oct 2021 10:51:53 +0200 (CEST) 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 id 955A82978E for ; Tue, 12 Oct 2021 10:51:52 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 6EF5E45D29; Tue, 12 Oct 2021 10:51:52 +0200 (CEST) Message-ID: Date: Tue, 12 Oct 2021 10:51:51 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Thunderbird/94.0 Content-Language: en-US To: Proxmox Backup Server development discussion , Hannes Laimer References: <20211006151457.18508-1-h.laimer@proxmox.com> <20211006151457.18508-4-h.laimer@proxmox.com> From: Dominik Csapak In-Reply-To: <20211006151457.18508-4-h.laimer@proxmox.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.298 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 NICE_REPLY_A -0.001 Looks like a legit reply (A) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [datastore.rs] Subject: Re: [pbs-devel] [PATCH v2 proxmox-backup 3/4] api2: make maintenance type and msg updatable/deletable 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: Tue, 12 Oct 2021 08:52:23 -0000 as i said off-list and you wrote in the cover-letter, it'd probably make sense to avoid changing the maintenance mode when a datastore is currently held in a mode that conflicts with the given setting... this would require a refcounted variable for each mode (None, Read-only, Offline (maybe not that)) and a check here if it is set everytime a 'lookup' would happen, increase the count, everytime the reference is dropped, decrease the count (though we can always implement that later if we deem it not necessary) the big drawback of the approach currently, is that the admin might not immediately see that a task/api-call is running while setting the mode and thinking he can take the datastore offline for example (e.g. a large file-download) comment inline On 10/6/21 17:14, Hannes Laimer wrote: > --- > src/api2/config/datastore.rs | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/src/api2/config/datastore.rs b/src/api2/config/datastore.rs > index 0819d5ec..1f1bb9c1 100644 > --- a/src/api2/config/datastore.rs > +++ b/src/api2/config/datastore.rs > @@ -183,6 +183,10 @@ pub enum DeletableProperty { > notify_user, > /// Delete the notify property > notify, > + /// Delete the maintenance_type property > + maintenance_type, > + /// Delete the maintenance_msg property > + maintenance_msg, > } > > #[api( > @@ -249,6 +253,8 @@ pub fn update_datastore( > DeletableProperty::verify_new => { data.verify_new = None; }, > DeletableProperty::notify => { data.notify = None; }, > DeletableProperty::notify_user => { data.notify_user = None; }, > + DeletableProperty::maintenance_type => { data.maintenance_type = None; }, > + DeletableProperty::maintenance_msg => { data.maintenance_msg = None; }, i think it does not make sense to save the msg when the type is None. (this would be no issue if both would be in the same variable, see my comment in 1/4) > } > } > } > @@ -291,6 +297,8 @@ pub fn update_datastore( > } > } > if update.verify_new.is_some() { data.verify_new = update.verify_new; } > + if update.maintenance_type.is_some() { data.maintenance_type = update.maintenance_type; } > + if update.maintenance_msg.is_some() { data.maintenance_msg = update.maintenance_msg; } > > if update.notify_user.is_some() { data.notify_user = update.notify_user; } > >