You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2011/06/05 10:23:08 UTC

svn commit: r1132007 - in /incubator/mesos/trunk: bin/ src/ src/configurator/ src/deploy/

Author: benh
Date: Sun Jun  5 08:23:08 2011
New Revision: 1132007

URL: http://svn.apache.org/viewvc?rev=1132007&view=rev
Log:
Fixed deploy scripts to work with new directory structure, made a few
improvements to them (e.g. only looking at /proc/cpuinfo and so on on
Linux), and removed an extra log statement in configurator.cpp

Added:
    incubator/mesos/trunk/src/deploy/
    incubator/mesos/trunk/src/deploy/deploy-to-slaves
      - copied, changed from r1132006, incubator/mesos/trunk/bin/deploy-to-slaves
    incubator/mesos/trunk/src/deploy/mesos-daemon   (with props)
    incubator/mesos/trunk/src/deploy/mesos-env.sh   (with props)
    incubator/mesos/trunk/src/deploy/start-master   (with props)
    incubator/mesos/trunk/src/deploy/start-mesos   (with props)
    incubator/mesos/trunk/src/deploy/start-slaves   (with props)
    incubator/mesos/trunk/src/deploy/stop-master   (with props)
    incubator/mesos/trunk/src/deploy/stop-mesos   (with props)
    incubator/mesos/trunk/src/deploy/stop-slaves   (with props)
Removed:
    incubator/mesos/trunk/bin/deploy-to-slaves
    incubator/mesos/trunk/bin/mesos-daemon
    incubator/mesos/trunk/bin/mesos_env.sh
    incubator/mesos/trunk/bin/start-master
    incubator/mesos/trunk/bin/start-mesos
    incubator/mesos/trunk/bin/start-slaves
    incubator/mesos/trunk/bin/stop-master
    incubator/mesos/trunk/bin/stop-mesos
    incubator/mesos/trunk/bin/stop-slaves
Modified:
    incubator/mesos/trunk/src/Makefile.in
    incubator/mesos/trunk/src/configurator/configurator.cpp

Modified: incubator/mesos/trunk/src/Makefile.in
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/Makefile.in?rev=1132007&r1=1132006&r2=1132007&view=diff
==============================================================================
--- incubator/mesos/trunk/src/Makefile.in (original)
+++ incubator/mesos/trunk/src/Makefile.in Sun Jun  5 08:23:08 2011
@@ -5,6 +5,7 @@ SHELL = '/bin/sh'
 BINDIR = @top_builddir@/bin
 LIBDIR = @top_builddir@/lib
 CONFDIR = @top_builddir@/conf
+DEPLOYDIR = @top_builddir@/deploy
 
 CC = @CC@
 CXX = @CXX@
@@ -202,6 +203,17 @@ WEBUI_FILES = $(BINDIR)/webui/bottle-0.5
 # We copy template config files into the conf directory.
 CONF_FILES = $(CONFDIR)/mesos.conf
 
+# We copy all the deploy scripts into the bin directory.
+DEPLOY_FILES = $(DEPLOYDIR)/deploy-to-slaves             \
+	       $(DEPLOYDIR)/mesos-daemon                 \
+	       $(DEPLOYDIR)/mesos-env.sh                 \
+	       $(DEPLOYDIR)/start-master                 \
+	       $(DEPLOYDIR)/start-mesos                  \
+	       $(DEPLOYDIR)/start-slaves                 \
+	       $(DEPLOYDIR)/stop-master                  \
+	       $(DEPLOYDIR)/stop-mesos                   \
+	       $(DEPLOYDIR)/stop-slaves                  \
+
 # Create rules for building the directories that aren't created
 # automagically by configure.
 OBJ_DIRECTORIES = common configurator detector exec launcher local	\
@@ -213,7 +225,8 @@ WEBUI_DIRECTORIES = $(BINDIR)/webui/comm
                     $(BINDIR)/webui/slave/swig
 
 DIRECTORIES = $(BINDIR) $(LIBDIR) $(LIBDIR)/java $(LIBDIR)/python	\
