Merge branch '15888-remove-py2-from-test' into master
authorNico Cesar <nico@nicocesar.com>
Wed, 9 Sep 2020 13:22:20 +0000 (09:22 -0400)
committerNico Cesar <nico@nicocesar.com>
Wed, 9 Sep 2020 13:22:20 +0000 (09:22 -0400)
closes #15888

Arvados-DCO-1.1-Signed-off-by: Nico Cesar <nico@curii.com>

30 files changed:
build/run-tests.sh
doc/_includes/_admin_list_collections_without_property_py.liquid
doc/_includes/_admin_set_property_to_collections_under_project_py.liquid
doc/_includes/_admin_update_collection_property_py.liquid
doc/sdk/python/events.html.textile.liquid
sdk/cli/test/test_arv-keep-get.rb
sdk/cwl/arvados_cwl/__init__.py
sdk/cwl/bin/arvados-cwl-runner
sdk/cwl/bin/cwl-runner
sdk/cwl/setup.py
sdk/python/arvados/commands/get.py
sdk/python/bin/arv-copy
sdk/python/bin/arv-federation-migrate
sdk/python/bin/arv-get
sdk/python/bin/arv-keepdocker
sdk/python/bin/arv-ls
sdk/python/bin/arv-migrate-docker19
sdk/python/bin/arv-normalize
sdk/python/bin/arv-put
sdk/python/bin/arv-ws
sdk/python/setup.py
sdk/python/tests/run_test_server.py
services/dockercleaner/bin/arvados-docker-cleaner
services/fuse/bin/arv-mount
services/fuse/setup.py
tools/arvbox/lib/arvbox/docker/yml_override.py
tools/crunchstat-summary/bin/crunchstat-summary
tools/crunchstat-summary/setup.py
tools/keep-xref/keep-xref.py
tools/vocabulary-migrate/vocabulary-migrate.py

