| #!/bin/bash | |
| # 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. | |
| usage() { | |
| echo "usage: run-filesource-usergroupsync.sh | |
| -h show help. | |
| -i <arg> Input file name ( csv or json file ) | |
| JSON FILE FORMAT | |
| { | |
| "user1":["group-1", "group-2", "group-3"], | |
| "user2":["group-x","group-y","group-z"] | |
| } | |
| CSV FILE FORMAT | |
| user-1,group-1,group-2,group-3 | |
| user-2,group-x,group-y,group-z" | |
| exit 1 | |
| } | |
| logdir="/var/log/ranger/usersync" | |
| scriptPath=$(cd "$(dirname "$0")"; pwd) | |
| ugsync_home="${scriptPath}/.." | |
| cp="${ugsync_home}/dist/*:${ugsync_home}/lib/*:${ugsync_home}/conf" | |
| JAVA_CMD="java -Dlogdir=${logdir} -cp ${cp} org.apache.ranger.unixusersync.process.FileSourceUserGroupBuilder" | |
| while getopts "i:h" opt; do | |
| case $opt in | |
| i) JAVA_CMD="$JAVA_CMD $OPTARG" | |
| fileName=$OPTARG | |
| ;; | |
| h) usage | |
| ;; | |
| \?) echo -e \\n"Option -$OPTARG not allowed." | |
| usage | |
| ;; | |
| esac | |
| done | |
| if [ $OPTIND -eq 1 ]; | |
| then | |
| usage; | |
| fi | |
| echo "JAVA commnad = $JAVA_CMD" | |
| if [ "${JAVA_HOME}" != "" ] | |
| then | |
| export JAVA_HOME | |
| PATH="${JAVA_HOME}/bin:${PATH}" | |
| export PATH | |
| fi | |
| $JAVA_CMD | |
| errorCode=$? | |
| if [ ${errorCode} -eq 0 ]; then | |
| echo "Successfully loaded users/groups from file ${fileName}" | |
| else | |
| echo "Failed to load users/groups from file ${fileName}: error code=${errorCode}" | |
| fi |