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 4E758639C4 for ; Mon, 5 Oct 2020 16:57:43 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 4136C1BF47 for ; Mon, 5 Oct 2020 16:57:13 +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 8DB6F1BF3F for ; Mon, 5 Oct 2020 16:57:12 +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 50D3744BF2 for ; Mon, 5 Oct 2020 16:57:12 +0200 (CEST) From: Thomas Lamprecht To: pbs-devel@lists.proxmox.com Date: Mon, 5 Oct 2020 16:57:03 +0200 Message-Id: <20201005145703.26529-1-t.lamprecht@proxmox.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.151 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment 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 Subject: [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: Mon, 05 Oct 2020 14:57:43 -0000 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. 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); -- 2.27.0