[ARVADOS] updated: b3905ce85fcfc31df4309c32ee07ff4d943d5fd0

Git user git at public.curoverse.com
Fri Mar 4 10:01:13 EST 2016


Summary of changes:
 doc/install/arvbox.html.textile.liquid | 13 ++++--
 tools/arvbox/bin/arvbox                | 81 +++++++++++++++++++++++++---------
 2 files changed, 68 insertions(+), 26 deletions(-)

       via  b3905ce85fcfc31df4309c32ee07ff4d943d5fd0 (commit)
      from  6303d577e0513eae1254a9c73648c24b9451ed10 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit b3905ce85fcfc31df4309c32ee07ff4d943d5fd0
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Fri Mar 4 10:01:06 2016 -0500

    Arvbox improvements: add "pipe", "cat", "ls".  Report both container IP address
    and published arvbox host.  Update install page with new commands.  no issue #

diff --git a/doc/install/arvbox.html.textile.liquid b/doc/install/arvbox.html.textile.liquid
index 2420ff7..4d9f504 100644
--- a/doc/install/arvbox.html.textile.liquid
+++ b/doc/install/arvbox.html.textile.liquid
@@ -23,7 +23,8 @@ h2. Requirements
 h2. Usage
 
 <pre>
-Arvados-in-a-box
+$ arvbox
+Arvados-in-a-box                      http://arvados.org
 
 arvbox (build|start|run|open|shell|ip|stop|reboot|reset|destroy|log|svrestart)
 
@@ -31,15 +32,19 @@ build <config>      build arvbox Docker image
 start|run <config>  start arvbox container
 open       open arvbox workbench in a web browser
 shell      enter arvbox shell
-ip         print arvbox ip address
+ip         print arvbox docker container ip address
+host       print arvbox published host
 status     print some information about current arvbox
 stop       stop arvbox container
 restart <config>  stop, then run again
 reboot  <config>  stop, build arvbox Docker image, run
 reset      delete arvbox arvados data (be careful!)
 destroy    delete all arvbox code and data (be careful!)
-log       <service> tail log of specified service
-sv        <start|stop|restart> <service> change state of service inside arvbox
+log <service> tail log of specified service
+ls <options>  list directories inside arvbox
+cat <files>   get contents of files inside arvbox
+pipe       run a bash script piped in from stdin
+sv <start|stop|restart> <service> change state of service inside arvbox
 clone <from> <to>   clone an arvbox
 </pre>
 
diff --git a/tools/arvbox/bin/arvbox b/tools/arvbox/bin/arvbox
index d790cb6..8b6e56d 100755
--- a/tools/arvbox/bin/arvbox
+++ b/tools/arvbox/bin/arvbox
@@ -56,14 +56,26 @@ getip() {
     docker inspect $ARVBOX_CONTAINER | grep \"IPAddress\" | head -n1 | tr -d ' ":,\n' | cut -c10-
 }
 
+gethost() {
+    set +e
+    OVERRIDE=$(docker exec -i $ARVBOX_CONTAINER cat /var/run/localip_override 2>/dev/null)
+    CODE=$?
+    set -e
+    if test "$CODE" = 0 ; then
+       echo $OVERRIDE
+    else
+        getip
+    fi
+}
+
 updateconf() {
     if test -f ~/.config/arvados/$ARVBOX_CONTAINER.conf ; then
-        sed "s/ARVADOS_API_HOST=.*/ARVADOS_API_HOST=$(getip):8000/" <$HOME/.config/arvados/$ARVBOX_CONTAINER.conf >$HOME/.config/arvados/$ARVBOX_CONTAINER.conf.tmp
+        sed "s/ARVADOS_API_HOST=.*/ARVADOS_API_HOST=$(gethost):8000/" <$HOME/.config/arvados/$ARVBOX_CONTAINER.conf >$HOME/.config/arvados/$ARVBOX_CONTAINER.conf.tmp
         mv ~/.config/arvados/$ARVBOX_CONTAINER.conf.tmp ~/.config/arvados/$ARVBOX_CONTAINER.conf
     else
         mkdir -p $HOME/.config/arvados
         cat >$HOME/.config/arvados/$ARVBOX_CONTAINER.conf <<EOF
-ARVADOS_API_HOST=$(getip):8000
+ARVADOS_API_HOST=$(gethost):8000
 ARVADOS_API_TOKEN=
 ARVADOS_API_HOST_INSECURE=true
 EOF
@@ -86,7 +98,7 @@ wait_for_arvbox() {
     if test -n "$localip" ; then
         echo "export ARVADOS_API_HOST=$localip:8000"
     else
-        echo "export ARVADOS_API_HOST=$(getip):8000"
+        echo "export ARVADOS_API_HOST=$(gethost):8000"
     fi
 }
 
@@ -234,7 +246,7 @@ stop() {
 
 build() {
     if ! test -f "$ARVBOX_DOCKER/Dockerfile.base" ;  then
-        echo "Could not find Dockerfile ($ARVBOX_DOCKER/Dockerfile.base)"
+        echo "Could not find Dockerfile (expected it at $ARVBOX_DOCKER/Dockerfile.base)"
         exit 1
     fi
     docker build -t arvados/arvbox-base -f "$ARVBOX_DOCKER/Dockerfile.base" "$ARVBOX_DOCKER"
@@ -273,7 +285,11 @@ case "$subcmd" in
         ;;
 
     sh*)
-        docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM GEM_HOME=/var/lib/gems /bin/bash
+        exec docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM GEM_HOME=/var/lib/gems /bin/bash
+        ;;
+
+    pipe)
+        exec docker exec -i $ARVBOX_CONTAINER /usr/bin/env GEM_HOME=/var/lib/gems /bin/bash -
         ;;
 
     stop)
