Merge pull request #27819 from jdubois

* pr/27819:
  Polish "Use more precise variables to detect Azure App Service"
  Use more precise variables to detect Azure App Service

Closes gh-27819
pull/28375/head
Stephane Nicoll 3 years ago
commit 222a5705ab

@ -16,6 +16,9 @@
package org.springframework.boot.cloud; package org.springframework.boot.cloud;
import java.util.Arrays;
import java.util.List;
import org.springframework.boot.context.properties.bind.Binder; import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.EnumerablePropertySource; import org.springframework.core.env.EnumerablePropertySource;
@ -138,14 +141,12 @@ public enum CloudPlatform {
*/ */
AZURE_APP_SERVICE { AZURE_APP_SERVICE {
private static final String WEBSITE_SITE_NAME = "WEBSITE_SITE_NAME"; private final List<String> azureEnvVariables = Arrays.asList("WEBSITE_SITE_NAME", "WEBSITE_INSTANCE_ID",
"WEBSITE_RESOURCE_GROUP", "WEBSITE_SKU");
private static final String WEBSITES_ENABLE_APP_SERVICE_STORAGE = "WEBSITES_ENABLE_APP_SERVICE_STORAGE";
@Override @Override
public boolean isDetected(Environment environment) { public boolean isDetected(Environment environment) {
return environment.containsProperty(WEBSITE_SITE_NAME) return this.azureEnvVariables.stream().allMatch(environment::containsProperty);
&& environment.containsProperty(WEBSITES_ENABLE_APP_SERVICE_STORAGE);
} }
}; };

@ -133,10 +133,12 @@ class CloudPlatformTests {
} }
@Test @Test
void getActiveWhenHasWebsiteSiteNameAndWebsitesEnableAppServiceStorageShouldReturnAzureAppService() { void getActiveWhenHasAllAzureEnvVariablesShouldReturnAzureAppService() {
Map<String, Object> envVars = new HashMap<>(); Map<String, Object> envVars = new HashMap<>();
envVars.put("WEBSITE_SITE_NAME", "---"); envVars.put("WEBSITE_SITE_NAME", "---");
envVars.put("WEBSITES_ENABLE_APP_SERVICE_STORAGE", "false"); envVars.put("WEBSITE_INSTANCE_ID", "1234");
envVars.put("WEBSITE_RESOURCE_GROUP", "test");
envVars.put("WEBSITE_SKU", "1234");
Environment environment = getEnvironmentWithEnvVariables(envVars); Environment environment = getEnvironmentWithEnvVariables(envVars);
CloudPlatform platform = CloudPlatform.getActive(environment); CloudPlatform platform = CloudPlatform.getActive(environment);
assertThat(platform).isEqualTo(CloudPlatform.AZURE_APP_SERVICE); assertThat(platform).isEqualTo(CloudPlatform.AZURE_APP_SERVICE);
@ -144,16 +146,45 @@ class CloudPlatformTests {
} }
@Test @Test
void getActiveWhenHasWebsiteSiteNameAndNoWebsitesEnableAppServiceStorageShouldNotReturnAzureAppService() { void getActiveWhenHasMissingWebsiteSiteNameShouldNotReturnAzureAppService() {
Environment environment = getEnvironmentWithEnvVariables(Collections.singletonMap("WEBSITE_SITE_NAME", "---")); Map<String, Object> envVars = new HashMap<>();
envVars.put("WEBSITE_INSTANCE_ID", "1234");
envVars.put("WEBSITE_RESOURCE_GROUP", "test");
envVars.put("WEBSITE_SKU", "1234");
Environment environment = getEnvironmentWithEnvVariables(envVars);
CloudPlatform platform = CloudPlatform.getActive(environment); CloudPlatform platform = CloudPlatform.getActive(environment);
assertThat(platform).isNull(); assertThat(platform).isNull();
} }
@Test @Test
void getActiveWhenHasWebsitesEnableAppServiceStorageAndNoWebsiteSiteNameShouldNotReturnAzureAppService() { void getActiveWhenHasMissingWebsiteInstanceIdShouldNotReturnAzureAppService() {
Environment environment = getEnvironmentWithEnvVariables( Map<String, Object> envVars = new HashMap<>();
Collections.singletonMap("WEBSITES_ENABLE_APP_SERVICE_STORAGE", "false")); envVars.put("WEBSITE_SITE_NAME", "---");
envVars.put("WEBSITE_RESOURCE_GROUP", "test");
envVars.put("WEBSITE_SKU", "1234");
Environment environment = getEnvironmentWithEnvVariables(envVars);
CloudPlatform platform = CloudPlatform.getActive(environment);
assertThat(platform).isNull();
}
@Test
void getActiveWhenHasMissingWebsiteResourceGroupShouldNotReturnAzureAppService() {
Map<String, Object> envVars = new HashMap<>();
envVars.put("WEBSITE_SITE_NAME", "---");
envVars.put("WEBSITE_INSTANCE_ID", "1234");
envVars.put("WEBSITE_SKU", "1234");
Environment environment = getEnvironmentWithEnvVariables(envVars);
CloudPlatform platform = CloudPlatform.getActive(environment);
assertThat(platform).isNull();
}
@Test
void getActiveWhenHasMissingWebsiteSkuShouldNotReturnAzureAppService() {
Map<String, Object> envVars = new HashMap<>();
envVars.put("WEBSITE_SITE_NAME", "---");
envVars.put("WEBSITE_INSTANCE_ID", "1234");
envVars.put("WEBSITE_RESOURCE_GROUP", "test");
Environment environment = getEnvironmentWithEnvVariables(envVars);
CloudPlatform platform = CloudPlatform.getActive(environment); CloudPlatform platform = CloudPlatform.getActive(environment);
assertThat(platform).isNull(); assertThat(platform).isNull();
} }

Loading…
Cancel
Save