diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/constants/AbfsHttpConstants.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/constants/AbfsHttpConstants.java index ff66bf7286..1f35854af2 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/constants/AbfsHttpConstants.java +++ b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/constants/AbfsHttpConstants.java @@ -20,6 +20,7 @@ import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; +import org.apache.hadoop.util.VersionInfo; /** * Responsible to keep all constant keys used in abfs rest client here. @@ -43,7 +44,7 @@ public final class AbfsHttpConstants { public static final String OS_NAME = "os.name"; public static final String OS_VERSION = "os.version"; - public static final String CLIENT_VERSION = "Azure Blob FS/1.0"; + public static final String CLIENT_VERSION = "Azure Blob FS/" + VersionInfo.getVersion(); // Abfs Http Verb public static final String HTTP_METHOD_DELETE = "DELETE"; diff --git a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/services/TestAbfsClient.java b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/services/TestAbfsClient.java index 6a92bb2b4e..4200933070 100644 --- a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/services/TestAbfsClient.java +++ b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/services/TestAbfsClient.java @@ -28,6 +28,7 @@ import org.apache.hadoop.fs.azurebfs.utils.SSLSocketFactoryEx; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.azurebfs.constants.ConfigurationKeys; +import org.apache.hadoop.util.VersionInfo; /** * Test useragent of abfs client. @@ -49,12 +50,15 @@ private void validateUserAgent(String expectedPattern, } String userAgent = client.initializeUserAgent(config, sslProviderName); Pattern pattern = Pattern.compile(expectedPattern); - Assert.assertTrue(pattern.matcher(userAgent).matches()); + Assert.assertTrue("Incorrect User Agent String", + pattern.matcher(userAgent).matches()); } @Test public void verifyUnknownUserAgent() throws Exception { - String expectedUserAgentPattern = "Azure Blob FS\\/1.0 \\(JavaJRE ([^\\)]+)\\)"; + String clientVersion = "Azure Blob FS/" + VersionInfo.getVersion(); + String expectedUserAgentPattern = String.format(clientVersion + + " %s", "\\(JavaJRE ([^\\)]+)\\)"); final Configuration configuration = new Configuration(); configuration.unset(ConfigurationKeys.FS_AZURE_USER_AGENT_PREFIX_KEY); AbfsConfiguration abfsConfiguration = new AbfsConfiguration(configuration, accountName); @@ -64,7 +68,9 @@ public void verifyUnknownUserAgent() throws Exception { @Test public void verifyUserAgent() throws Exception { - String expectedUserAgentPattern = "Azure Blob FS\\/1.0 \\(JavaJRE ([^\\)]+)\\) Partner Service"; + String clientVersion = "Azure Blob FS/" + VersionInfo.getVersion(); + String expectedUserAgentPattern = String.format(clientVersion + + " %s", "\\(JavaJRE ([^\\)]+)\\) Partner Service"); final Configuration configuration = new Configuration(); configuration.set(ConfigurationKeys.FS_AZURE_USER_AGENT_PREFIX_KEY, "Partner Service"); AbfsConfiguration abfsConfiguration = new AbfsConfiguration(configuration, accountName); @@ -74,7 +80,9 @@ public void verifyUserAgent() throws Exception { @Test public void verifyUserAgentWithSSLProvider() throws Exception { - String expectedUserAgentPattern = "Azure Blob FS\\/1.0 \\(JavaJRE ([^\\)]+) SunJSSE-1.8\\) Partner Service"; + String clientVersion = "Azure Blob FS/" + VersionInfo.getVersion(); + String expectedUserAgentPattern = String.format(clientVersion + + " %s", "\\(JavaJRE ([^\\)]+)\\) Partner Service"); final Configuration configuration = new Configuration(); configuration.set(ConfigurationKeys.FS_AZURE_USER_AGENT_PREFIX_KEY, "Partner Service"); configuration.set(ConfigurationKeys.FS_AZURE_SSL_CHANNEL_MODE_KEY,