@@ -293,19 +309,24 @@ case "$subcmd" in
         run $@
         ;;
 
-    ip|open)
-        if test "$subcmd" = 'ip' ; then
-            echo $(getip)
-        else
-            xdg-open http://$(getip)
-        fi
+    ip)
+        getip
+        ;;
+
+    host)
+        gethost
+        ;;
+
+    open)
+        exec xdg-open http://$(gethost)
         ;;
 
     status)
         echo "Selected: $ARVBOX_CONTAINER"
         if docker ps -a --filter "status=running" | grep -E "$ARVBOX_CONTAINER$" -q ; then
             echo "Status: running"
-            echo "IP: $(getip)"
+            echo "Container IP: $(getip)"
+            echo "Published host: $(gethost)"
         else
             echo "Status: not running"
         fi
@@ -352,19 +373,31 @@ case "$subcmd" in
 
     log)
         if test -n "$1" ; then
-            docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM less --follow-name +GF "/etc/service/$1/log/main/current"
+            exec docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM less --follow-name +GF "/etc/service/$1/log/main/current"
         else
-            docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM tail $(docker exec -ti $ARVBOX_CONTAINER find -L /etc -path '/etc/service/*/log/main/current' -printf " %p")
+            exec docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM tail $(docker exec -ti $ARVBOX_CONTAINER find -L /etc -path '/etc/service/*/log/main/current' -printf " %p")
         fi
         ;;
 
-    sv)
+    cat)
         if test -n "$1" ; then
-            docker exec -ti $ARVBOX_CONTAINER sv "$1" "$2"
+            exec docker exec -ti $ARVBOX_CONTAINER cat "$@"
+        else
+            echo "Usage: $0 $subcmd <files>"
+        fi
+        ;;
+
+    ls)
+        exec docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM ls "$@"
+        ;;
+
+    sv)
+        if test -n "$1" -a -n "$2" ; then
+            exec docker exec -ti $ARVBOX_CONTAINER sv "$@"
         else
-            echo "Usage: $0 $subcmd <service>"
+            echo "Usage: $0 $subcmd <start|stop|restart> <service>"
             echo "Available services:"
-            docker exec -ti $ARVBOX_CONTAINER ls /etc/service
+            exec docker exec -ti $ARVBOX_CONTAINER ls /etc/service
         fi
         ;;
 
@@ -380,7 +413,7 @@ case "$subcmd" in
         ;;
 
     *)
-        echo "Arvados-in-a-box"
+        echo "Arvados-in-a-box                      http://arvados.org"
         echo
         echo "$(basename $0) (build|start|run|open|shell|ip|stop|reboot|reset|destroy|log|svrestart)"
         echo
@@ -388,15 +421,19 @@ case "$subcmd" in
         echo "start|run <config>  start $ARVBOX_CONTAINER container"
         echo "open       open arvbox workbench in a web browser"
         echo "shell      enter arvbox shell"
-        echo "ip         print arvbox ip address"
+        echo "ip         print arvbox docker container ip address"
+        echo "host       print arvbox published host"
         echo "status     print some information about current arvbox"
         echo "stop       stop arvbox container"
         echo "restart <config>  stop, then run again"
         echo "reboot  <config>  stop, build arvbox Docker image, run"
         echo "reset      delete arvbox arvados data (be careful!)"
         echo "destroy    delete all arvbox code and data (be careful!)"
-        echo "log       <service> tail log of specified service"
-        echo "sv        <start|stop|restart> <service> change state of service inside arvbox"
+        echo "log <service> tail log of specified service"
+        echo "ls <options>  list directories inside arvbox"
+        echo "cat <files>   get contents of files inside arvbox"
+        echo "pipe       run a bash script piped in from stdin"
+        echo "sv <start|stop|restart> <service> change state of service inside arvbox"
         echo "clone <from> <to>   clone an arvbox"
         ;;
 esac

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list