-              $(OBJ_DIRECTORIES) $(WEBUI_DIRECTORIES) $(CONFDIR)
+              $(OBJ_DIRECTORIES) $(WEBUI_DIRECTORIES) $(CONFDIR)        \
+	      $(DEPLOYDIR)
 
 
 default: all
@@ -317,13 +330,18 @@ ifeq ($(WITH_WEBUI),1)
 	cp -r $< $@
 endif
 
+$(DEPLOY_FILES): | $(DEPLOYDIR)
+
+$(DEPLOY_FILES): $(DEPLOYDIR)/%: @srcdir@/deploy/%
+	cp -r $< $@
+
 $(CONFDIR)/mesos.conf: @srcdir@/conf/mesos.conf.template | $(CONFDIR)
 	cp -r $^ $@
 
 test: all
 	$(MAKE) -C tests test
 
-all: $(MESOS_LIBS) $(MESOS_EXES) java python $(WEBUI_FILES) $(CONF_FILES)
+all: $(MESOS_LIBS) $(MESOS_EXES) java python $(WEBUI_FILES) $(CONF_FILES) $(DEPLOY_FILES)
 	$(MAKE) -C examples
 	$(MAKE) -C tests
 

Modified: incubator/mesos/trunk/src/configurator/configurator.cpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/configurator/configurator.cpp?rev=1132007&r1=1132006&r2=1132007&view=diff
==============================================================================
--- incubator/mesos/trunk/src/configurator/configurator.cpp (original)
+++ incubator/mesos/trunk/src/configurator/configurator.cpp Sun Jun  5 08:23:08 2011
@@ -227,7 +227,6 @@ void Configurator::loadCommandLine(int a
 
 void Configurator::loadConfigFile(const string& fname, bool overwrite) 
 {
-  LOG(INFO) << "Loading config file: " << fname;
   ifstream cfg(fname.c_str(), std::ios::in);
   if (!cfg.is_open()) {
     string message = "Couldn't read Mesos config file: " + fname;

Copied: incubator/mesos/trunk/src/deploy/deploy-to-slaves (from r1132006, incubator/mesos/trunk/bin/deploy-to-slaves)
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/deploy/deploy-to-slaves?p2=incubator/mesos/trunk/src/deploy/deploy-to-slaves&p1=incubator/mesos/trunk/bin/deploy-to-slaves&r1=1132006&r2=1132007&rev=1132007&view=diff
==============================================================================
--- incubator/mesos/trunk/bin/deploy-to-slaves (original)
+++ incubator/mesos/trunk/src/deploy/deploy-to-slaves Sun Jun  5 08:23:08 2011
@@ -1,9 +1,9 @@
 #! /usr/bin/env bash
 
-bin=`dirname "$0"`
-bin=`cd "$bin"; pwd`
+DEPLOY_DIR=`dirname "$0"`
+DEPLOY_DIR=`cd "$DEPLOY_DIR"; pwd`
 
-. $bin/mesos_env.sh
+. $DEPLOY_DIR/mesos-env.sh
 
 echo "RSYNC'ing $MESOS_ROOT to slaves..."
 for slave in $SLAVES; do

Added: incubator/mesos/trunk/src/deploy/mesos-daemon
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/deploy/mesos-daemon?rev=1132007&view=auto
==============================================================================
--- incubator/mesos/trunk/src/deploy/mesos-daemon (added)
+++ incubator/mesos/trunk/src/deploy/mesos-daemon Sun Jun  5 08:23:08 2011
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+DEPLOY_DIR=`dirname "$0"`
+DEPLOY_DIR=`cd "$DEPLOY_DIR"; pwd`
+
+. $DEPLOY_DIR/mesos-env.sh
+
+ulimit -n 8192
+
+PROGRAM=$1
+shift
+
+EXTRA_OPTS=""
+if [ "$PROGRAM" == "mesos-slave" ]; then
+  # Compute CPU and memory resources on this machine (TODO: Linux-specific)
+  if [ `uname` == "Linux" ]; then
+    CPUS=`grep processor /proc/cpuinfo | wc -l`
+    MEM_KB=`cat /proc/meminfo | grep MemTotal | awk '{print $2}'`
+    MEM=$[(MEM_KB - 1024 * 1024) / 1024] # Leaves 1 GB free
+    EXTRA_OPTS="--cpus=$CPUS --mem=$MEM"
+  fi
+fi
+
+
+if [ ! -d $MESOS_LOGS ]; then
+  mkdir -p $MESOS_LOGS
+fi
+
+cd $MESOS_HOME
+echo "now in dir `pwd`"
+nohup ./bin/$PROGRAM $EXTRA_OPTS $@ </dev/null >$MESOS_LOGS/$PROGRAM.out 2>&1 &

Propchange: incubator/mesos/trunk/src/deploy/mesos-daemon
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/mesos/trunk/src/deploy/mesos-env.sh
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/deploy/mesos-env.sh?rev=1132007&view=auto
==============================================================================
--- incubator/mesos/trunk/src/deploy/mesos-env.sh (added)
+++ incubator/mesos/trunk/src/deploy/mesos-env.sh Sun Jun  5 08:23:08 2011
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+DEPLOY_DIR=`dirname "$0"`
+DEPLOY_DIR=`cd "$DEPLOY_DIR"; pwd`
+
+echo DEPLOY_DIR is $DEPLOY_DIR
+
+#files that list master(s) and slaves
+MASTER=`cat $DEPLOY_DIR/master`
+SLAVES=`cat $DEPLOY_DIR/slaves`
+
+#The dir where Mesos deployment scripts live
+MESOS_HOME=`cd "$DEPLOY_DIR/.."; pwd`
+echo "MESOS_HOME is $MESOS_HOME"
+
+MESOS_LOGS=$MESOS_HOME/logs
+
+#options for ssh'ing
+SSH_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=2"
+
+#LIBPROCESS_IP="hostname -i" #works on older versions of hostname, not on osx
+#FULL_IP="hostname --all-ip-addresses" # newer versions of hostname only
+#export LIBPROCESS_IP=`echo $FULL_IP|sed 's/\([^ ]*\) .*/\1/'`

Propchange: incubator/mesos/trunk/src/deploy/mesos-env.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/mesos/trunk/src/deploy/start-master
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/deploy/start-master?rev=1132007&view=auto
==============================================================================
--- incubator/mesos/trunk/src/deploy/start-master (added)
+++ incubator/mesos/trunk/src/deploy/start-master Sun Jun  5 08:23:08 2011
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+DEPLOY_DIR=`dirname "$0"`
+DEPLOY_DIR=`cd "$DEPLOY_DIR"; pwd`
+
+. $DEPLOY_DIR/mesos-env.sh
+
+cd $DEPLOY_DIR
+
+#Launch master
+echo "Starting master on $MASTER"
+echo ssh $SSH_OPTS $MASTER "$DEPLOY_DIR/mesos-daemon mesos-master </dev/null >/dev/null"
+ssh $SSH_OPTS $MASTER "$DEPLOY_DIR/mesos-daemon mesos-master </dev/null >/dev/null"

Propchange: incubator/mesos/trunk/src/deploy/start-master
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/mesos/trunk/src/deploy/start-mesos
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/deploy/start-mesos?rev=1132007&view=auto
==============================================================================
--- incubator/mesos/trunk/src/deploy/start-mesos (added)
+++ incubator/mesos/trunk/src/deploy/start-mesos Sun Jun  5 08:23:08 2011
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+DEPLOY_DIR=`dirname "$0"`
+DEPLOY_DIR=`cd "$DEPLOY_DIR"; pwd`
+
+. $DEPLOY_DIR/mesos-env.sh
+
+$DEPLOY_DIR/start-master
+
+$DEPLOY_DIR/start-slaves
+
+echo "Everything's started! You should be able to view the master Web UI"
+

Propchange: incubator/mesos/trunk/src/deploy/start-mesos
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/mesos/trunk/src/deploy/start-slaves
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/deploy/start-slaves?rev=1132007&view=auto
==============================================================================
--- incubator/mesos/trunk/src/deploy/start-slaves (added)
+++ incubator/mesos/trunk/src/deploy/start-slaves Sun Jun  5 08:23:08 2011
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+DEPLOY_DIR=`dirname "$0"`
+DEPLOY_DIR=`cd "$DEPLOY_DIR"; pwd`
+. $DEPLOY_DIR/mesos-env.sh
+
+cd $DEPLOY_DIR
+
+#PORT=`../src/get_conf port $@`;
+#Launch slaves
+for slave in $SLAVES; do
+  echo "Starting slave on $slave"
+  echo ssh $SSH_OPTS $slave "$DEPLOY_DIR/mesos-daemon mesos-slave -u 1@$MASTER:5050 </dev/null >/dev/null" 
+  ssh $SSH_OPTS $slave "$DEPLOY_DIR/mesos-daemon mesos-slave -u 1@$MASTER:5050 </dev/null >/dev/null" &
+  sleep 0.1
+done
+wait

Propchange: incubator/mesos/trunk/src/deploy/start-slaves
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/mesos/trunk/src/deploy/stop-master
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/deploy/stop-master?rev=1132007&view=auto
==============================================================================
--- incubator/mesos/trunk/src/deploy/stop-master (added)
+++ incubator/mesos/trunk/src/deploy/stop-master Sun Jun  5 08:23:08 2011
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+DEPLOY_DIR=`dirname "$0"`
+DEPLOY_DIR=`cd "$DEPLOY_DIR"; pwd`
+
+. $DEPLOY_DIR/mesos-env.sh
+
+cd $DEPLOY_DIR
+
+echo "Stopping master on $MASTER"
+ssh $SSH_OPTS $MASTER "killall mesos-master"

Propchange: incubator/mesos/trunk/src/deploy/stop-master
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/mesos/trunk/src/deploy/stop-mesos
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/deploy/stop-mesos?rev=1132007&view=auto
==============================================================================
--- incubator/mesos/trunk/src/deploy/stop-mesos (added)
+++ incubator/mesos/trunk/src/deploy/stop-mesos Sun Jun  5 08:23:08 2011
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+DEPLOY_DIR=`dirname "$0"`
+DEPLOY_DIR=`cd "$DEPLOY_DIR"; pwd`
+
+. $DEPLOY_DIR/mesos-env.sh
+
+cd $DEPLOY_DIR
+
+./stop-slaves
+
+./stop-master

Propchange: incubator/mesos/trunk/src/deploy/stop-mesos
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/mesos/trunk/src/deploy/stop-slaves
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/deploy/stop-slaves?rev=1132007&view=auto
==============================================================================
--- incubator/mesos/trunk/src/deploy/stop-slaves (added)
+++ incubator/mesos/trunk/src/deploy/stop-slaves Sun Jun  5 08:23:08 2011
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+DEPLOY_DIR=`dirname "$0"`
+DEPLOY_DIR=`cd "$DEPLOY_DIR"; pwd`
+
+. $DEPLOY_DIR/mesos-env.sh
+
+cd $DEPLOY_DIR
+
+for slave in $SLAVES; do
+  echo "Stopping slave on $slave"
+  ssh $SSH_OPTS $slave "killall mesos-slave" &
+  sleep 0.1
+done
+wait

Propchange: incubator/mesos/trunk/src/deploy/stop-slaves
------------------------------------------------------------------------------
    svn:executable = *