feat: Add Default implementation for Harmony Id along with documentation. #53
| @ -170,6 +170,22 @@ impl K8sAnywhereTopology { | |||||||
|         Ok(Some(state)) |         Ok(Some(state)) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     async fn ensure_k8s_tenant_manager(&self) -> Result<(), String> { | ||||||
|  |         if let Some(_) = self.tenant_manager.get() { | ||||||
|  |             return Ok(()); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         self.tenant_manager | ||||||
|  |             .get_or_try_init(async || -> Result<K8sTenantManager, String> { | ||||||
|  |                 let k8s_client = self.k8s_client().await?; | ||||||
|  |                 Ok(K8sTenantManager::new(k8s_client)) | ||||||
|  |             }) | ||||||
|  |             .await | ||||||
|  |             .unwrap(); | ||||||
|  | 
 | ||||||
|  |         Ok(()) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     fn get_k8s_tenant_manager(&self) -> Result<&K8sTenantManager, ExecutorError> { |     fn get_k8s_tenant_manager(&self) -> Result<&K8sTenantManager, ExecutorError> { | ||||||
|         match self.tenant_manager.get() { |         match self.tenant_manager.get() { | ||||||
|             Some(t) => Ok(t), |             Some(t) => Ok(t), | ||||||
| @ -217,6 +233,10 @@ impl Topology for K8sAnywhereTopology { | |||||||
|             "No K8s client could be found or installed".to_string(), |             "No K8s client could be found or installed".to_string(), | ||||||
|         ))?; |         ))?; | ||||||
| 
 | 
 | ||||||
|  |         self.ensure_k8s_tenant_manager() | ||||||
|  |             .await | ||||||
|  |             .map_err(|e| InterpretError::new(e))?; | ||||||
|  | 
 | ||||||
|         match self.is_helm_available() { |         match self.is_helm_available() { | ||||||
|             Ok(()) => Ok(Outcome::success(format!( |             Ok(()) => Ok(Outcome::success(format!( | ||||||
|                 "{} + helm available", |                 "{} + helm available", | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user