| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.hadoop.fs.viewfs; |
| |
| import java.net.URI; |
| |
| import org.apache.hadoop.conf.Configuration; |
| |
| /** |
| * Utilities for config variables of the viewFs See {@link ViewFs} |
| */ |
| public class ConfigUtil { |
| /** |
| * Get the config variable prefix for the specified mount table |
| * @param mountTableName - the name of the mount table |
| * @return the config variable prefix for the specified mount table |
| */ |
| public static String getConfigViewFsPrefix(final String mountTableName) { |
| return Constants.CONFIG_VIEWFS_PREFIX + "." + mountTableName; |
| } |
| |
| /** |
| * Get the config variable prefix for the default mount table |
| * @return the config variable prefix for the default mount table |
| */ |
| public static String getConfigViewFsPrefix() { |
| return |
| getConfigViewFsPrefix(Constants.CONFIG_VIEWFS_PREFIX_DEFAULT_MOUNT_TABLE); |
| } |
| |
| /** |
| * Add a link to the config for the specified mount table |
| * @param conf - add the link to this conf |
| * @param mountTableName |
| * @param src - the src path name |
| * @param target - the target URI link |
| */ |
| public static void addLink(Configuration conf, final String mountTableName, |
| final String src, final URI target) { |
| conf.set(getConfigViewFsPrefix(mountTableName) + "." + |
| Constants.CONFIG_VIEWFS_LINK + "." + src, target.toString()); |
| } |
| |
| /** |
| * Add a link to the config for the default mount table |
| * @param conf - add the link to this conf |
| * @param src - the src path name |
| * @param target - the target URI link |
| */ |
| public static void addLink(final Configuration conf, final String src, |
| final URI target) { |
| addLink( conf, Constants.CONFIG_VIEWFS_DEFAULT_MOUNT_TABLE, |
| src, target); |
| } |
| |
| /** |
| * Add config variable for homedir for default mount table |
| * @param conf - add to this conf |
| * @param homedir - the home dir path starting with slash |
| */ |
| public static void setHomeDirConf(final Configuration conf, |
| final String homedir) { |
| setHomeDirConf( conf, |
| Constants.CONFIG_VIEWFS_DEFAULT_MOUNT_TABLE, homedir); |
| } |
| |
| /** |
| * Add config variable for homedir the specified mount table |
| * @param conf - add to this conf |
| * @param homedir - the home dir path starting with slash |
| */ |
| public static void setHomeDirConf(final Configuration conf, |
| final String mountTableName, final String homedir) { |
| if (!homedir.startsWith("/")) { |
| throw new IllegalArgumentException("Home dir should start with /:" |
| + homedir); |
| } |
| conf.set(getConfigViewFsPrefix(mountTableName) + "." + |
| Constants.CONFIG_VIEWFS_HOMEDIR, homedir); |
| } |
| |
| /** |
| * Get the value of the home dir conf value for default mount table |
| * @param conf - from this conf |
| * @return home dir value, null if variable is not in conf |
| */ |
| public static String getHomeDirValue(final Configuration conf) { |
| return getHomeDirValue(conf, Constants.CONFIG_VIEWFS_DEFAULT_MOUNT_TABLE); |
| } |
| |
| /** |
| * Get the value of the home dir conf value for specfied mount table |
| * @param conf - from this conf |
| * @param mountTableName - the mount table |
| * @return home dir value, null if variable is not in conf |
| */ |
| public static String getHomeDirValue(final Configuration conf, |
| final String mountTableName) { |
| return conf.get(getConfigViewFsPrefix(mountTableName) + "." + |
| Constants.CONFIG_VIEWFS_HOMEDIR); |
| } |
| } |