Skip to content

Commit 299babb

Browse files
committed
fix dependsOn
1 parent 224d6bf commit 299babb

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

lib/dsc-lib/src/configure/depends_on.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pub fn get_resource_invocation_order(config: &Configuration, parser: &mut Statem
4242
let (resource_type, resource_name) = get_type_and_name(string_result)?;
4343

4444
// find the resource by name
45-
let Some(dependency_resource) = config.resources.iter().find(|r| r.name.eq(resource_name)) else {
45+
let Some(dependency_resource) = config.resources.iter().find(|r| r.name.eq(&resource_name)) else {
4646
return Err(DscError::Validation(t!("configure.dependsOn.dependencyNotFound", dependency_name = resource_name, resource_name = resource.name).to_string()));
4747
};
4848
// validate the type matches
@@ -91,12 +91,14 @@ pub fn get_resource_invocation_order(config: &Configuration, parser: &mut Statem
9191
Ok(order)
9292
}
9393

94-
fn get_type_and_name(statement: &str) -> Result<(&str, &str), DscError> {
94+
fn get_type_and_name(statement: &str) -> Result<(&str, String), DscError> {
9595
let parts: Vec<&str> = statement.split(':').collect();
9696
if parts.len() != 2 {
9797
return Err(DscError::Validation(t!("configure.dependsOn.syntaxIncorrect", dependency = statement).to_string()));
9898
}
99-
Ok((parts[0], parts[1]))
99+
// the name is url encoded so we need to decode it
100+
let decoded_name = urlencoding::decode(parts[1]).map_err(|_| DscError::Validation(t!("configure.dependsOn.syntaxIncorrect", dependency = statement).to_string()))?;
101+
Ok((parts[0], decoded_name.into_owned()))
100102
}
101103

102104
#[cfg(test)]

0 commit comments

Comments
 (0)