diff --git a/pageserver/src/http/routes.rs b/pageserver/src/http/routes.rs index da21f6883a..2bb181dd9a 100644 --- a/pageserver/src/http/routes.rs +++ b/pageserver/src/http/routes.rs @@ -206,7 +206,6 @@ async fn status_handler(request: Request) -> Result, ApiErr async fn timeline_create_handler(mut request: Request) -> Result, ApiError> { let tenant_id: ZTenantId = parse_request_param(&request, "tenant_id")?; let request_data: TimelineCreateRequest = json_request(&mut request).await?; - check_permission(&request, Some(tenant_id))?; let new_timeline_info = tokio::task::spawn_blocking(move || { @@ -244,11 +243,12 @@ async fn timeline_create_handler(mut request: Request) -> Result) -> Result, ApiError> { let tenant_id: ZTenantId = parse_request_param(&request, "tenant_id")?; - check_permission(&request, Some(tenant_id))?; let include_non_incremental_logical_size = query_param_present(&request, "include-non-incremental-logical-size"); let include_non_incremental_physical_size = query_param_present(&request, "include-non-incremental-physical-size"); + check_permission(&request, Some(tenant_id))?; + let local_timeline_infos = tokio::task::spawn_blocking(move || { let _enter = info_span!("timeline_list", tenant = %tenant_id).entered(); list_local_timelines( @@ -299,13 +299,12 @@ fn query_param_present(request: &Request, param: &str) -> bool { async fn timeline_detail_handler(request: Request) -> Result, ApiError> { let tenant_id: ZTenantId = parse_request_param(&request, "tenant_id")?; - check_permission(&request, Some(tenant_id))?; - let timeline_id: ZTimelineId = parse_request_param(&request, "timeline_id")?; let include_non_incremental_logical_size = query_param_present(&request, "include-non-incremental-logical-size"); let include_non_incremental_physical_size = query_param_present(&request, "include-non-incremental-physical-size"); + check_permission(&request, Some(tenant_id))?; let (local_timeline_info, remote_timeline_info) = async { // any error here will render local timeline as None @@ -369,7 +368,7 @@ async fn tenant_attach_handler(request: Request) -> Result, let tenant_id: ZTenantId = parse_request_param(&request, "tenant_id")?; check_permission(&request, Some(tenant_id))?; - info!("Handling tenant attach {}", tenant_id,); + info!("Handling tenant attach {}", tenant_id); tokio::task::spawn_blocking(move || { if tenant_mgr::get_tenant_state(tenant_id).is_some() { @@ -478,9 +477,8 @@ async fn gather_tenant_timelines_index_parts( async fn timeline_delete_handler(request: Request) -> Result, ApiError> { let tenant_id: ZTenantId = parse_request_param(&request, "tenant_id")?; - check_permission(&request, Some(tenant_id))?; - let timeline_id: ZTimelineId = parse_request_param(&request, "timeline_id")?; + check_permission(&request, Some(tenant_id))?; let state = get_state(&request); tokio::task::spawn_blocking(move || { @@ -519,7 +517,6 @@ async fn tenant_detach_handler(request: Request) -> Result, } async fn tenant_list_handler(request: Request) -> Result, ApiError> { - // check for management permission check_permission(&request, None)?; let state = get_state(&request); @@ -587,7 +584,6 @@ async fn tenant_status(request: Request) -> Result, ApiErro } async fn tenant_create_handler(mut request: Request) -> Result, ApiError> { - // check for management permission check_permission(&request, None)?; let request_data: TenantCreateRequest = json_request(&mut request).await?; @@ -656,7 +652,6 @@ async fn tenant_create_handler(mut request: Request) -> Result) -> Result, ApiError> { let request_data: TenantConfigRequest = json_request(&mut request).await?; let tenant_id = request_data.tenant_id; - // check for management permission check_permission(&request, Some(tenant_id))?; let mut tenant_conf: TenantConfOpt = Default::default();