From 46889d768ee2aa37e35a7c4003e1a924a8e92759 Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Fri, 15 Dec 2023 15:21:05 +0000 Subject: [PATCH 1/2] move client to separate crate --- Cargo.lock | 14 +++++++++++++- Cargo.toml | 2 ++ control_plane/Cargo.toml | 2 +- control_plane/src/pageserver.rs | 2 +- pageserver/client/Cargo.toml | 13 +++++++++++++ pageserver/{src/client.rs => client/src/lib.rs} | 0 pageserver/{src/client => client/src}/mgmt_api.rs | 5 ++--- pageserver/src/lib.rs | 1 - 8 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 pageserver/client/Cargo.toml rename pageserver/{src/client.rs => client/src/lib.rs} (100%) rename pageserver/{src/client => client/src}/mgmt_api.rs (97%) diff --git a/Cargo.lock b/Cargo.lock index a435aeb7d0..22fde5d2d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1256,8 +1256,8 @@ dependencies = [ "hyper", "nix 0.26.2", "once_cell", - "pageserver", "pageserver_api", + "pageserver_client", "postgres", "postgres_backend", "postgres_connection", @@ -3177,6 +3177,18 @@ dependencies = [ "workspace_hack", ] +[[package]] +name = "pageserver_client" +version = "0.1.0" +dependencies = [ + "async-trait", + "pageserver_api", + "reqwest", + "serde", + "thiserror", + "utils", +] + [[package]] name = "parking" version = "2.1.1" diff --git a/Cargo.toml b/Cargo.toml index 496a9d7839..b44544d626 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,7 @@ members = [ "control_plane", "pageserver", "pageserver/ctl", + "pageserver/client", "proxy", "safekeeper", "storage_broker", @@ -182,6 +183,7 @@ compute_api = { version = "0.1", path = "./libs/compute_api/" } consumption_metrics = { version = "0.1", path = "./libs/consumption_metrics/" } metrics = { version = "0.1", path = "./libs/metrics/" } pageserver_api = { version = "0.1", path = "./libs/pageserver_api/" } +pageserver_client = { path = "./pageserver/client" } postgres_backend = { version = "0.1", path = "./libs/postgres_backend/" } postgres_connection = { version = "0.1", path = "./libs/postgres_connection/" } postgres_ffi = { version = "0.1", path = "./libs/postgres_ffi/" } diff --git a/control_plane/Cargo.toml b/control_plane/Cargo.toml index face604241..898ad05add 100644 --- a/control_plane/Cargo.toml +++ b/control_plane/Cargo.toml @@ -29,8 +29,8 @@ tokio.workspace = true tokio-postgres.workspace = true tokio-util.workspace = true url.workspace = true -pageserver = { path = "../pageserver" } pageserver_api.workspace = true +pageserver_client.workspace = true postgres_backend.workspace = true safekeeper_api.workspace = true postgres_connection.workspace = true diff --git a/control_plane/src/pageserver.rs b/control_plane/src/pageserver.rs index a0256c1e52..7d490016bf 100644 --- a/control_plane/src/pageserver.rs +++ b/control_plane/src/pageserver.rs @@ -17,9 +17,9 @@ use std::time::Duration; use anyhow::{bail, Context}; use camino::Utf8PathBuf; use futures::SinkExt; -use pageserver::client::mgmt_api; use pageserver_api::models::{self, LocationConfig, TenantInfo, TimelineInfo}; use pageserver_api::shard::TenantShardId; +use pageserver_client::mgmt_api; use postgres_backend::AuthType; use postgres_connection::{parse_host_port, PgConnectionConfig}; use utils::auth::{Claims, Scope}; diff --git a/pageserver/client/Cargo.toml b/pageserver/client/Cargo.toml new file mode 100644 index 0000000000..5c79bf0e59 --- /dev/null +++ b/pageserver/client/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "pageserver_client" +version = "0.1.0" +edition.workspace = true + + +[dependencies] +pageserver_api.workspace = true +thiserror.workspace = true +async-trait.workspace = true +reqwest.workspace = true +utils.workspace = true +serde.workspace = true diff --git a/pageserver/src/client.rs b/pageserver/client/src/lib.rs similarity index 100% rename from pageserver/src/client.rs rename to pageserver/client/src/lib.rs diff --git a/pageserver/src/client/mgmt_api.rs b/pageserver/client/src/mgmt_api.rs similarity index 97% rename from pageserver/src/client/mgmt_api.rs rename to pageserver/client/src/mgmt_api.rs index 10d39ec9cd..821c238082 100644 --- a/pageserver/src/client/mgmt_api.rs +++ b/pageserver/client/src/mgmt_api.rs @@ -1,6 +1,5 @@ -use hyper::{header::AUTHORIZATION, http::method::Method}; use pageserver_api::models::*; -use reqwest::IntoUrl; +use reqwest::{IntoUrl, Method}; use utils::{ http::error::HttpErrorBody, id::{TenantId, TimelineId}, @@ -105,7 +104,7 @@ impl Client { ) -> Result { let req = self.client.request(method, uri); let req = if let Some(value) = &self.authorization_header { - req.header(AUTHORIZATION, value) + req.header(reqwest::header::AUTHORIZATION, value) } else { req }; diff --git a/pageserver/src/lib.rs b/pageserver/src/lib.rs index 42f7afb865..797cb6f944 100644 --- a/pageserver/src/lib.rs +++ b/pageserver/src/lib.rs @@ -25,7 +25,6 @@ pub mod walingest; pub mod walrecord; pub mod walredo; -pub mod client; pub mod failpoint_support; use crate::task_mgr::TaskKind; From 9e238a34b480f2a2045537805ec4966b83a6b4e4 Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Fri, 15 Dec 2023 15:31:29 +0000 Subject: [PATCH 2/2] make cargo deny happy --- pageserver/client/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pageserver/client/Cargo.toml b/pageserver/client/Cargo.toml index 5c79bf0e59..166dcb7b4c 100644 --- a/pageserver/client/Cargo.toml +++ b/pageserver/client/Cargo.toml @@ -2,7 +2,7 @@ name = "pageserver_client" version = "0.1.0" edition.workspace = true - +license.workspace = true [dependencies] pageserver_api.workspace = true