@@ -4,7 +4,6 @@ use futures::future::join_all;
4
4
use std:: collections:: HashMap ;
5
5
use tokio:: { spawn, task:: JoinHandle } ;
6
6
7
-
8
7
pub async fn get_envs ( env_vars : HashMap < String , String > ) -> Result < HashMap < String , String > > {
9
8
let sdk_config = aws_config:: load_from_env ( ) . await ;
10
9
let ssm_client: aws_sdk_ssm:: Client = aws_sdk_ssm:: Client :: new ( & sdk_config) ;
@@ -32,9 +31,9 @@ pub async fn get_envs(env_vars: HashMap<String, String>) -> Result<HashMap<Strin
32
31
results. insert ( key, value) ;
33
32
} ) ;
34
33
}
35
- Err ( error) => return Err ( anyhow :: anyhow! ( format! ( "Parameter not found: {}" , error) ) ) , // Return error if parameter is not found
34
+ Err ( error) => log :: cloudwatch_metric ( "ssm" , "error" , true , Some ( error. to_string ( ) ) ) ,
36
35
} ,
37
- Err ( error) => return Err ( anyhow :: anyhow! ( error. to_string( ) ) ) , // Return error if task fails
36
+ Err ( error) => log :: cloudwatch_metric ( "ssm" , " error" , true , Some ( error . to_string ( ) ) ) ,
38
37
}
39
38
}
40
39
Ok ( results)
@@ -56,8 +55,6 @@ async fn ssm_get_parameter(
56
55
Ok ( response) => {
57
56
if let Some ( parameter) = response. parameter {
58
57
items. insert ( name, parameter. value . unwrap ( ) ) ;
59
- } else {
60
- return Err ( anyhow:: anyhow!( "Parameter not found: {}" , path) ) ;
61
58
}
62
59
}
63
60
Err ( error) => {
@@ -70,7 +67,6 @@ async fn ssm_get_parameter(
70
67
name, path, error
71
68
) ) ,
72
69
) ;
73
- return Err ( anyhow:: anyhow!( error. to_string( ) ) ) ; // Return error
74
70
}
75
71
}
76
72
Ok ( items)
@@ -104,7 +100,7 @@ async fn ssm_get_parameters_by_path(
104
100
items. insert ( env_name, parameter. value . unwrap ( ) ) ;
105
101
}
106
102
}
107
- if response. next_token . is_none ( ) {
103
+ if response. next_token == None {
108
104
break ;
109
105
}
110
106
token = response. next_token ;
@@ -119,16 +115,14 @@ async fn ssm_get_parameters_by_path(
119
115
name, path, error
120
116
) ) ,
121
117
) ;
122
- return Err ( anyhow :: anyhow! ( error . to_string ( ) ) ) ; // Return error
118
+ break ;
123
119
}
124
120
}
125
121
}
126
- if items. is_empty ( ) {
127
- return Err ( anyhow:: anyhow!( "Parameters not found for path: {}" , path) ) ;
128
- }
129
122
Ok ( items)
130
123
}
131
124
125
+
132
126
#[ cfg( test) ]
133
127
mod test {
134
128
use super :: * ;
@@ -208,41 +202,4 @@ mod test {
208
202
assert_eq ! ( results, expected) ;
209
203
Ok ( ( ) )
210
204
}
211
-
212
- #[ tokio:: test]
213
- async fn should_fail_if_param_not_found ( ) -> Result < ( ) > {
214
- let sdk_config = aws_config:: load_from_env ( ) . await ;
215
- let ssm_client = aws_sdk_ssm:: Client :: new ( & sdk_config) ;
216
- ssm_client
217
- . put_parameter ( )
218
- . name ( "/crypteia/v5/myapp/SECRET2" . to_owned ( ) )
219
- . value ( "1A2B3C4D5E6F" . to_owned ( ) )
220
- . r#type ( ParameterType :: SecureString )
221
- . overwrite ( true )
222
- . send ( )
223
- . await ?;
224
- let env_vars: HashMap < String , String > = HashMap :: from ( [
225
- ( "EXISTING" . to_string ( ) , "existingvalue" . to_string ( ) ) ,
226
- (
227
- "SECRET2" . to_string ( ) ,
228
- "x-crypteia-ssm:/crypteia/v5/myapp/SECRET" . to_string ( ) ,
229
- ) ,
230
- ( "NON_EXISTENT_PARAM" . to_string ( ) , "x-crypteia-ssm:/crypteia/v5/myapp/NON_EXISTENT_PARAM" . to_string ( ) ) ,
231
- ] ) ;
232
- let result = get_envs ( env_vars) . await ;
233
- assert ! ( result. is_err( ) , "Expected an error when parameter is not found" ) ;
234
- Ok ( ( ) )
235
- }
236
-
237
-
238
-
239
- #[ tokio:: test]
240
- async fn should_fail_if_param_not_found_in_path ( ) -> Result < ( ) > {
241
- let sdk_config = aws_config:: load_from_env ( ) . await ;
242
- let ssm_client = aws_sdk_ssm:: Client :: new ( & sdk_config) ;
243
- let result = ssm_get_parameters_by_path ( & ssm_client, "NON_EXISTENT_PARAM" . to_string ( ) , "/crypteia/v5/myapp/non_existent_path" . to_string ( ) ) . await ;
244
- assert ! ( result. is_err( ) , "Expected an error when parameters are not found for the given path" ) ;
245
-
246
- Ok ( ( ) )
247
- }
248
205
}
0 commit comments