diff --git a/bigtop-packages/src/common/bigtop-select/conf-select b/bigtop-packages/src/common/bigtop-select/conf-select deleted file mode 100644 index b1189712f1..0000000000 --- a/bigtop-packages/src/common/bigtop-select/conf-select +++ /dev/null @@ -1,224 +0,0 @@ -#!/usr/bin/env python2 -# -# 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. -# -import optparse -import copy -import os -import re -import sys -import errno -from params import stack_root - -# The global prefix and current directory -root = stack_root -current = root + "/current" -vconfroot = 'etc' -lib_root = "usr/lib" -vconf_name = "conf.dist" -packages = ("hadoop", "hbase", "hive", "hive-hcatalog", - "kafka", "spark", "tez", "livy", - "zookeeper", "zeppelin", "flink", "solr", "ranger-admin", "ranger-usersync", "ranger-tagsync") -''' conf link -/usr/bigtop/3.2.0/usr/lib/${pname}/conf -> /etc/${pname}/conf -> /etc/alternatives/${pname}-conf -> /usr/bigtop/3.2.0/etc/${pname}/conf.dist.0 -''' - - -def printHelp(): - print(""" -usage: conf-select [-h] [] --package --stack-version --conf-version -arguments: - One of create-conf-dir, set-conf-dir - <--package> package name to set - <--stack-version> stack version number - <--conf-version> conf version to set -optional arguments: - -h, --help show this help message and exit -Commands: - set-conf-dir : set the conf to a specified version - create-conf-dir : create the specified conf directory - dry-run-set : dry run for set conf - dry-run-create : dry run for create conf -""") - - -def chkPkg(sver, pname): - ''' - checks package name against the package tuple, check if the package directory exists and returns True - e.g. /usr/bigtop/3.2.0/usr/lib/zookeeper - ''' - pkgdir = os.path.join(root, sver, lib_root, pname) - if not os.path.isdir(pkgdir) or pname not in packages: - print(pname + " not installed or incorrect package name") - sys.exit(1) - return True - - -def chksVer(sver): - ''' - returns True if the stack version number exists - e.g. /usr/bigtop/3.2.0/usr/lib - ''' - if not os.path.isdir(os.path.join(root, sver, lib_root)): - print(sver + " Incorrect stack version") - sys.exit(1) - return True - - -def chkPath(pname, sver, cver, method): - ''' - e.g. /usr/bigtop/3.2.0/etc/zookeeper/conf.dist.0 - ''' - confpath = os.path.join(root, sver, vconfroot, pname, vconf_name) - if cver: - confpath = os.path.join(root, sver, vconfroot, pname, vconf_name + '.' + cver) - if method == "create" and os.path.exists(confpath): - print(confpath+" exist already") - sys.exit(1) - if method == "set" and not os.path.exists(confpath): - print(confpath+" does not exist") - sys.exit(1) - return True - - -def check(sver, pname, cver, method): - ''' - Aggregates chksVer, chkPkg and checks if path exits. - Returns True if all the conditions are met - ''' - chksVer(sver) - chkPkg(sver, pname) - chkPath(pname, sver, cver, method) - - -def drcrtConfDir(pname, sver, cver): - ''' - # Not really executing - # e.g. /usr/bigtop/3.2.0/etc/zookeeper/conf.dist.0 - ''' - chksVer(sver) - chkPkg(sver, pname) - for confmapkey, confmapval in confmap.items(): - path = os.path.join(root, sver, vconfroot, confmapkey, vconf_name) - if cver: - path = os.path.join(root, sver, vconfroot, confmapkey, vconf_name+'.'+cver) - print(path) - - -def crtConfDir(pname, sver, cver): - ''' - e.g. /usr/bigtop/3.2.0/etc/zookeeper/conf.dist.0 - ''' - path = os.path.join(root, sver, vconfroot, pname, vconf_name) - check(sver, pname, cver, "create") - for confmapkey, confmapval in confmap.items(): - path = os.path.join(root, sver, vconfroot, confmapkey, vconf_name) - if cver: - path = os.path.join(root, sver, vconfroot, confmapkey, vconf_name+'.'+cver) - try: - os.makedirs(path) - print(path) - except OSError as exc: - if exc.errno == errno.EACCES: - print("Permission denied") - - -def drsetConfDir(pname, sver): - ''' - Not really executing - ''' - chksVer(sver) - chkPkg(sver, pname) - for confmapkey, confmapval in confmap.items(): - # e.g. /usr/bigtop/3.2.0/usr/lib/hive/conf - confdir = os.path.join(root, sver, lib_root, pname, confmapval) - if os.path.exists(confdir) and os.path.islink(confdir): - print(confdir) - else: - print(confdir+" does not exist") - sys.exit(1) - - -def setConfDir(pname, sver, cver): - ''' - e.g. /usr/bigtop/3.2.0/usr/lib/zookeeper/conf -> /etc/zookeeper/conf -> /usr/bigtop/3.2.0/etc/zookeeper/conf.dist.0 - ''' - check(sver, pname, cver, "set") - for confmapkey, confmapval in confmap.items(): - # e.g. /usr/bigtop/3.2.0/etc/zookeeper/conf.dist.0 - path = os.path.join(root, sver, vconfroot, confmapkey, vconf_name) - if cver: - path = os.path.join(root, sver, vconfroot, confmapkey, vconf_name+'.'+cver) - # e.g. /usr/bigtop/3.2.0/usr/lib/zookeeper/conf - confdir = os.path.join(root, sver, lib_root, pname, confmapval) - - if os.path.exists(confdir) and not os.path.islink(confdir): - raise Exception("Expected confdir %s to be a symlink." % confdir) - - if os.path.islink(confdir) and not os.path.exists(confdir): - os.remove(confdir) - - if os.path.exists(confdir): - if path == os.readlink(confdir): - return - else: - os.remove(confdir) - - os.symlink('/etc/{0}/conf'.format(pname), confdir) - print(confdir + " -> " + '/etc/{0}/conf'.format(pname)) - print('alternatives --install /etc/{0}/conf {0}-conf {1} 30'.format(pname, path)) - os.system('alternatives --install /etc/{0}/conf {0}-conf {1} 30'.format(pname, path)) - os.system('alternatives --set {0}-conf {1}'.format(pname, path)) - print('/etc/{0}/conf'.format(pname) + " -> " + path) - - -# Start of main -parser = optparse.OptionParser(add_help_option=False) -parser.add_option("-h", "--help", action="store_true", dest="help", - help="print help") -parser.add_option("-p", "--package", action="store", dest="pname", - help="package name") -parser.add_option("-s", "--stack-version", action="store", dest="sver", - help="stack verison number") -parser.add_option("-c", "--conf-version", action="store", dest="cver", - help="conf verison number", default=None) - -(options, args) = parser.parse_args() -'''default conf mapping''' -confmap = {options.pname: "conf"} -'''conf mapping if the pkg name is hive-hcatalog''' -if options.pname == "hive-hcatalog": - confmap = {"hive-hcatalog": "etc/hcatalog", - "hive-webhcat": "etc/webhcat"} - - - -if options.help or len(args) == 0: - printHelp() -elif not options.pname or not options.sver: - parser.error("Invalid option") - printHelp() -elif args[0] == 'create-conf-dir': - crtConfDir(options.pname, options.sver, options.cver) -elif args[0] == 'set-conf-dir': - setConfDir(options.pname, options.sver, options.cver) -elif args[0] == 'dry-run-set': - drsetConfDir(options.pname, options.sver) -elif args[0] == 'dry-run-create': - drcrtConfDir(options.pname, options.sver, options.cver) -else: - printHelp() diff --git a/bigtop-packages/src/common/bigtop-select/distro-select b/bigtop-packages/src/common/bigtop-select/distro-select index 3383fca2f1..5a04205f82 100644 --- a/bigtop-packages/src/common/bigtop-select/distro-select +++ b/bigtop-packages/src/common/bigtop-select/distro-select @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -71,7 +71,7 @@ leaves = { "ranger-usersync" : "ranger-usersync", "ranger-tagsync" : "ranger-tagsync", "livy-server" : "livy", - "livy-client" : "livy" + "livy-client" : "livy", "alluxio": "alluxio", "alluxio-master": "alluxio", "alluxio-worker": "alluxio" @@ -161,7 +161,7 @@ def listPackages( packages ): if packages == None: packages = leaves - packages.sort() + packages = sorted(packages) for pkg in packages: linkname = current + "/" + pkg if os.path.isdir(linkname): @@ -172,13 +172,11 @@ def listPackages( packages ): # Print the avaialable package names def printPackages(): - packages = leaves.keys() - packages.sort() + packages = sorted(leaves.keys()) print("Packages:") for pkg in packages: print(" " + pkg) - groups = aliases.keys() - groups.sort() + groups = sorted(aliases.keys()) print("Aliases:") for pkg in groups: print(" " + pkg) @@ -203,8 +201,7 @@ def printVersions(): print("ERROR: Unexpected file/directory found in %s: %s" % (root, f)) sys.exit(1) - keys = result.keys() - keys.sort() + keys = sorted(result.keys()) for k in keys: print(result[k]) @@ -225,9 +222,9 @@ def setPackages(packages, version, rpm_mode): sys.exit(1) if not os.path.isdir(current): - os.mkdir(current, 0755) + os.mkdir(current, 0o755) - packages.sort() + packages = sorted(packages) for pkg in packages: linkname = current + "/" + pkg if os.path.islink(linkname) and rpm_mode: diff --git a/bigtop-packages/src/common/bigtop-select/install_select.sh b/bigtop-packages/src/common/bigtop-select/install_select.sh index b5b88c9543..f12aab5318 100644 --- a/bigtop-packages/src/common/bigtop-select/install_select.sh +++ b/bigtop-packages/src/common/bigtop-select/install_select.sh @@ -79,15 +79,13 @@ CONF_DIR=${CONF_DIR:-/etc/bigtop-select/conf.dist} STACK_ROOT_DIR=$(echo ${PARENT_DIR} | sed -e "s/\/${BIGTOP_BASE_VERSION}$//") STACK_SELECTOR=distro-select -CONF_SELECTOR=conf-select # Install packages install -d -p -m 755 $PREFIX${LIB_DIR}/ install -d -p -m 755 $PREFIX${PARENT_DIR}/ install -p -m 755 ${DISTRO_DIR}/${STACK_SELECTOR} $PREFIX${LIB_DIR}/ -install -p -m 755 ${DISTRO_DIR}/${CONF_SELECTOR} $PREFIX${LIB_DIR}/ cat > $PREFIX${LIB_DIR}/params.py <