You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by wl...@apache.org on 2017/05/15 02:08:12 UTC

incubator-hawq git commit: HAWQ-1456. Copy RPS configuration files to standby when initialize standby master.

Repository: incubator-hawq
Updated Branches:
  refs/heads/master 3461e6480 -> 982c077a3


HAWQ-1456. Copy RPS configuration files to standby when initialize standby master.


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/982c077a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/982c077a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/982c077a

Branch: refs/heads/master
Commit: 982c077a3d62796a4d7f30324373c9f14076c6fb
Parents: 3461e64
Author: interma <in...@outlook.com>
Authored: Tue May 9 14:23:57 2017 +0800
Committer: Wen Lin <wl...@pivotal.io>
Committed: Mon May 15 09:59:44 2017 +0800

----------------------------------------------------------------------
 ranger-plugin/scripts/enable-ranger-plugin.sh | 48 +++++++++++++++++-----
 tools/bin/hawq_ctl                            |  6 +++
 2 files changed, 44 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/982c077a/ranger-plugin/scripts/enable-ranger-plugin.sh
----------------------------------------------------------------------
diff --git a/ranger-plugin/scripts/enable-ranger-plugin.sh b/ranger-plugin/scripts/enable-ranger-plugin.sh
index d2318f8..5b702c9 100755
--- a/ranger-plugin/scripts/enable-ranger-plugin.sh
+++ b/ranger-plugin/scripts/enable-ranger-plugin.sh
@@ -20,7 +20,7 @@
 #
 
 function usage() {
-  echo "USAGE: enable-ranger-plugin.sh -r ranger_host:ranger_port -u ranger_user -p ranger_password -h hawq_host:hawq_port -w hawq_user -q hawq_password"
+  echo "USAGE: enable-ranger-plugin.sh -r ranger_host:ranger_port -u ranger_user -p ranger_password [-h hawq_host:hawq_port] -w hawq_user -q hawq_password"
   exit 1
 }
 
@@ -70,14 +70,41 @@ function get_ranger_password() {
   done
 }
 
+# get property value from hawq-site.xml
+function get_hawq_property() {
+  local hawq_site_file="$HAWQ_DIR/etc/hawq-site.xml"
+  local tag=$1
+  local value=''
+  if [ -f $hawq_site_file ] ; then
+    value=`cat $hawq_site_file | tr '\n' ' ' | awk -F '<property>' '{ for(i = 1; i <= NF; i++) { print $i; } }' | grep $tag | sed -n 's|.*<value>\(.*\)</value>.*|\1|p'`
+  fi
+  echo $value
+}
+
 function get_hawq_url() {
-  #todo read hawq-site.xml ?
+
+  # get hawq master host and port
+  # 1. read from command parameter -h
+  # 2. read from hawq-site.xml
+  if [[ -z "$HAWQ_URL" ]]; then
+    local host=$(get_hawq_property hawq_master_address_host)
+    local port=$(get_hawq_property hawq_master_address_port)
+
+    if [[ -z "$host" || -z "$port" ]]; then
+      HAWQ_URL=''
+    else
+      HAWQ_URL="$host:$port"
+    fi
+  fi
+
+  # 3. read from user input
   local default=`hostname -f`
   default="${default}:5432"
   while [[ -z "$HAWQ_URL" ]]
   do
     HAWQ_URL=$(read_value "HAWQ Master host and port [${default}]")
   done
+
   local prefix="http://"
   HAWQ_URL=${HAWQ_URL#$prefix}
   local parts=(${HAWQ_URL//:/ })
@@ -86,6 +113,7 @@ function get_hawq_url() {
   fi
   HAWQ_HOST=${parts[0]}
   HAWQ_PORT=${parts[1]}
+
 }
 
 function get_hawq_user() {
@@ -95,7 +123,6 @@ function get_hawq_user() {
     HAWQ_USER=$(read_value "HAWQ user name [${default}]")
   done
 }
-
 function get_hawq_password() {
   while [[ -z "$HAWQ_PASSWORD" ]]
   do
@@ -105,7 +132,7 @@ function get_hawq_password() {
 }
 
 function parse_params() {
-  while [[ $# -gt 0 ]] 
+  while [[ $# -gt 0 ]]
   do
     key="$1"
     case $key in
@@ -148,13 +175,13 @@ function validate_params() {
   get_hawq_url
   get_hawq_user
   get_hawq_password
-  echo "RANGER URL  = ${RANGER_URL}" 
-  echo "RANGER User = ${RANGER_USER}" 
+  echo "RANGER URL  = ${RANGER_URL}"
+  echo "RANGER User = ${RANGER_USER}"
   echo "RANGER Password = $(mask ${RANGER_PASSWORD})"
   echo "HAWQ HOST = ${HAWQ_HOST}"
-  echo "HAWQ PORT = ${HAWQ_PORT}"  
-  echo "HAWQ User = ${HAWQ_USER}" 
-  echo "HAWQ Password = $(mask ${HAWQ_PASSWORD})" 
+  echo "HAWQ PORT = ${HAWQ_PORT}"
+  echo "HAWQ User = ${HAWQ_USER}"
+  echo "HAWQ Password = $(mask ${HAWQ_PASSWORD})"
 }
 
 function check_hawq_service_definition() {
@@ -174,7 +201,7 @@ function create_hawq_service_definition() {
       fail "Creation of HAWQ service definition from ${json_file} in Ranger Admin at ${RANGER_URL} failed. ${output}"
     fi
   else
-    echo "HAWQ service definition already exists in Ranger Admin, nothing to do." 
+    echo "HAWQ service definition already exists in Ranger Admin, nothing to do."
   fi
 }
 
@@ -238,6 +265,7 @@ main() {
     usage
   fi
   SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd -P)"
+  HAWQ_DIR="$SCRIPT_DIR/../.."
   parse_params "$@"
   validate_params
   create_hawq_service_definition

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/982c077a/tools/bin/hawq_ctl
----------------------------------------------------------------------
diff --git a/tools/bin/hawq_ctl b/tools/bin/hawq_ctl
index f55ec95..5fa40af 100755
--- a/tools/bin/hawq_ctl
+++ b/tools/bin/hawq_ctl
@@ -387,6 +387,12 @@ class HawqInit:
                  (self.GPHOME, self.standby_host_name, self.GPHOME)
         check_return_code(remote_ssh(scpcmd, self.master_host_name, self.user), \
                           logger, "Sync slaves file failed")
+        # Sync rps configuration
+        if os.path.exists("%s/ranger/" % (self.GPHOME)):
+            scpcmd = "scp %s/ranger/etc/* %s:%s/ranger/etc/ > /dev/null" % \
+                 (self.GPHOME, self.standby_host_name, self.GPHOME)
+            check_return_code(remote_ssh(scpcmd, self.master_host_name, self.user), \
+                          logger, "Sync rps configuration files failed")
 
         standby_init_cmd = self._get_standby_init_cmd()