index 4d7658933614020311382d231cea2666bbaa51d6..6359fff1defea96c2f2cdbc6094e88f0ef6c0998 100755 (executable)
@@ -203,9 +203,6 @@ sanity_checks() {
     echo "locale: ${LANG}"
     [[ "$(locale charmap)" = "UTF-8" ]] \
         || fatal "Locale '${LANG}' is broken/missing. Try: echo ${LANG} | sudo tee -a /etc/locale.gen && sudo locale-gen"
-    echo -n 'virtualenv: '
-    virtualenv --version \
-        || fatal "No virtualenv. Try: apt-get install virtualenv (on ubuntu: python-virtualenv)"
     echo -n 'ruby: '
     ruby -v \
         || fatal "No ruby. Install >=2.1.9 (using rbenv, rvm, or source)"
@@ -223,9 +220,9 @@ sanity_checks() {
     echo -n 'gnutls.h: '
     find /usr/include -path '*gnutls/gnutls.h' | egrep --max-count=1 . \
         || fatal "No gnutls/gnutls.h. Try: apt-get install libgnutls28-dev"
-    echo -n 'Python2 pyconfig.h: '
-    find /usr/include -path '*/python2*/pyconfig.h' | egrep --max-count=1 . \
-        || fatal "No Python2 pyconfig.h. Try: apt-get install python2.7-dev"
+    echo -n 'virtualenv: '
+    python3 -m venv -h | egrep --max-count=1 . \
+        || fatal "No virtualenv. Try: apt-get install python3-venv"
     echo -n 'Python3 pyconfig.h: '
     find /usr/include -path '*/python3*/pyconfig.h' | egrep --max-count=1 . \
         || fatal "No Python3 pyconfig.h. Try: apt-get install python3-dev"
@@ -392,7 +389,7 @@ checkpidfile() {
 
 checkhealth() {
     svc="$1"
-    base=$("${VENVDIR}/bin/python" -c "import yaml; print list(yaml.safe_load(file('$ARVADOS_CONFIG'))['Clusters']['zzzzz']['Services']['$1']['InternalURLs'].keys())[0]")
+    base=$("${VENV3DIR}/bin/python3" -c "import yaml; print(list(yaml.safe_load(open('$ARVADOS_CONFIG','r'))['Clusters']['zzzzz']['Services']['$1']['InternalURLs'].keys())[0])")
     url="$base/_health/ping"
     if ! curl -Ss -H "Authorization: Bearer e687950a23c3a9bceec28c6223a06c79" "${url}" | tee -a /dev/stderr | grep '"OK"'; then
         echo "${url} failed"
@@ -414,7 +411,7 @@ start_services() {
     if [[ -n "$ARVADOS_TEST_API_HOST" ]]; then
         return 0
     fi
-    . "$VENVDIR/bin/activate"
+    . "$VENV3DIR/bin/activate"
     echo 'Starting API, controller, keepproxy, keep-web, arv-git-httpd, ws, and nginx ssl proxy...'
     if [[ ! -d "$WORKSPACE/services/api/log" ]]; then
         mkdir -p "$WORKSPACE/services/api/log"
@@ -427,26 +424,26 @@ start_services() {
     fail=1
 
     cd "$WORKSPACE" \
-        && eval $(python sdk/python/tests/run_test_server.py start --auth admin) \
+        && eval $(python3 sdk/python/tests/run_test_server.py start --auth admin) \
         && export ARVADOS_TEST_API_HOST="$ARVADOS_API_HOST" \
         && export ARVADOS_TEST_API_INSTALLED="$$" \
         && checkpidfile api \
         && checkdiscoverydoc $ARVADOS_API_HOST \
-        && eval $(python sdk/python/tests/run_test_server.py start_nginx) \
+        && eval $(python3 sdk/python/tests/run_test_server.py start_nginx) \
         && checkpidfile nginx \
-        && python sdk/python/tests/run_test_server.py start_controller \
+        && python3 sdk/python/tests/run_test_server.py start_controller \
         && checkpidfile controller \
         && checkhealth Controller \
         && checkdiscoverydoc $ARVADOS_API_HOST \
-        && python sdk/python/tests/run_test_server.py start_keep_proxy \
+        && python3 sdk/python/tests/run_test_server.py start_keep_proxy \
         && checkpidfile keepproxy \
-        && python sdk/python/tests/run_test_server.py start_keep-web \
+        && python3 sdk/python/tests/run_test_server.py start_keep-web \
         && checkpidfile keep-web \
         && checkhealth WebDAV \
-        && python sdk/python/tests/run_test_server.py start_arv-git-httpd \
+        && python3 sdk/python/tests/run_test_server.py start_arv-git-httpd \
         && checkpidfile arv-git-httpd \
         && checkhealth GitHTTP \
-        && python sdk/python/tests/run_test_server.py start_ws \
+        && python3 sdk/python/tests/run_test_server.py start_ws \
         && checkpidfile ws \
         && export ARVADOS_TEST_PROXY_SERVICES=1 \
         && (env | egrep ^ARVADOS) \
@@ -463,15 +460,15 @@ stop_services() {
         return
     fi
     unset ARVADOS_TEST_API_HOST ARVADOS_TEST_PROXY_SERVICES
-    . "$VENVDIR/bin/activate" || return
+    . "$VENV3DIR/bin/activate" || return
     cd "$WORKSPACE" \
-        && python sdk/python/tests/run_test_server.py stop_nginx \
-        && python sdk/python/tests/run_test_server.py stop_arv-git-httpd \
-        && python sdk/python/tests/run_test_server.py stop_ws \
-        && python sdk/python/tests/run_test_server.py stop_keep-web \
-        && python sdk/python/tests/run_test_server.py stop_keep_proxy \
-        && python sdk/python/tests/run_test_server.py stop_controller \
-        && python sdk/python/tests/run_test_server.py stop \
+        && python3 sdk/python/tests/run_test_server.py stop_nginx \
+        && python3 sdk/python/tests/run_test_server.py stop_arv-git-httpd \
+        && python3 sdk/python/tests/run_test_server.py stop_ws \
+        && python3 sdk/python/tests/run_test_server.py stop_keep-web \
+        && python3 sdk/python/tests/run_test_server.py stop_keep_proxy \
+        && python3 sdk/python/tests/run_test_server.py stop_controller \
+        && python3 sdk/python/tests/run_test_server.py stop \
         && all_services_stopped=1
     deactivate
     unset ARVADOS_CONFIG
@@ -581,17 +578,12 @@ gem_uninstall_if_exists() {
 
 setup_virtualenv() {
     local venvdest="$1"; shift
-    if ! [[ -e "$venvdest/bin/activate" ]] || ! [[ -e "$venvdest/bin/pip" ]]; then
-        virtualenv --setuptools "$@" "$venvdest" || fatal "virtualenv $venvdest failed"
+    if ! [[ -e "$venvdest/bin/activate" ]] || ! [[ -e "$venvdest/bin/pip3" ]]; then
+        python3 -m venv "$@" "$venvdest" || fatal "virtualenv $venvdest failed"
     elif [[ -n "$short" ]]; then
         return
     fi
-    if [[ $("$venvdest/bin/python" --version 2>&1) =~ \ 3\.[012]\. ]]; then
-        # pip 8.0.0 dropped support for python 3.2, e.g., debian wheezy
-        "$venvdest/bin/pip" install --no-cache-dir 'setuptools>=18.5' 'pip>=7,<8'
-    else
-        "$venvdest/bin/pip" install --no-cache-dir 'setuptools>=18.5' 'pip>=7'
-    fi
+    "$venvdest/bin/pip3" install --no-cache-dir 'setuptools>=18.5' 'pip>=7'
 }
 
 initialize() {
@@ -613,7 +605,7 @@ initialize() {
     fi
 
     # Set up temporary install dirs (unless existing dirs were supplied)
-    for tmpdir in VENVDIR VENV3DIR GOPATH GEMHOME PERLINSTALLBASE R_LIBS
+    for tmpdir in VENV3DIR GOPATH GEMHOME PERLINSTALLBASE R_LIBS
     do
         if [[ -z "${!tmpdir}" ]]; then
             eval "$tmpdir"="$temp/$tmpdir"
@@ -654,34 +646,23 @@ install_env() {
     go mod download || fatal "Go deps failed"
     which goimports >/dev/null || go get golang.org/x/tools/cmd/goimports || fatal "Go setup failed"
 
-    setup_virtualenv "$VENVDIR" --python python2.7
-    . "$VENVDIR/bin/activate"
+    setup_virtualenv "$VENV3DIR"
+    . "$VENV3DIR/bin/activate"
 
     # Needed for run_test_server.py which is used by certain (non-Python) tests.
     (
         set -e
-        "${VENVDIR}/bin/pip" install PyYAML
-        "${VENV3DIR}/bin/pip" install PyYAML
+        "${VENV3DIR}/bin/pip3" install wheel
+        "${VENV3DIR}/bin/pip3" install PyYAML
+        "${VENV3DIR}/bin/pip3" install httplib2
+        "${VENV3DIR}/bin/pip3" install future
+        "${VENV3DIR}/bin/pip3" install google-api-python-client
+        "${VENV3DIR}/bin/pip3" install ciso8601
+        "${VENV3DIR}/bin/pip3" install pycurl
+        "${VENV3DIR}/bin/pip3" install ws4py
         cd "$WORKSPACE/sdk/python"
-        python setup.py install
+        python3 setup.py install
     ) || fatal "installing PyYAML and sdk/python failed"
-
-    # Deactivate Python 2 virtualenv
-    deactivate
-
-    # If Python 3 is available, set up its virtualenv in $VENV3DIR.
-    # Otherwise, skip dependent tests.
-    PYTHON3=$(which python3)
-    if [[ ${?} = 0 ]]; then
-        setup_virtualenv "$VENV3DIR" --python python3
-    else
-        PYTHON3=
-        cat >&2 <<EOF
-
-Warning: python3 could not be found. Python 3 tests will be skipped.
-
-EOF
-    fi
 }
 
 retry() {
@@ -755,7 +736,7 @@ do_test_once() {
 
     result=
     if which deactivate >/dev/null; then deactivate; fi
-    if ! . "$VENVDIR/bin/activate"
+    if ! . "$VENV3DIR/bin/activate"
     then
         result=1
     elif [[ "$2" == "go" ]]
@@ -826,12 +807,12 @@ check_arvados_config() {
         # Create config file.  The run_test_server script requires PyYAML,
         # so virtualenv needs to be active.  Downstream steps like
         # workbench install which require a valid config.yml.
-        if [[ ! -s "$VENVDIR/bin/activate" ]] ; then
+        if [[ ! -s "$VENV3DIR/bin/activate" ]] ; then
             install_env
         fi
-        . "$VENVDIR/bin/activate"
+        . "$VENV3DIR/bin/activate"
         cd "$WORKSPACE"
-        eval $(python sdk/python/tests/run_test_server.py setup_config)
+        eval $(python3 sdk/python/tests/run_test_server.py setup_config)
         deactivate
     fi
 }
@@ -850,7 +831,7 @@ do_install_once() {
 
     result=
     if which deactivate >/dev/null; then deactivate; fi
-    if [[ "$1" != "env" ]] && ! . "$VENVDIR/bin/activate"; then
+    if [[ "$1" != "env" ]] && ! . "$VENV3DIR/bin/activate"; then
         result=1
     elif [[ "$2" == "go" ]]
     then
@@ -870,10 +851,10 @@ do_install_once() {
         # install" ensures that we've actually installed the local package
         # we just built.
         cd "$WORKSPACE/$1" \
-            && "${3}python" setup.py sdist rotate --keep=1 --match .tar.gz \
+            && "${3}python3" setup.py sdist rotate --keep=1 --match .tar.gz \
             && cd "$WORKSPACE" \
-            && "${3}pip" install --no-cache-dir "$WORKSPACE/$1/dist"/*.tar.gz \
-            && "${3}pip" install --no-cache-dir --no-deps --ignore-installed "$WORKSPACE/$1/dist"/*.tar.gz
+            && "${3}pip3" install --no-cache-dir "$WORKSPACE/$1/dist"/*.tar.gz \
+            && "${3}pip3" install --no-cache-dir --no-deps --ignore-installed "$WORKSPACE/$1/dist"/*.tar.gz
     elif [[ "$2" != "" ]]
     then
         "install_$2"
@@ -953,7 +934,7 @@ install_services/api() {
     # database, so that we can drop it. This assumes the current user
     # is a postgresql superuser.
     cd "$WORKSPACE/services/api" \
-        && test_database=$("${VENVDIR}/bin/python" -c "import yaml; print yaml.safe_load(file('$ARVADOS_CONFIG'))['Clusters']['zzzzz']['PostgreSQL']['Connection']['dbname']") \
+        && test_database=$("${VENV3DIR}/bin/python3" -c "import yaml; print(yaml.safe_load(open('$ARVADOS_CONFIG','r'))['Clusters']['zzzzz']['PostgreSQL']['Connection']['dbname'])") \
         && psql "$test_database" -c "SELECT pg_terminate_backend (pg_stat_activity.pid::int) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$test_database';" 2>/dev/null
 
     mkdir -p "$WORKSPACE/services/api/tmp/pids"
@@ -962,7 +943,7 @@ install_services/api() {
     if [[ ! -e "$cert.pem" || "$(date -r "$cert.pem" +%s)" -lt 1512659226 ]]; then
         (
             dir="$WORKSPACE/services/api/tmp"
-            set -ex
+            set -e
             openssl req -newkey rsa:2048 -nodes -subj '/C=US/ST=State/L=City/CN=localhost' -out "$cert.csr" -keyout "$cert.key" </dev/null
             openssl x509 -req -in "$cert.csr" -signkey "$cert.key" -out "$cert.pem" -days 3650 -extfile <(printf 'subjectAltName=DNS:localhost,DNS:::1,DNS:0.0.0.0,DNS:127.0.0.1,IP:::1,IP:0.0.0.0,IP:127.0.0.1')
         ) || return 1
@@ -978,7 +959,7 @@ install_services/api() {
             || return 1
 
     (
-        set -e
+        set -ex
         cd "$WORKSPACE/services/api"
         export RAILS_ENV=test
         if "$bundle" exec rails db:environment:set ; then
@@ -991,13 +972,10 @@ install_services/api() {
 
 declare -a pythonstuff
 pythonstuff=(
-    sdk/python
     sdk/python:py3
     sdk/cwl:py3
     services/dockercleaner:py3
-    services/fuse
     services/fuse:py3
-    tools/crunchstat-summary
     tools/crunchstat-summary:py3
 )
 
@@ -1097,7 +1075,6 @@ install_deps() {
     do_install cmd/arvados-server go
     do_install sdk/cli
     do_install sdk/perl
-    do_install sdk/python pip
     do_install sdk/python pip "${VENV3DIR}/bin/"
     do_install sdk/ruby
     do_install services/api
@@ -1118,16 +1095,10 @@ install_all() {
     do_install services/login-sync
     for p in "${pythonstuff[@]}"
     do
-        dir=${p%:py3}
-        if [[ ${dir} = ${p} ]]; then
-            if [[ -z ${skip[python2]} ]]; then
-                do_install ${dir} pip
-            fi
-        elif [[ -n ${PYTHON3} ]]; then
-            if [[ -z ${skip[python3]} ]]; then
-                do_install ${dir} pip "$VENV3DIR/bin/"
-            fi
-        fi
+       dir=${p%:py3}
+       if [[ -z ${skip[python3]} ]]; then
+           do_install ${dir} pip "$VENV3DIR/bin/"
+       fi
     done
     for g in "${gostuff[@]}"
     do
@@ -1158,14 +1129,8 @@ test_all() {
     for p in "${pythonstuff[@]}"
     do
         dir=${p%:py3}
-        if [[ ${dir} = ${p} ]]; then
-            if [[ -z ${skip[python2]} ]]; then
-                do_test ${dir} pip
-            fi
-        elif [[ -n ${PYTHON3} ]]; then
-            if [[ -z ${skip[python3]} ]]; then
-                do_test ${dir} pip "$VENV3DIR/bin/"
-            fi
+        if [[ -z ${skip[python3]} ]]; then
+            do_test ${dir} pip "$VENV3DIR/bin/"
         fi
     done
 
@@ -1204,7 +1169,6 @@ for g in "${gostuff[@]}"; do
 done
 for p in "${pythonstuff[@]}"; do
     dir=${p%:py3}
-    testfuncargs[$dir]="$dir pip $VENVDIR/bin/"
     testfuncargs[$dir:py3]="$dir pip $VENV3DIR/bin/"
 done
 
@@ -1224,13 +1188,13 @@ else
     skip=()
     only=()
     only_install=()
-    if [[ -e "$VENVDIR/bin/activate" ]]; then stop_services; fi
+    if [[ -e "$VENV3DIR/bin/activate" ]]; then stop_services; fi
     setnextcmd() {
         if [[ "$TERM" = dumb ]]; then
             # assume emacs, or something, is offering a history buffer
             # and pre-populating the command will only cause trouble
             nextcmd=
-        elif [[ ! -e "$VENVDIR/bin/activate" ]]; then
+        elif [[ ! -e "$VENV3DIR/bin/activate" ]]; then
             nextcmd="install deps"
         else
             nextcmd=""
index 7e0cb0d518e1e7ad6506500fb577f3d146c24fc1..6b4b2111e6eb123bcc4eb29bfc9993c7c36773fc 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 {% comment %}
 Copyright (C) The Arvados Authors. All rights reserved.
 
index 073db7ac690dff82c1438da3a8ceb3b9089a66d6..95718cc1f0022bce0bc4c4c77b539d95ad625fe6 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 {% comment %}
 Copyright (C) The Arvados Authors. All rights reserved.
 
index d84e34699bf3f3f3ceaaca8667e31c8952cee6cb..54d5d0b91deffb56f88b7c329f0b83e719e64500 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 {% comment %}
 Copyright (C) The Arvados Authors. All rights reserved.
 
index 302af20c83ebc79d60ebcce2f69d20c5a9b26723..78fe9272bf8c9816b1e035290ca45486bed2547c 100644 (file)
@@ -13,7 +13,7 @@ SPDX-License-Identifier: CC-BY-SA-3.0
 Arvados applications can subscribe to a live event stream from the database.  Events are described in the "Log resource.":{{site.baseurl}}/api/methods/logs.html
 
 {% codeblock as python %}
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import arvados
 import arvados.events
index f92e51b298c65c4dbebd04bf8b36903c18a25861..41e997b2bba7cac01c783504d49b246cfdfbe6fc 100644 (file)
@@ -28,8 +28,10 @@ class TestArvKeepGet < Minitest::Test
     out, err = capture_subprocess_io do
       assert_arv_get '--version'
     end
-    assert_empty(out, "STDOUT not expected: '#{out}'")
-    assert_match(/[0-9]+\.[0-9]+\.[0-9]+/, err, "Version information incorrect: '#{err}'")
+    # python3 handles action='version' differently than python2
+    # https://dev.arvados.org/issues/15888#note-23
+    assert_empty(err, "STDERR not expected: '#{err}'")
+    assert_match(/[0-9]+\.[0-9]+\.[0-9]+/, out, "Version information incorrect: '#{out}'")
   end
 
   def test_help
index f3629b68972650e90f06e772404b8c5b29a46f94..dcbe03a057b8cbd7d44643f3064563290e559b07 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index 55ce31e666cc6c096b0b75a7589492df335f54ca..8ea3f3d3e298779ae3fb3b8ff48af74cfdae54d1 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index 55ce31e666cc6c096b0b75a7589492df335f54ca..8ea3f3d3e298779ae3fb3b8ff48af74cfdae54d1 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index c8ab71e50b3dd5bc3cfd2e6f08fa03cdb46f3100..334c636dd422e091a2fb760be0b098117b21f0c4 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index 1e527149168daa8d1a892abf0638517936891d79..eb682976253b66a3c0c6c0ebd0a9dc5ca306d499 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index ad020d706881604ddc662106cdf2330853c01ebc..289c7db84371bbb8eb08521ad583c0001520e694 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index a4c097473b0eeb09c28efd276d428b72a3e86689..8a47966321c4dfefabe68eec90ac00097aad4f87 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index 3216374bf9c26f338d7b229b18a90b8d0bd06610..a36914192f55c5fb1f1bfe3bd953b6bf767339bd 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index c90bb03ce3e0bb0e31b34239a338285df32c4e7f..5c16016af2c1a9509aff4a9fe207bf0594a4d8fb 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index b612fda9d5f651d593d5230c18452e30fc6de924..77031487431747cf4c206bfface0912a55c1e2d9 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index 6995c01c1480fcfff912f23936489e8798c44aa7..6aee15254a84e4631033ffe2fbb4e34518f78168 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index eab21f117975ca8a0eeda4ac05325f41fa779656..effcd7edae0b0c1533717535a9b5b686e50e3ff6 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index eaeecfb2f1492a76dcd4d6c438bb3e4e65bf68e2..e41437a863f8fac7827114091be47f1809939318 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index 4e84918068cb35207f3164031bb236eeea00f9f8..2b601296b483fcdda544e7f049d490659d4b0099 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index 3fff82c42d67f3045fe02d87fc44914709800e54..430350b885971b945b56d625363e8f26e5f06e1f 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
index fe32547fcbda14eaa712924a0eb68623310dff96..f4c1230cc8cf9ef30004cec3954ea52b9bc31e12 100644 (file)
@@ -660,7 +660,7 @@ def setup_config():
     health_httpd_external_port = find_available_port()
     keepproxy_port = find_available_port()
     keepproxy_external_port = find_available_port()
-    keepstore_ports = sorted([str(find_available_port()) for _ in xrange(0,4)])
+    keepstore_ports = sorted([str(find_available_port()) for _ in range(0,4)])
     keep_web_port = find_available_port()
     keep_web_external_port = find_available_port()
     keep_web_dl_port = find_available_port()
index c00593fbf1476311ade79c983efedf34e00afccd..b9dcd79500256701a4232d1705a8555f18163594 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: AGPL-3.0
index 2663e3def7575e87d492c53f24f9c402ac4d670c..019e9644a849423d7868f7ecec7d59e697e5d897 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: AGPL-3.0
index 83986706195723680a923428942e6f5cad160079..545b4bfa01c70135585491dcb2c946bd847a4871 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: AGPL-3.0
index b44acf4c3ab1fd9a3b4da433c936c6c079cebf6b..446448f5eb78766d118845ca28d7255b45dc283a 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: AGPL-3.0
index 0ccb898a1515a4f4718d1b2907c5fbd819a84c19..3c18829189072b39c6e4337af55c16c584784a65 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: AGPL-3.0
index 557b6d3f4e688c263706b3b5036c52ccf98d6821..8507990f5a0fc2ffd57e175a748fae30f7d3372e 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: AGPL-3.0
index 7bc41589283fabd2e4e98e7444a2ea5e96a1248b..d77e5936402df5c67f7657affa999182c4b91f90 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
index 920344b3203f2401b980915f01084614f1c5729c..89a4f030e862521251052328f9e3a4539fb62584 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright (C) The Arvados Authors. All rights reserved.
 #