Repository: ambari
Updated Branches:
  refs/heads/trunk 4fde93a2a -> a133f7c98


AMBARI-15288. Ability to customize Ambari Agent LOG + PID dirs (aonishuk)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/a133f7c9
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/a133f7c9
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/a133f7c9

Branch: refs/heads/trunk
Commit: a133f7c9822c392362374f68bb774933db1d4375
Parents: 4fde93a
Author: Andrew Onishuk <aonis...@hortonworks.com>
Authored: Thu Mar 3 19:13:23 2016 +0200
Committer: Andrew Onishuk <aonis...@hortonworks.com>
Committed: Thu Mar 3 19:13:23 2016 +0200

----------------------------------------------------------------------
 ambari-agent/conf/unix/ambari-agent             | 29 ++++++++++++--------
 ambari-agent/conf/unix/ambari-agent.ini         |  2 ++
 .../main/python/ambari_agent/AmbariConfig.py    |  8 +++---
 .../test/python/ambari_agent/TestAmbariAgent.py |  2 +-
 4 files changed, 24 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/a133f7c9/ambari-agent/conf/unix/ambari-agent
----------------------------------------------------------------------
diff --git a/ambari-agent/conf/unix/ambari-agent 
b/ambari-agent/conf/unix/ambari-agent
index f5ce304..0d1bc23 100755
--- a/ambari-agent/conf/unix/ambari-agent
+++ b/ambari-agent/conf/unix/ambari-agent
@@ -33,18 +33,27 @@ case "$1" in
         ;;
 esac
 
