agent_orchestrator/
config_ext.rs1use crate::config::OrchestratorConfig;
7use crate::crd::projection::RuntimePolicyProjection;
8use crate::crd::store::ResourceStoreExt;
9
10pub trait OrchestratorConfigExt {
12 fn runtime_policy(&self) -> RuntimePolicyProjection;
14
15 fn runtime_policy_for_project(&self, project: &str) -> RuntimePolicyProjection;
21}
22
23impl OrchestratorConfigExt for OrchestratorConfig {
24 fn runtime_policy(&self) -> RuntimePolicyProjection {
25 self.resource_store
26 .project_singleton::<RuntimePolicyProjection>()
27 .unwrap_or_default()
28 }
29
30 fn runtime_policy_for_project(&self, project: &str) -> RuntimePolicyProjection {
31 if let Some(rp) = self
33 .resource_store
34 .project_singleton_for_project::<RuntimePolicyProjection>(project)
35 {
36 return rp;
37 }
38 if let Some(rp) = self
40 .resource_store
41 .project_singleton_for_project::<RuntimePolicyProjection>(
42 orchestrator_config::resource_store::SYSTEM_PROJECT,
43 )
44 {
45 return rp;
46 }
47 RuntimePolicyProjection::default()
49 }
50}