diff --git a/ddcommon/src/azure_app_services.rs b/ddcommon/src/azure_app_services.rs index 2855dfa86..40e6e6464 100644 --- a/ddcommon/src/azure_app_services.rs +++ b/ddcommon/src/azure_app_services.rs @@ -103,11 +103,11 @@ impl AzureMetadata { } fn extract_resource_group(s: Option) -> Option { - let re: Regex = Regex::new(r"(.+)\+(.+)-(.+)-(.+)").unwrap(); + let re: Regex = Regex::new(r".+\+(.+)-.+webspace(-Linux)?").unwrap(); s.as_ref().and_then(|text| { re.captures(text) - .and_then(|caps| caps.get(2).map(|m| m.as_str().to_string())) + .and_then(|caps| caps.get(1).map(|m| m.as_str().to_string())) }) } @@ -426,7 +426,7 @@ mod tests { } #[test] - fn test_extract_resource_group_pattern_match() { + fn test_extract_resource_group_pattern_match_linux() { let mocked_env = MockEnv::new(&[ ( WEBSITE_ONWER_NAME, @@ -443,6 +443,24 @@ mod tests { assert_eq!(metadata.get_resource_group(), expected_resource_group); } + #[test] + fn test_extract_resource_group_pattern_match_windows() { + let mocked_env = MockEnv::new(&[ + ( + WEBSITE_ONWER_NAME, + "00000000-0000-0000-0000-000000000000+test-rg-EastUSwebspace", + ), + ("FUNCTIONS_WORKER_RUNTIME", "node"), + ("FUNCTIONS_EXTENSION_VERSION", "~4"), + ]); + + let metadata = AzureMetadata::new_function(mocked_env).unwrap(); + + let expected_resource_group = "test-rg"; + + assert_eq!(metadata.get_resource_group(), expected_resource_group); + } + #[test] fn test_extract_resource_group_no_pattern_match() { let mocked_env = MockEnv::new(&[