@@ -5,13 +5,13 @@ use crate::services::backends::kubernetes::kubernetes_resource_manager::{
55 KubernetesResourceManagerConfig , UpdateLabels ,
66} ;
77use crate :: services:: backends:: kubernetes:: logging_update_handler:: LoggingUpdateHandler ;
8+ use crate :: services:: backends:: kubernetes:: repositories:: try_into_object_ref:: TryIntoObjectRef ;
89use crate :: services:: base:: upsert_repository:: { CanDelete , ReadOnlyRepository , UpsertRepository } ;
910use async_trait:: async_trait;
1011use k8s_openapi:: NamespaceResourceScope ;
1112use k8s_openapi:: apimachinery:: pkg:: apis:: meta:: v1:: ObjectMeta ;
1213use kube:: runtime:: reflector:: ObjectRef ;
1314use log:: debug;
14- use regex:: Regex ;
1515use serde:: Serialize ;
1616use serde:: de:: DeserializeOwned ;
1717use std:: fmt:: Debug ;
@@ -22,6 +22,7 @@ use tokio::time::Instant;
2222
2323pub mod schema_repository;
2424mod tests;
25+ mod try_into_object_ref;
2526
2627pub trait SoftDeleteResource :
2728 kube:: Resource < Scope = NamespaceResourceScope > + Clone + Debug + Serialize + DeserializeOwned + Send + Sync
4647 }
4748}
4849
49- pub trait TryIntoObjectRef < R >
50- where
51- R : kube:: Resource + Send + Sync + ' static ,
52- {
53- type Error ;
54-
55- fn try_into_object_ref ( self , namespace : String ) -> Result < ObjectRef < R > , Self :: Error > ;
56- }
57-
58- impl < R > TryIntoObjectRef < R > for String
59- where
60- R : kube:: Resource + Send + Sync + ' static ,
61- R :: DynamicType : Default ,
62- {
63- type Error = anyhow:: Error ;
64-
65- fn try_into_object_ref ( self , namespace : String ) -> Result < ObjectRef < R > , Self :: Error > {
66- let only_dns_subdomain = Regex :: new ( r"[^-a-z0-9]" ) ?;
67- let lowercase_name = self . to_lowercase ( ) ;
68- let safe_name = only_dns_subdomain. replace_all ( & lowercase_name, "-" ) . to_string ( ) ;
69- let trimmed_name = safe_name. trim_matches ( '-' ) ;
70- let mut or = ObjectRef :: new ( & trimmed_name) ;
71- or. namespace = Some ( namespace) ;
72- Ok ( or)
73- }
74- }
75-
7650pub trait TryFromResource < R >
7751where
7852 R : kube:: Resource + Send + Sync + ' static ,
0 commit comments