Merge branch '17152-collection-versions-fixes'
[arvados.git] / tools / arvbox / bin / arvbox
index e8e3fa17ceadf1813a55730e31d36bcd2d009f45..96f3666cda9ee498970ebf0c5ce29badd0fc18d8 100755 (executable)
@@ -205,6 +205,7 @@ run() {
               --publish=8900:8900
               --publish=9000:9000
               --publish=9002:9002
+              --publish=9004:9004
               --publish=25101:25101
               --publish=8001:8001
               --publish=8002:8002
@@ -374,27 +375,25 @@ build() {
         FORCE=-f
     fi
     GITHEAD=$(cd $ARVBOX_DOCKER && git log --format=%H -n1 HEAD)
+
+    set +e
+    if which greadlink >/dev/null 2>/dev/null ; then
+        LOCAL_ARVADOS_ROOT=$(greadlink -f $(dirname $0)/../../../)
+    else
+        LOCAL_ARVADOS_ROOT=$(readlink -f $(dirname $0)/../../../)
+    fi
+    set -e
+
     if test "$1" = localdemo -o "$1" = publicdemo ; then
-        set +e
-        if which greadlink >/dev/null 2>/dev/null ; then
-          ARVADOS_ROOT=$(greadlink -f $(dirname $0)/../../../)
-        else
-          ARVADOS_ROOT=$(readlink -f $(dirname $0)/../../../)
-        fi
-        set -e
-        docker build --build-arg=BUILDTYPE=demo $NO_CACHE --build-arg=arvados_version=$GITHEAD --build-arg=workdir=/tools/arvbox/lib/arvbox/docker -t arvados/arvbox-base:$GITHEAD -f "$ARVBOX_DOCKER/Dockerfile.base" "$ARVADOS_ROOT"
-        docker tag $FORCE arvados/arvbox-base:$GITHEAD arvados/arvbox-base:latest
-        docker build $NO_CACHE -t arvados/arvbox-demo:$GITHEAD -f "$ARVBOX_DOCKER/Dockerfile.demo" "$ARVBOX_DOCKER"
-        docker tag $FORCE arvados/arvbox-demo:$GITHEAD arvados/arvbox-demo:latest
+        BUILDTYPE=demo
     else
-        if ! test -d "$ARVADOS_ROOT" ; then
-            git clone https://git.arvados.org/arvados.git "$ARVADOS_ROOT"
-        fi
-        docker build --build-arg=BUILDTYPE=dev $NO_CACHE --build-arg=arvados_version=$GITHEAD --build-arg=workdir=/tools/arvbox/lib/arvbox/docker -t arvados/arvbox-base:$GITHEAD -f "$ARVBOX_DOCKER/Dockerfile.base" "$ARVADOS_ROOT"
-        docker tag $FORCE arvados/arvbox-base:$GITHEAD arvados/arvbox-base:latest
-        docker build $NO_CACHE -t arvados/arvbox-dev:$GITHEAD -f "$ARVBOX_DOCKER/Dockerfile.dev" "$ARVBOX_DOCKER"
-        docker tag $FORCE arvados/arvbox-dev:$GITHEAD arvados/arvbox-dev:latest
+        BUILDTYPE=dev
     fi
+
+    docker build --build-arg=BUILDTYPE=$BUILDTYPE $NO_CACHE --build-arg=arvados_version=$GITHEAD --build-arg=workdir=/tools/arvbox/lib/arvbox/docker -t arvados/arvbox-base:$GITHEAD -f "$ARVBOX_DOCKER/Dockerfile.base" "$LOCAL_ARVADOS_ROOT"
+    docker tag $FORCE arvados/arvbox-base:$GITHEAD arvados/arvbox-base:latest
+    docker build $NO_CACHE -t arvados/arvbox-$BUILDTYPE:$GITHEAD -f "$ARVBOX_DOCKER/Dockerfile.$BUILDTYPE" "$ARVBOX_DOCKER"
+    docker tag $FORCE arvados/arvbox-$BUILDTYPE:$GITHEAD arvados/arvbox-$BUILDTYPE:latest
 }
 
 check() {
@@ -624,12 +623,9 @@ sv stop keepproxy
 cd /usr/src/arvados/services/api
 export DISABLE_DATABASE_ENVIRONMENT_CHECK=1
 export RAILS_ENV=development
-bundle exec rake db:drop
+flock $GEM_HOME/gems.lock bundle exec rake db:drop
 rm $ARVADOS_CONTAINER_PATH/api_database_setup
 rm $ARVADOS_CONTAINER_PATH/superuser_token
-rm $ARVADOS_CONTAINER_PATH/keep0-uuid
-rm $ARVADOS_CONTAINER_PATH/keep1-uuid
-rm $ARVADOS_CONTAINER_PATH/keepproxy-uuid
 sv start api
 sv start controller
 sv start websockets
@@ -640,13 +636,21 @@ EOF
         ;;
 
     adduser)
-        docker exec -ti $ARVBOX_CONTAINER /usr/local/lib/arvbox/edit_users.py $ARVADOS_CONTAINER_PATH/cluster_config.yml.override $(getclusterid) add $@
-        docker exec $ARVBOX_CONTAINER sv restart controller
+if [[ -n "$2" ]] ; then
+          docker exec -ti $ARVBOX_CONTAINER /usr/local/lib/arvbox/edit_users.py $ARVADOS_CONTAINER_PATH/cluster_config.yml.override $(getclusterid) add $@
+          docker exec $ARVBOX_CONTAINER sv restart controller
+       else
+           echo "Usage: adduser <username> <email> [password]"
+       fi
         ;;
 
     removeuser)
-        docker exec -ti $ARVBOX_CONTAINER /usr/local/lib/arvbox/edit_users.py $ARVADOS_CONTAINER_PATH/cluster_config.yml.override $(getclusterid) remove $@
-        docker exec $ARVBOX_CONTAINER sv restart controller
+       if [[ -n "$1" ]] ; then
+          docker exec -ti $ARVBOX_CONTAINER /usr/local/lib/arvbox/edit_users.py $ARVADOS_CONTAINER_PATH/cluster_config.yml.override $(getclusterid) remove $@
+          docker exec $ARVBOX_CONTAINER sv restart controller
+       else
+           echo "Usage: removeuser <username>"
+       fi
         ;;
 
     listusers)
@@ -683,7 +687,7 @@ EOF
         echo "sv <start|stop|restart> <service> "
         echo "                   change state of service inside arvbox"
         echo "clone <from> <to>  clone dev arvbox"
-        echo "adduser <username> <email>"
+        echo "adduser <username> <email> [password]"
         echo "                   add a user login"
         echo "removeuser <username>"
         echo "                   remove user login"