diff --git a/pageserver/src/tenant/storage_layer/layer_desc.rs b/pageserver/src/tenant/storage_layer/layer_desc.rs index 6d6ab801d8..ce55b3e018 100644 --- a/pageserver/src/tenant/storage_layer/layer_desc.rs +++ b/pageserver/src/tenant/storage_layer/layer_desc.rs @@ -100,6 +100,22 @@ impl PersistentLayerDesc { } } + pub fn from_filename( + tenant_id: TenantId, + timeline_id: TimelineId, + filename: LayerFileName, + file_size: u64, + ) -> Self { + match filename { + LayerFileName::Image(i) => { + Self::new_img(tenant_id, timeline_id, i.key_range, i.lsn, file_size) + } + LayerFileName::Delta(d) => { + Self::new_delta(tenant_id, timeline_id, d.key_range, d.lsn_range, file_size) + } + } + } + /// Get the LSN that the image layer covers. pub fn image_layer_lsn(&self) -> Lsn { assert!(!self.is_delta);