anujmodi2021 commented on code in PR #6879: URL: https://github.com/apache/hadoop/pull/6879#discussion_r1696679989
########## hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AbfsConfiguration.java: ########## @@ -434,10 +445,70 @@ public AbfsConfiguration(final Configuration rawConfig, String accountName) } } + public AbfsConfiguration(final Configuration rawConfig, String accountName) + throws IllegalAccessException, IOException { + this(rawConfig, accountName, AbfsServiceType.DFS); + } + public Trilean getIsNamespaceEnabledAccount() { return Trilean.getTrilean(isNamespaceEnabledAccount); } + /** + * Returns the service type to be used based on the filesystem configuration. + * Precedence is given to service type configured for FNS Accounts using + * "fs.azure.fns.account.service.type". If not configured, then the service + * type identified from url used to initialize filesystem will be used. + * @return the service type. + */ + public AbfsServiceType getFsConfiguredServiceType() { + return getEnum(FS_AZURE_FNS_ACCOUNT_SERVICE_TYPE, fsConfiguredServiceType); + } + + /** + * Returns the service type configured for FNS Accounts to override the + * service type identified by URL used to initialize the filesystem. + * @return the service type. + */ + public AbfsServiceType getConfiguredServiceTypeForFNSAccounts() { + return getEnum(FS_AZURE_FNS_ACCOUNT_SERVICE_TYPE, null); + } + + /** + * Returns the service type to be used for Ingress Operations irrespective of account type. + * Default value is the same as the service type configured for the file system. + * @return the service type. + */ + public AbfsServiceType getIngressServiceType() { + return getEnum(FS_AZURE_INGRESS_SERVICE_TYPE, getFsConfiguredServiceType()); + } + + public boolean isDfsToBlobFallbackEnabled() { + return isDfsToBlobFallbackEnabled; + } + + /** + * Checks if the service type configured is valid for account type used. + * HNS Enabled accounts cannot have service type as BLOB. + * @param isHNSEnabled Flag to indicate if HNS is enabled for the account. + * @throws InvalidConfigurationValueException if the service type is invalid. + */ + public void validateConfiguredServiceType(boolean isHNSEnabled) + throws InvalidConfigurationValueException { + // Todo: [FnsOverBlob] - Remove this check, Failing FS Init with Blob Endpoint Until FNS over Blob is ready. + if (getFsConfiguredServiceType() == AbfsServiceType.BLOB) { + throw new InvalidConfigurationValueException(FS_DEFAULT_NAME_KEY, + "Blob Endpoint Support not yet available"); + } + if (isHNSEnabled && getConfiguredServiceTypeForFNSAccounts() == AbfsServiceType.BLOB) { + throw new InvalidConfigurationValueException( + FS_AZURE_FNS_ACCOUNT_SERVICE_TYPE, "Cannot be BLOB for HNS Account"); + } else if (isHNSEnabled && fsConfiguredServiceType == AbfsServiceType.BLOB) { + throw new InvalidConfigurationValueException(FS_DEFAULT_NAME_KEY, Review Comment: Same for this as well, condition above will make this code a unreachable path. -- 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: common-issues-unsubscr...@hadoop.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org