From 3c15874c48863cd1f0f4dc8c4bb6d0899874df36 Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Fri, 17 Mar 2023 18:50:42 +0100 Subject: [PATCH] allow specifying eviction_policy in TenantCreateRequest This was on oversight from 175a577ad42476a49978d277a7428e8a078dd6ae. Nothing uses this AFAIK, but, let's fix it anyways. Noticed while working on https://github.com/neondatabase/neon/issues/3728 --- control_plane/src/pageserver.rs | 5 +++++ libs/pageserver_api/src/models.rs | 5 +++++ pageserver/src/http/routes.rs | 8 ++++++++ 3 files changed, 18 insertions(+) diff --git a/control_plane/src/pageserver.rs b/control_plane/src/pageserver.rs index 07ead45d5b..db8cb61395 100644 --- a/control_plane/src/pageserver.rs +++ b/control_plane/src/pageserver.rs @@ -362,6 +362,11 @@ impl PageServerNode { .map(|x| x.parse::()) .transpose() .context("Failed to parse 'trace_read_requests' as bool")?, + eviction_policy: settings + .get("eviction_policy") + .map(|x| serde_json::from_str(x)) + .transpose() + .context("Failed to parse 'eviction_policy' json")?, }; if !settings.is_empty() { bail!("Unrecognized tenant settings: {settings:?}") diff --git a/libs/pageserver_api/src/models.rs b/libs/pageserver_api/src/models.rs index 3ac7e31ec2..7a43100ba5 100644 --- a/libs/pageserver_api/src/models.rs +++ b/libs/pageserver_api/src/models.rs @@ -115,6 +115,11 @@ pub struct TenantCreateRequest { pub lagging_wal_timeout: Option, pub max_lsn_wal_lag: Option, pub trace_read_requests: Option, + // We defer the parsing of the eviction_policy field to the request handler. + // Otherwise we'd have to move the types for eviction policy into this package. + // We might do that once the eviction feature has stabilizied. + // For now, this field is not even documented in the openapi_spec.yml. + pub eviction_policy: Option, } #[serde_as] diff --git a/pageserver/src/http/routes.rs b/pageserver/src/http/routes.rs index 2f03e251fd..39f2776952 100644 --- a/pageserver/src/http/routes.rs +++ b/pageserver/src/http/routes.rs @@ -738,6 +738,14 @@ async fn tenant_create_handler(mut request: Request) -> Result