(&self)
| 92 | } |
| 93 | |
| 94 | fn run_analysis(&self) -> Result<String, Box<EngineError>> { |
| 95 | let (cloud_provider, kubernetes) = self.request.to_cluster_analysis_kubernetes( |
| 96 | &self.info_context(), |
| 97 | self.request.event_details(), |
| 98 | self.logger.clone(), |
| 99 | )?; |
| 100 | let kubeconfig_path = kubernetes.kubeconfig_local_file_path(); |
| 101 | let credentials_envs = cloud_provider |
| 102 | .credentials_environment_variables() |
| 103 | .into_iter() |
| 104 | .map(|(key, value)| (key.to_string(), value.to_string())) |
| 105 | .collect::<Vec<_>>(); |
| 106 | let credentials_envs_ref = credentials_envs |
| 107 | .iter() |
| 108 | .map(|(key, value)| (key.as_str(), value.as_str())) |
| 109 | .collect::<Vec<_>>(); |
| 110 | |
| 111 | match &self.request.target_analysis { |
| 112 | ClusterAnalysisRequest::CostRecommendation(payload) => { |
| 113 | self.logger.log(EngineEvent::Info( |
| 114 | self.get_event_details(ClusterAnalysisStep::CostRecommendation), |
| 115 | EventMessage::new_from_safe("Running KRR cost recommendation analysis".to_string()), |
| 116 | )); |
| 117 | self.run_krr(payload, &kubeconfig_path, credentials_envs_ref.as_slice()) |
| 118 | } |
| 119 | ClusterAnalysisRequest::DeprecatedApiCheck(payload) => { |
| 120 | self.logger.log(EngineEvent::Info( |
| 121 | self.get_event_details(ClusterAnalysisStep::DeprecatedApiCheck), |
| 122 | EventMessage::new_from_safe("Running Kubernetes deprecated API analysis".to_string()), |
| 123 | )); |
| 124 | self.run_deprecated_api_check( |
| 125 | payload, |
| 126 | &kubeconfig_path, |
| 127 | credentials_envs.as_slice(), |
| 128 | credentials_envs_ref.as_slice(), |
| 129 | ) |
| 130 | } |
| 131 | } |
| 132 | } |
| 133 | |
| 134 | fn run_krr( |
| 135 | &self, |
no test coverage detected