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) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with UTF8SMTPS id 7799379BCE for ; Wed, 5 May 2021 14:49:19 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with UTF8SMTP id 5FEAB16074 for ; Wed, 5 May 2021 14:48:49 +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) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with UTF8SMTPS id 3AD9C16064 for ; Wed, 5 May 2021 14:48:48 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with UTF8SMTP id 0A99142958; Wed, 5 May 2021 14:48:48 +0200 (CEST) Message-ID: <58b41e0d-5e95-2a4e-b3ae-1d8a1886df95@proxmox.com> Date: Wed, 5 May 2021 14:48:47 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:89.0) Gecko/20100101 Thunderbird/89.0 Content-Language: en-US To: Thomas Lamprecht , Proxmox Backup Server development discussion References: <20210505100918.506-1-d.csapak@proxmox.com> <20210505100918.506-7-d.csapak@proxmox.com> <42c27eef-2f1c-f7b2-fa06-11b477192531@proxmox.com> From: Dominik Csapak In-Reply-To: <42c27eef-2f1c-f7b2-fa06-11b477192531@proxmox.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.132 Adjusted score from AWL reputation of From: address 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) POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes 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. [tape.read] Subject: Re: [pbs-devel] [PATCH proxmox-backup v2 6/8] api2/tape/restore: add 'restore-single' api path 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, 05 May 2021 12:49:19 -0000 On 5/5/21 12:53, Thomas Lamprecht wrote: > On 05.05.21 12:09, Dominik Csapak wrote: >> @@ -182,6 +190,608 @@ fn check_datastore_privs( >> } >> >> pub const ROUTER: Router = Router::new().post(&API_METHOD_RESTORE); >> +pub const ROUTER_SINGLE: Router = Router::new().post(&API_METHOD_RESTORE_SINGLE); >> + >> +#[api( >> + input: { >> + properties: { >> + store: { >> + schema: DATASTORE_MAP_LIST_SCHEMA, >> + }, >> + drive: { >> + schema: DRIVE_NAME_SCHEMA, >> + }, >> + "media-set": { >> + description: "Media set UUID.", >> + type: String, >> + }, >> + "snapshots": { >> + description: "List of snapshots.", >> + type: Array, >> + items: { >> + type: String, >> + description: "A single snapshot in format: 'store:type/group/id'." >> + }, >> + }, > > restore-*single* which may restore a list of snapshots, rather weird... > > Why is snapshots not just an optional parameter of the default restore path? > > We have already all other parameters there, would make it less confusing from > an outside POV and allow reusing some code if done right.. > thanks. yes that make sense, i'll integrate it. (i overestimated the non-overlapping parts of the api calls, turns out they share much if i do a little refactoring...) >> + "notify-user": { >> + type: Userid, >> + optional: true, >> + }, >> + owner: { >> + type: Authid, >> + optional: true, >> + }, >> + }, >> + }, >> + returns: { >> + schema: UPID_SCHEMA, >> + }, >> + access: { >> + // Note: parameters are no uri parameter, so we need to test inside function body >> + description: "The user needs Tape.Read privilege on /tape/pool/{pool} \ >> + and /tape/drive/{drive}, Datastore.Backup privilege on /datastore/{store}.", >> + permission: &Permission::Anybody, >> + }, >> +)]