From f6799a3852ab6145a7bb62b2ec8bc8cd657623b1 Mon Sep 17 00:00:00 2001 From: Benjamin Gilbert Date: Mon, 20 Mar 2023 01:08:04 -0400 Subject: [PATCH 1/6] providers/packet: use stored client for boot checkin Store the retry::Client on the PacketProvider and use it for boot checkin to ease testing. --- src/providers/packet/mock_tests.rs | 7 +++++-- src/providers/packet/mod.rs | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/providers/packet/mock_tests.rs b/src/providers/packet/mock_tests.rs index d22543ceda92..ef26be4c7759 100644 --- a/src/providers/packet/mock_tests.rs +++ b/src/providers/packet/mock_tests.rs @@ -3,6 +3,7 @@ use mockito::{self, Matcher}; #[test] fn test_boot_checkin() { + let client = crate::retry::Client::try_new().unwrap().max_retries(0); let data = packet::PacketData { id: String::new(), hostname: String::new(), @@ -19,7 +20,10 @@ fn test_boot_checkin() { error: None, phone_home_url: mockito::server_url(), }; - let provider = packet::PacketProvider { data }; + let provider = packet::PacketProvider { + client: client.clone(), + data, + }; let mock = mockito::mock("POST", "/") .match_header( @@ -37,7 +41,6 @@ fn test_boot_checkin() { mockito::reset(); // Check error logic, but fail fast without re-trying. - let client = crate::retry::Client::try_new().unwrap().max_retries(0); packet::PacketProvider::fetch_content(Some(client)).unwrap_err(); } diff --git a/src/providers/packet/mod.rs b/src/providers/packet/mod.rs index be180a546583..98a4018581b4 100644 --- a/src/providers/packet/mod.rs +++ b/src/providers/packet/mod.rs @@ -90,6 +90,7 @@ struct PacketAddressInfo { #[derive(Clone, Debug)] pub struct PacketProvider { + client: retry::Client, data: PacketData, } @@ -113,7 +114,7 @@ impl PacketProvider { .send()? .ok_or_else(|| anyhow!("metadata endpoint unreachable"))?; - Ok(Self { data }) + Ok(Self { client, data }) } #[cfg(test)] @@ -386,9 +387,8 @@ impl MetadataProvider for PacketProvider { } fn boot_checkin(&self) -> Result<()> { - let client = retry::Client::try_new()?; let url = self.data.phone_home_url.clone(); - client.post(retry::Json, url, None).dispatch_post()?; + self.client.post(retry::Json, url, None).dispatch_post()?; Ok(()) } } -- 2.39.2