From 5b1b7079cac23641dbd6ae02277dc68aabd234c1 Mon Sep 17 00:00:00 2001 From: Spencer Judge Date: Fri, 11 Apr 2025 11:15:28 -0700 Subject: [PATCH] Fix missing info on slot reservation context --- core-api/src/worker.rs | 3 +++ core/src/abstractions.rs | 7 ++++++- core/src/worker/mod.rs | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core-api/src/worker.rs b/core-api/src/worker.rs index 3a4cdff24..38e6e503c 100644 --- a/core-api/src/worker.rs +++ b/core-api/src/worker.rs @@ -331,6 +331,9 @@ pub trait SlotReservationContext: Send + Sync { /// Returns the identity of the worker fn worker_identity(&self) -> &str; + /// Returns the deployment version of the worker, if one is set. + fn worker_deployment_version(&self) -> &Option; + /// Returns the number of currently outstanding slot permits, whether used or un-used. fn num_issued_slots(&self) -> usize; diff --git a/core/src/abstractions.rs b/core/src/abstractions.rs index 3d842fef4..41ab38ef9 100644 --- a/core/src/abstractions.rs +++ b/core/src/abstractions.rs @@ -12,7 +12,7 @@ use std::{ }; use temporal_sdk_core_api::worker::{ SlotKind, SlotMarkUsedContext, SlotReleaseContext, SlotReservationContext, SlotSupplier, - SlotSupplierPermit, WorkflowSlotKind, + SlotSupplierPermit, WorkerDeploymentVersion, WorkflowSlotKind, }; use tokio::sync::watch; use tokio_util::sync::CancellationToken; @@ -47,6 +47,7 @@ pub(crate) struct MeteredPermitDealer { pub(crate) struct PermitDealerContextData { pub(crate) task_queue: String, pub(crate) worker_identity: String, + pub(crate) worker_deployment_version: Option, } impl MeteredPermitDealer @@ -170,6 +171,10 @@ impl SlotReservationContext for MeteredPermitDealer { &self.context_data.worker_identity } + fn worker_deployment_version(&self) -> &Option { + &self.context_data.worker_deployment_version + } + fn num_issued_slots(&self) -> usize { *self.extant_permits.1.borrow() } diff --git a/core/src/worker/mod.rs b/core/src/worker/mod.rs index a8f06f247..3fe1b4b5b 100644 --- a/core/src/worker/mod.rs +++ b/core/src/worker/mod.rs @@ -325,6 +325,7 @@ impl Worker { let slot_context_data = Arc::new(PermitDealerContextData { task_queue: config.task_queue.clone(), worker_identity: config.client_identity_override.clone().unwrap_or_default(), + worker_deployment_version: config.computed_deployment_version(), }); let wft_slots = MeteredPermitDealer::new( tuner.workflow_task_slot_supplier(),