+get_agent_property() {
+  property_name="$1"
+  value=$(awk -F "=" "/$property_name/ {print \$2}" 
/etc/ambari-agent/conf/ambari-agent.ini)
+  echo $value
+}
+
 export PATH=/usr/sbin:/sbin:/usr/lib/ambari-server/*:$PATH
 export AMBARI_CONF_DIR=/etc/ambari-server/conf:$PATH
 
 # Because Ambari rpm unpacks modules here on all systems
 export PYTHONPATH=/usr/lib/python2.6/site-packages:$PYTHONPATH
 
+export AMBARI_PID_DIR=`get_agent_property piddir`
+export AMBARI_AGENT_LOG_DIR=`get_agent_property logdir`
+KEYSDIR=`get_agent_property keysdir`
+
 AMBARI_AGENT=ambari-agent
 PYTHON_WRAP=/usr/bin/ambari-python-wrap
-PIDDIR=/var/run/ambari-agent
-PIDFILE=$PIDDIR/$AMBARI_AGENT.pid
-OUTFILE=/var/log/ambari-agent/ambari-agent.out
-LOGFILE=/var/log/ambari-agent/ambari-agent.log
+PIDFILE=$AMBARI_PID_DIR/$AMBARI_AGENT.pid
+OUTFILE=$AMBARI_AGENT_LOG_DIR/ambari-agent.out
+LOGFILE=$AMBARI_AGENT_LOG_DIR/ambari-agent.log
 AGENT_SCRIPT=/usr/lib/python2.6/site-packages/ambari_agent/main.py
 AGENT_TMP_DIR=/var/lib/ambari-agent/tmp
 
AMBARI_AGENT_PY_SCRIPT=/usr/lib/python2.6/site-packages/ambari_agent/AmbariAgent.py
@@ -64,18 +73,14 @@ fi
 # set reliable cwd for this and child processes.
 cd $AGENT_TMP_DIR
 
-keysdir=$(awk -F "=" '/keysdir/ {print $2}' 
/etc/ambari-agent/conf/ambari-agent.ini)
-# trim spaces
-keysdir=${keysdir// }
-keysdir=${keysdir%% }
-
 change_files_permissions() {
     if [ ! -z "$keysdir" ]; then
         ambari-sudo.sh chown -R $current_user "$keysdir"
     fi
-       ambari-sudo.sh mkdir -p "$PIDDIR"
-       ambari-sudo.sh chown -R $current_user "$PIDDIR"
-       ambari-sudo.sh chown -R $current_user "/var/log/ambari-agent/"
+       ambari-sudo.sh mkdir -p "$AMBARI_PID_DIR"
+       ambari-sudo.sh chown -R $current_user "$AMBARI_PID_DIR"
+       ambari-sudo.sh mkdir -p "$AMBARI_AGENT_LOG_DIR"
+       ambari-sudo.sh chown -R $current_user "$AMBARI_AGENT_LOG_DIR"
        ambari-sudo.sh chown -R $current_user "/var/lib/ambari-agent/data/"
        ambari-sudo.sh chown -R $current_user "/var/lib/ambari-agent/cache/"
        ambari-sudo.sh chown    $current_user "/usr/lib/ambari-agent/"

http://git-wip-us.apache.org/repos/asf/ambari/blob/a133f7c9/ambari-agent/conf/unix/ambari-agent.ini
----------------------------------------------------------------------
diff --git a/ambari-agent/conf/unix/ambari-agent.ini 
b/ambari-agent/conf/unix/ambari-agent.ini
index b46bfe5..05e898a 100644
--- a/ambari-agent/conf/unix/ambari-agent.ini
+++ b/ambari-agent/conf/unix/ambari-agent.ini
@@ -18,6 +18,8 @@ url_port=8440
 secured_url_port=8441
 
 [agent]
+logdir=/var/log/ambari-agent
+piddir=/var/run/ambari-agent
 prefix=/var/lib/ambari-agent/data
 ;loglevel=(DEBUG/INFO)
 loglevel=INFO

http://git-wip-us.apache.org/repos/asf/ambari/blob/a133f7c9/ambari-agent/src/main/python/ambari_agent/AmbariConfig.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/main/python/ambari_agent/AmbariConfig.py 
b/ambari-agent/src/main/python/ambari_agent/AmbariConfig.py
index b1d4419..01e8daa 100644
--- a/ambari-agent/src/main/python/ambari_agent/AmbariConfig.py
+++ b/ambari-agent/src/main/python/ambari_agent/AmbariConfig.py
@@ -204,15 +204,15 @@ class AmbariConfig:
     
   @staticmethod
   def getAlertsLogFile():
-    if 'AMBARI_ALERTS_AGENT_LOG_DIR' in os.environ:
-      return os.path.join(os.environ['AMBARI_ALERTS_AGENT_LOG_DIR'], 
"ambari-agent.log")
+    if 'AMBARI_AGENT_LOG_DIR' in os.environ:
+      return os.path.join(os.environ['AMBARI_AGENT_LOG_DIR'], 
"ambari-agent.log")
     else:
       return os.path.join(os.sep, "var", "log", "ambari-agent", 
"ambari-alerts.log")
 
   @staticmethod
   def getOutFile():
-    if 'AMBARI_AGENT_OUT_DIR' in os.environ:
-      return os.path.join(os.environ['AMBARI_AGENT_OUT_DIR'], 
"ambari-agent.out")
+    if 'AMBARI_AGENT_LOG_DIR' in os.environ:
+      return os.path.join(os.environ['AMBARI_AGENT_LOG_DIR'], 
"ambari-agent.out")
     else:
       return os.path.join(os.sep, "var", "log", "ambari-agent", 
"ambari-agent.out")
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/a133f7c9/ambari-agent/src/test/python/ambari_agent/TestAmbariAgent.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/test/python/ambari_agent/TestAmbariAgent.py 
b/ambari-agent/src/test/python/ambari_agent/TestAmbariAgent.py
index a354572..1be487c 100644
--- a/ambari-agent/src/test/python/ambari_agent/TestAmbariAgent.py
+++ b/ambari-agent/src/test/python/ambari_agent/TestAmbariAgent.py
@@ -92,6 +92,6 @@ class TestAmbariAgent(unittest.TestCase):
     #
     out_folder = '/myoutlocation/out'
     out_file = 'ambari-agent.out'
-    with patch.dict('os.environ', {'AMBARI_AGENT_OUT_DIR': out_folder}):
+    with patch.dict('os.environ', {'AMBARI_AGENT_LOG_DIR': out_folder}):
       self.assertEqual(os.path.join(out_folder, out_file), 
AmbariConfig.AmbariConfig.getOutFile())
     pass

Reply via email to