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 F3B93618CF for ; Wed, 21 Oct 2020 20:33:34 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id EAB9019F71 for ; Wed, 21 Oct 2020 20:33:04 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (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 6E1B219F64 for ; Wed, 21 Oct 2020 20:33:04 +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 3F46D45EB3 for ; Wed, 21 Oct 2020 20:33:04 +0200 (CEST) From: Thomas Lamprecht To: pbs-devel@lists.proxmox.com Reply-To: Proxmox Backup Server development discussion References: <20201005145703.26529-1-t.lamprecht@proxmox.com> Message-ID: <3c7181e5-9e21-9071-cfd5-dd97884e024e@proxmox.com> Date: Wed, 21 Oct 2020 20:32:59 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Thunderbird/82.0 MIME-Version: 1.0 In-Reply-To: <20201005145703.26529-1-t.lamprecht@proxmox.com> Content-Type: text/plain; charset=UTF-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.127 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) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust 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. [ping.rs, api2.rs] Subject: Re: [pbs-devel] [PATCH backup] api: add world accessible ping dummy endpoint 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, 21 Oct 2020 18:33:35 -0000 On 05.10.20 16:57, Thomas Lamprecht wrote: > This is indented to be used for the PVE storage library, replacing > the missuse of the much more expensive status API call. > > Signed-off-by: Thomas Lamprecht > --- > > I initially thought about adding this to the proxmox-backup-client as command, > but it's not much of use there (user can just use the version command) and for > the PVE integration we can do a simple http request with LWP, which is much > cheaper than fork+exec the client there. > any objections to this? Else I'd apply it as is.. > src/api2.rs | 2 ++ > src/api2/ping.rs | 29 +++++++++++++++++++++++++++++ > 2 files changed, 31 insertions(+) > create mode 100644 src/api2/ping.rs > > diff --git a/src/api2.rs b/src/api2.rs > index 85d29ed2..27ef2975 100644 > --- a/src/api2.rs > +++ b/src/api2.rs > @@ -7,6 +7,7 @@ pub mod reader; > pub mod status; > pub mod types; > pub mod version; > +pub mod ping; > pub mod pull; > mod helpers; > > @@ -22,6 +23,7 @@ pub const SUBDIRS: SubdirMap = &[ > ("backup", &backup::ROUTER), > ("config", &config::ROUTER), > ("nodes", &NODES_ROUTER), > + ("ping", &ping::ROUTER), > ("pull", &pull::ROUTER), > ("reader", &reader::ROUTER), > ("status", &status::ROUTER), > diff --git a/src/api2/ping.rs b/src/api2/ping.rs > new file mode 100644 > index 00000000..087b1377 > --- /dev/null > +++ b/src/api2/ping.rs > @@ -0,0 +1,29 @@ > +use anyhow::{Error}; > +use serde_json::{json, Value}; > + > +use proxmox::api::{api, Router, Permission}; > + > +#[api( > + returns: { > + description: "Dummy ping", > + type: Object, > + properties: { > + pong: { > + description: "Always true", > + type: bool, > + } > + } > + }, > + access: { > + description: "Anyone can access this, because it's used for a cheap check if the API daemon is online.", > + permission: &Permission::World, > + } > +)] > +/// Dummy method which replies with `{ "pong": True }` > +fn ping() -> Result { > + Ok(json!({ > + "pong": true, > + })) > +} > +pub const ROUTER: Router = Router::new() > + .get(&API_METHOD_PING); >