HADOOP-14976. Set HADOOP_SHELL_EXECNAME explicitly in scripts.

This commit is contained in:
Arpit Agarwal 2017-12-04 21:02:01 -08:00
parent 5533648241
commit e00c7f78c1
6 changed files with 90 additions and 5 deletions

View File

@ -15,8 +15,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# The name of the script being executed.
HADOOP_SHELL_EXECNAME="hadoop"
MYNAME="${BASH_SOURCE-$0}"
HADOOP_SHELL_EXECNAME="${MYNAME##*/}"
## @description build up the hadoop command's usage text.
## @audience public
@ -124,6 +125,10 @@ function hadoopcmd_case
echo "HADOOP_TOOLS_HOME='${HADOOP_TOOLS_HOME}'"
echo "HADOOP_TOOLS_DIR='${HADOOP_TOOLS_DIR}'"
echo "HADOOP_TOOLS_LIB_JARS_DIR='${HADOOP_TOOLS_LIB_JARS_DIR}'"
if [[ -n "${QATESTMODE}" ]]; then
echo "MYNAME=${MYNAME}"
echo "HADOOP_SHELL_EXECNAME=${HADOOP_SHELL_EXECNAME}"
fi
exit 0
;;
fs)

View File

@ -0,0 +1,36 @@
# 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.
load hadoop-functions_test_helper
# Setup minimal environment to invoke the 'hadoop' command.
hadoopcommandsetup () {
export HADOOP_LIBEXEC_DIR="${TMP}/libexec"
export HADOOP_CONF_DIR="${TMP}/conf"
mkdir -p "${HADOOP_LIBEXEC_DIR}"
echo ". \"${BATS_TEST_DIRNAME}/../../main/bin/hadoop-functions.sh\"" > "${HADOOP_LIBEXEC_DIR}/hadoop-config.sh"
chmod a+rx "${HADOOP_LIBEXEC_DIR}/hadoop-config.sh"
}
# Verify that the 'hadoop' command correctly infers MYNAME and
# HADOOP_SHELL_EXECNAME
@test "hadoop_shell_execname" {
hadoopcommandsetup
export QATESTMODE=unittest
run "${BATS_TEST_DIRNAME}/../../main/bin/hadoop" envvars
echo ">${output}<"
[[ ${output} =~ MYNAME=.*/hadoop ]]
[[ ${output} =~ HADOOP_SHELL_EXECNAME=hadoop ]]
}

View File

@ -15,8 +15,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# The name of the script being executed.
HADOOP_SHELL_EXECNAME="hdfs"
MYNAME="${BASH_SOURCE-$0}"
HADOOP_SHELL_EXECNAME="${MYNAME##*/}"
## @description build up the hdfs command's usage text.
## @audience public
@ -126,6 +127,10 @@ function hdfscmd_case
echo "HADOOP_TOOLS_HOME='${HADOOP_TOOLS_HOME}'"
echo "HADOOP_TOOLS_DIR='${HADOOP_TOOLS_DIR}'"
echo "HADOOP_TOOLS_LIB_JARS_DIR='${HADOOP_TOOLS_LIB_JARS_DIR}'"
if [[ -n "${QATESTMODE}" ]]; then
echo "MYNAME=${MYNAME}"
echo "HADOOP_SHELL_EXECNAME=${HADOOP_SHELL_EXECNAME}"
fi
exit 0
;;
ec)
@ -269,4 +274,4 @@ fi
hadoop_subcommand_opts "${HADOOP_SHELL_EXECNAME}" "${HADOOP_SUBCMD}"
# everything is in globals at this point, so call the generic handler
hadoop_generic_java_subcmd_handler
hadoop_generic_java_subcmd_handler

View File

@ -0,0 +1,36 @@
# 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.
load hdfs-functions_test_helper
# Setup minimal environment to invoke the 'hdfs' command.
hdfscommandsetup () {
export HADOOP_LIBEXEC_DIR="${TMP}/libexec"
export HADOOP_CONF_DIR="${TMP}/conf"
mkdir -p "${HADOOP_LIBEXEC_DIR}"
echo ". \"${BATS_TEST_DIRNAME}/../../../../../hadoop-common-project/hadoop-common/src/main/bin/hadoop-functions.sh\"" > "${HADOOP_LIBEXEC_DIR}/hdfs-config.sh"
chmod a+rx "${HADOOP_LIBEXEC_DIR}/hdfs-config.sh"
}
# Verify that the 'hdfs' command correctly infers MYNAME and
# HADOOP_SHELL_EXECNAME
@test "hadoop_shell_execname" {
hdfscommandsetup
export QATESTMODE=unittest
run "${BATS_TEST_DIRNAME}/../../main/bin/hdfs" envvars
echo ">${output}<"
[[ ${output} =~ MYNAME=.*/hdfs ]]
[[ ${output} =~ HADOOP_SHELL_EXECNAME=hdfs ]]
}

View File

@ -15,8 +15,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# The name of the script being executed.
HADOOP_SHELL_EXECNAME="mapred"
MYNAME="${BASH_SOURCE-$0}"
HADOOP_SHELL_EXECNAME="${MYNAME##*/}"
## @description build up the mapred command's usage text.
## @audience public

View File

@ -15,8 +15,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# The name of the script being executed.
HADOOP_SHELL_EXECNAME="yarn"
MYNAME="${BASH_SOURCE-$0}"
HADOOP_SHELL_EXECNAME="${MYNAME##*/}"
## @description build up the yarn command's usage text.
## @audience public