anujmodi2021 commented on code in PR #7062:
URL: https://github.com/apache/hadoop/pull/7062#discussion_r1776521467
##########
hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/ITestGetNameSpaceEnabled.java:
##########
@@ -271,4 +275,52 @@ private void
ensureGetAclDetermineHnsStatusAccuratelyInternal(int statusCode,
Mockito.verify(mockClient, times(1))
.getAclStatus(anyString(), any(TracingContext.class));
}
+
+ @Test
+ public void testAccountSpecificConfig() throws Exception {
+ Configuration rawConfig = new Configuration();
+ rawConfig.addResource(TEST_CONFIGURATION_FILE_NAME);
+ rawConfig.unset(FS_AZURE_ACCOUNT_IS_HNS_ENABLED);
+ rawConfig.unset(accountProperty(FS_AZURE_ACCOUNT_IS_HNS_ENABLED,
+ this.getAccountName()));
+ String accountName1 = "account1.dfs.core.windows.net";
+ String accountName2 = "account2.dfs.core.windows.net";
+ String accountName3 = "account3.dfs.core.windows.net";
+ String defaultUri1 = this.getTestUrl().replace(this.getAccountName(),
accountName1);
+ String defaultUri2 = this.getTestUrl().replace(this.getAccountName(),
accountName2);
+ String defaultUri3 = this.getTestUrl().replace(this.getAccountName(),
accountName3);
+
+ // Set both account specific and account agnostic config for account 1
+ rawConfig.set(accountProperty(FS_AZURE_ACCOUNT_IS_HNS_ENABLED,
accountName1), FALSE_STR);
+ rawConfig.set(FS_AZURE_ACCOUNT_IS_HNS_ENABLED, TRUE_STR);
+ rawConfig.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY,
defaultUri1);
+ AzureBlobFileSystem fs1 = (AzureBlobFileSystem)
FileSystem.newInstance(rawConfig);
+ // Assert that account specific config takes precedence
+ Assertions.assertThat(getIsNamespaceEnabled(fs1)).describedAs(
+ "getIsNamespaceEnabled should return true when the "
+ + "account specific config is set as true").isFalse();
+
+ // Set only the account specific config for account 2
+ rawConfig.set(accountProperty(FS_AZURE_ACCOUNT_IS_HNS_ENABLED,
accountName2), FALSE_STR);
+ rawConfig.unset(FS_AZURE_ACCOUNT_IS_HNS_ENABLED);
+ rawConfig.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY,
defaultUri2);
+ AzureBlobFileSystem fs2 = (AzureBlobFileSystem)
FileSystem.newInstance(rawConfig);
+ // Assert that account specific config is enough.
+ Assertions.assertThat(getIsNamespaceEnabled(fs2)).describedAs(
+ "getIsNamespaceEnabled should return true when the "
+ + "account specific config is set as true").isFalse();
+
+ // Set only account agnostic config for account 3
+ rawConfig.set(FS_AZURE_ACCOUNT_IS_HNS_ENABLED, FALSE_STR);
+ rawConfig.unset(accountProperty(FS_AZURE_ACCOUNT_IS_HNS_ENABLED,
accountName3));
+ rawConfig.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY,
defaultUri3);
+ AzureBlobFileSystem fs3 = (AzureBlobFileSystem)
FileSystem.newInstance(rawConfig);
+ // Assert that account agnostic config is enough.
+ Assertions.assertThat(getIsNamespaceEnabled(fs3)).describedAs(
+ "getIsNamespaceEnabled should return true when the "
+ + "account specific config is not set").isFalse();
+ fs1.close();
+ fs2.close();
+ fs3.close();
Review Comment:
We already have a similar test added:
https://github.com/apache/hadoop/blob/49a495803a9451850b8982317e277b605c785587/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/ITestGetNameSpaceEnabled.java#L186
But it makes sense to add this condition here as well. Will add.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]