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..166dcb7b4c --- /dev/null +++ b/pageserver/client/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "pageserver_client" +version = "0.1.0" +edition.workspace = true +license.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 8e50741029..7fb858b2f4 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}, @@ -121,7 +120,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;