From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pdm-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 4AFFF1FF16D for <inbox@lore.proxmox.com>; Sun, 16 Mar 2025 22:39:32 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 95CF330228; Sun, 16 Mar 2025 22:39:22 +0100 (CET) Message-ID: <f85a72c3-ac3f-4015-b883-407706010344@proxmox.com> Date: Sun, 16 Mar 2025 22:39:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta To: Proxmox Datacenter Manager development discussion <pdm-devel@lists.proxmox.com>, Wolfgang Bumiller <w.bumiller@proxmox.com> References: <20250305150108.245584-1-w.bumiller@proxmox.com> Content-Language: en-GB From: Thomas Lamprecht <t.lamprecht@proxmox.com> In-Reply-To: <20250305150108.245584-1-w.bumiller@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.040 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 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: [pdm-devel] applied-series: [PATCH pdm 0/7] multi-remote client and node reachability cache X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion <pdm-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pdm-devel>, <mailto:pdm-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pdm-devel/> List-Post: <mailto:pdm-devel@lists.proxmox.com> List-Help: <mailto:pdm-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel>, <mailto:pdm-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox Datacenter Manager development discussion <pdm-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" <pdm-devel-bounces@lists.proxmox.com> On 05/03/2025 16:01, Wolfgang Bumiller wrote: > This consists of two functional parts and a tracing patch at the end. > > Excerpt of the original cover letter: > > 1) Patches 1 through 3: > The `MultiClient` which implements cycling through multiple remotes > when requests fail due to network issues. > > 2) Patches 4 through 6: > A task caching the remote reachability state as well as mapping > hostnames to the pve-side node-names. Currently this simply runs every > 60 seconds and goes through the current remotes+nodes and checks for > reachability. > If at that time the remote.cfg changed and the polling > task is still ongoing it will be aborted and started over with the new > config. > Finally, the reachability information will be used and updated by the > `MultiClient` implementation. > > 3) Patch 7 is mainly for debugging. I'm not sure whether we want to include > tracing instrumentation in general, or via a `#[cfg_attr]` or only for > debug builds... > It would probably also be nice to implicitly `#[instrument]` all the api > methods so we can follow along a trace from a specific api method. > (Currently I did this only temporarily without committing anything by > attaching, for example, a `#[instrument(name = > "api_method_list_nodes")]` attribute to the `list_nodes` api call to > more easily see the client usage via `journalctl -f > SPAN_NAME=api_method_list_nodes` on the shell... > > Changes since v1: > Only patch 1 is changed to include error messages from the last tried > client are also logged as noted by Lukas. > > Wolfgang Bumiller (7): > server: generic multi-client wrapper > server: store pve MultiClient for re-use > server: separate ConnectInfo from client creation > server: cache pve node reachability and names > server: don't try to connect to known-unreachable servers > server: try previously unreachable clients as last resort > server: add some tracing instrumentation > > lib/pdm-config/src/config_version_cache.rs | 33 +- > server/src/api/pve/mod.rs | 20 +- > .../main.rs} | 3 + > .../bin/proxmox-datacenter-api/tasks/mod.rs | 1 + > .../tasks/remote_node_mapping.rs | 228 +++++++ > server/src/connection.rs | 641 ++++++++++++++++-- > server/src/lib.rs | 1 + > server/src/remote_cache/mod.rs | 291 ++++++++ > 8 files changed, 1146 insertions(+), 72 deletions(-) > rename server/src/bin/{proxmox-datacenter-api.rs => proxmox-datacenter-api/main.rs} (99%) > create mode 100644 server/src/bin/proxmox-datacenter-api/tasks/mod.rs > create mode 100644 server/src/bin/proxmox-datacenter-api/tasks/remote_node_mapping.rs > create mode 100644 server/src/remote_cache/mod.rs > applied series, thanks! _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel