Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- travis_fold:start:worker_info
- [0K[33;1mWorker information[0m
- hostname: f411123f-b0a7-4ae3-9684-39cc6f054b41@1.production-1-worker-org-f-3-gce
- version: v3.3.1 https://github.com/travis-ci/worker/tree/1153e5010ef9863bf96264b75fba506109633460
- instance: travis-job-42812f71-438e-46e3-a8ff-565487838dab travis-ci-garnet-trusty-1512502259-986baf0 (via amqp)
- startup: 21.089747915s
- travis_fold:end:worker_info
- [0Kmode of ‘/usr/local/clang-5.0.0/bin’ changed from 0777 (rwxrwxrwx) to 0775 (rwxrwxr-x)
- travis_fold:start:system_info
- [0K[33;1mBuild system information[0m
- Build language: python
- Build group: stable
- Build dist: trusty
- Build id: 327474715
- Job id: 327474716
- Runtime kernel version: 4.4.0-101-generic
- travis-build version: 536d9e9f5
- [34m[1mBuild image provisioning date and time[0m
- Tue Dec 5 19:58:13 UTC 2017
- [34m[1mOperating System Details[0m
- Distributor ID: Ubuntu
- Description: Ubuntu 14.04.5 LTS
- Release: 14.04
- Codename: trusty
- [34m[1mCookbooks Version[0m
- 7c2c6a6 https://github.com/travis-ci/travis-cookbooks/tree/7c2c6a6
- [34m[1mgit version[0m
- git version 2.15.1
- [34m[1mbash version[0m
- GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
- [34m[1mgcc version[0m
- gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
- Copyright (C) 2013 Free Software Foundation, Inc.
- This is free software; see the source for copying conditions. There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- [34m[1mdocker version[0m
- Client:
- Version: 17.09.0-ce
- API version: 1.32
- Go version: go1.8.3
- Git commit: afdb6d4
- Built: Tue Sep 26 22:42:38 2017
- OS/Arch: linux/amd64
- Server:
- Version: 17.09.0-ce
- API version: 1.32 (minimum version 1.12)
- Go version: go1.8.3
- Git commit: afdb6d4
- Built: Tue Sep 26 22:41:20 2017
- OS/Arch: linux/amd64
- Experimental: false
- [34m[1mclang version[0m
- clang version 5.0.0 (tags/RELEASE_500/final)
- Target: x86_64-unknown-linux-gnu
- Thread model: posix
- InstalledDir: /usr/local/clang-5.0.0/bin
- [34m[1mjq version[0m
- jq-1.5
- [34m[1mbats version[0m
- Bats 0.4.0
- [34m[1mshellcheck version[0m
- 0.4.6
- [34m[1mshfmt version[0m
- v2.0.0
- [34m[1mccache version[0m
- ccache version 3.1.9
- Copyright (C) 2002-2007 Andrew Tridgell
- Copyright (C) 2009-2011 Joel Rosdahl
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3 of the License, or (at your option) any later
- version.
- [34m[1mcmake version[0m
- cmake version 3.9.2
- CMake suite maintained and supported by Kitware (kitware.com/cmake).
- [34m[1mheroku version[0m
- heroku-cli/6.14.39-addc925 (linux-x64) node-v9.2.0
- [34m[1mimagemagick version[0m
- Version: ImageMagick 6.7.7-10 2017-07-31 Q16 http://www.imagemagick.org
- [34m[1mmd5deep version[0m
- 4.2
- [34m[1mmercurial version[0m
- Mercurial Distributed SCM (version 4.2.2)
- (see https://mercurial-scm.org for more information)
- Copyright (C) 2005-2017 Matt Mackall and others
- This is free software; see the source for copying conditions. There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- [34m[1mmysql version[0m
- mysql Ver 14.14 Distrib 5.6.33, for debian-linux-gnu (x86_64) using EditLine wrapper
- [34m[1mopenssl version[0m
- OpenSSL 1.0.1f 6 Jan 2014
- [34m[1mpacker version[0m
- Packer v1.0.2
- Your version of Packer is out of date! The latest version
- is 1.1.2. You can update by downloading from www.packer.io
- [34m[1mpostgresql client version[0m
- psql (PostgreSQL) 9.6.6
- [34m[1mragel version[0m
- Ragel State Machine Compiler version 6.8 Feb 2013
- Copyright (c) 2001-2009 by Adrian Thurston
- [34m[1msubversion version[0m
- svn, version 1.8.8 (r1568071)
- compiled Aug 10 2017, 17:20:39 on x86_64-pc-linux-gnu
- Copyright (C) 2013 The Apache Software Foundation.
- This software consists of contributions made by many people;
- see the NOTICE file for more information.
- Subversion is open source software, see http://subversion.apache.org/
- The following repository access (RA) modules are available:
- * ra_svn : Module for accessing a repository using the svn network protocol.
- - with Cyrus SASL authentication
- - handles 'svn' scheme
- * ra_local : Module for accessing a repository on local disk.
- - handles 'file' scheme
- * ra_serf : Module for accessing a repository via WebDAV protocol using serf.
- - using serf 1.3.3
- - handles 'http' scheme
- - handles 'https' scheme
- [34m[1msudo version[0m
- Sudo version 1.8.9p5
- Configure options: --prefix=/usr -v --with-all-insults --with-pam --with-fqdn --with-logging=syslog --with-logfac=authpriv --with-env-editor --with-editor=/usr/bin/editor --with-timeout=15 --with-password-timeout=0 --with-passprompt=[sudo] password for %p: --without-lecture --with-tty-tickets --disable-root-mailer --enable-admin-flag --with-sendmail=/usr/sbin/sendmail --with-timedir=/var/lib/sudo --mandir=/usr/share/man --libexecdir=/usr/lib/sudo --with-sssd --with-sssd-lib=/usr/lib/x86_64-linux-gnu --with-selinux
- Sudoers policy plugin version 1.8.9p5
- Sudoers file grammar version 43
- Sudoers path: /etc/sudoers
- Authentication methods: 'pam'
- Syslog facility if syslog is being used for logging: authpriv
- Syslog priority to use when user authenticates successfully: notice
- Syslog priority to use when user authenticates unsuccessfully: alert
- Send mail if the user is not in sudoers
- Use a separate timestamp for each user/tty combo
- Lecture user the first time they run sudo
- Root may run sudo
- Allow some information gathering to give useful error messages
- Require fully-qualified hostnames in the sudoers file
- Visudo will honor the EDITOR environment variable
- Set the LOGNAME and USER environment variables
- Length at which to wrap log file lines (0 for no wrap): 80
- Authentication timestamp timeout: 15.0 minutes
- Password prompt timeout: 0.0 minutes
- Number of tries to enter a password: 3
- Umask to use or 0777 to use user's: 022
- Path to mail program: /usr/sbin/sendmail
- Flags for mail program: -t
- Address to send mail to: root
- Subject line for mail messages: *** SECURITY information for %h ***
- Incorrect password message: Sorry, try again.
- Path to authentication timestamp dir: /var/lib/sudo
- Default password prompt: [sudo] password for %p:
- Default user to run commands as: root
- Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
- Path to the editor for use by visudo: /usr/bin/editor
- When to require a password for 'list' pseudocommand: any
- When to require a password for 'verify' pseudocommand: all
- File descriptors >= 3 will be closed before executing a command
- Environment variables to check for sanity:
- TZ
- TERM
- LINGUAS
- LC_*
- LANGUAGE
- LANG
- COLORTERM
- Environment variables to remove:
- RUBYOPT
- RUBYLIB
- PYTHONUSERBASE
- PYTHONINSPECT
- PYTHONPATH
- PYTHONHOME
- TMPPREFIX
- ZDOTDIR
- READNULLCMD
- NULLCMD
- FPATH
- PERL5DB
- PERL5OPT
- PERL5LIB
- PERLLIB
- PERLIO_DEBUG
- JAVA_TOOL_OPTIONS
- SHELLOPTS
- GLOBIGNORE
- PS4
- BASH_ENV
- ENV
- TERMCAP
- TERMPATH
- TERMINFO_DIRS
- TERMINFO
- _RLD*
- LD_*
- PATH_LOCALE
- NLSPATH
- HOSTALIASES
- RES_OPTIONS
- LOCALDOMAIN
- CDPATH
- IFS
- Environment variables to preserve:
- JAVA_HOME
- TRAVIS
- CI
- DEBIAN_FRONTEND
- XAUTHORIZATION
- XAUTHORITY
- PS2
- PS1
- PATH
- LS_COLORS
- KRB5CCNAME
- HOSTNAME
- HOME
- DISPLAY
- COLORS
- Locale to use while parsing sudoers: C
- Directory in which to store input/output logs: /var/log/sudo-io
- File in which to store the input/output log: %{seq}
- Add an entry to the utmp/utmpx file when allocating a pty
- PAM service name to use
- PAM service name to use for login shells
- Create a new PAM session for the command to run in
- Maximum I/O log sequence number: 0
- Local IP address and netmask pairs:
- 10.240.0.28/255.255.255.255
- 172.17.0.1/255.255.0.0
- Sudoers I/O plugin version 1.8.9p5
- [34m[1mgzip version[0m
- gzip 1.6
- Copyright (C) 2007, 2010, 2011 Free Software Foundation, Inc.
- Copyright (C) 1993 Jean-loup Gailly.
- This is free software. You may redistribute copies of it under the terms of
- the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
- There is NO WARRANTY, to the extent permitted by law.
- Written by Jean-loup Gailly.
- [34m[1mzip version[0m
- Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
- This is Zip 3.0 (July 5th 2008), by Info-ZIP.
- Currently maintained by E. Gordon. Please send bug reports to
- the authors using the web page at www.info-zip.org; see README for details.
- Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
- as of above date; see http://www.info-zip.org/ for other sites.
- Compiled with gcc 4.8.2 for Unix (Linux ELF) on Oct 21 2013.
- Zip special compilation options:
- USE_EF_UT_TIME (store Universal Time)
- BZIP2_SUPPORT (bzip2 library version 1.0.6, 6-Sept-2010)
- bzip2 code and library copyright (c) Julian R Seward
- (See the bzip2 license for terms of use)
- SYMLINK_SUPPORT (symbolic links supported)
- LARGE_FILE_SUPPORT (can read and write large files on file system)
- ZIP64_SUPPORT (use Zip64 to store large files in archives)
- UNICODE_SUPPORT (store and read UTF-8 Unicode paths)
- STORE_UNIX_UIDs_GIDs (store UID/GID sizes/values using new extra field)
- UIDGID_NOT_16BIT (old Unix 16-bit UID/GID extra field not used)
- [encryption, version 2.91 of 05 Jan 2007] (modified for Zip 3)
- Encryption notice:
- The encryption code of this program is not copyrighted and is
- put in the public domain. It was originally written in Europe
- and, to the best of our knowledge, can be freely distributed
- in both source and object forms from any country, including
- the USA under License Exception TSU of the U.S. Export
- Administration Regulations (section 740.13(e)) of 6 June 2002.
- Zip environment options:
- ZIP: [none]
- ZIPOPT: [none]
- [34m[1mvim version[0m
- VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:43:18)
- Included patches: 1-52
- Extra patches: 8.0.0056
- Modified by pkg-vim-maintainers@lists.alioth.debian.org
- Compiled by buildd@
- Huge version without GUI. Features included (+) or not (-):
- +acl +farsi +mouse_netterm +syntax
- +arabic +file_in_path +mouse_sgr +tag_binary
- +autocmd +find_in_path -mouse_sysmouse +tag_old_static
- -balloon_eval +float +mouse_urxvt -tag_any_white
- -browse +folding +mouse_xterm -tcl
- ++builtin_terms -footer +multi_byte +terminfo
- +byte_offset +fork() +multi_lang +termresponse
- +cindent +gettext -mzscheme +textobjects
- -clientserver -hangul_input +netbeans_intg +title
- -clipboard +iconv +path_extra -toolbar
- +cmdline_compl +insert_expand -perl +user_commands
- +cmdline_hist +jumplist +persistent_undo +vertsplit
- +cmdline_info +keymap +postscript +virtualedit
- +comments +langmap +printer +visual
- +conceal +libcall +profile +visualextra
- +cryptv +linebreak +python +viminfo
- +cscope +lispindent -python3 +vreplace
- +cursorbind +listcmds +quickfix +wildignore
- +cursorshape +localmap +reltime +wildmenu
- +dialog_con -lua +rightleft +windows
- +diff +menu -ruby +writebackup
- +digraphs +mksession +scrollbind -X11
- -dnd +modify_fname +signs -xfontset
- -ebcdic +mouse +smartindent -xim
- +emacs_tags -mouseshape -sniff -xsmp
- +eval +mouse_dec +startuptime -xterm_clipboard
- +ex_extra +mouse_gpm +statusline -xterm_save
- +extra_search -mouse_jsbterm -sun_workshop -xpm
- system vimrc file: "$VIM/vimrc"
- user vimrc file: "$HOME/.vimrc"
- 2nd user vimrc file: "~/.vim/vimrc"
- user exrc file: "$HOME/.exrc"
- fall-back for $VIM: "/usr/share/vim"
- Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
- Linking: gcc -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim -lm -ltinfo -lnsl -lselinux -lacl -lattr -lgpm -ldl -L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions
- [34m[1miptables version[0m
- iptables v1.4.21
- [34m[1mcurl version[0m
- curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
- [34m[1mwget version[0m
- GNU Wget 1.15 built on linux-gnu.
- [34m[1mrsync version[0m
- rsync version 3.1.0 protocol version 31
- [34m[1mgimme version[0m
- v1.2.0
- [34m[1mnvm version[0m
- 0.33.6
- [34m[1mperlbrew version[0m
- /home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.80
- [34m[1mphpenv version[0m
- rbenv 1.1.1-25-g6aa70b6
- [34m[1mrvm version[0m
- rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
- [34m[1mdefault ruby version[0m
- ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
- [34m[1mCouchDB version[0m
- couchdb 1.6.1
- [34m[1mElasticSearch version[0m
- 5.5.0
- [34m[1mInstalled Firefox version[0m
- firefox 56.0.2
- [34m[1mMongoDB version[0m
- MongoDB 3.4.10
- [34m[1mPhantomJS version[0m
- 2.1.1
- [34m[1mPre-installed PostgreSQL versions[0m
- 9.2.24
- 9.3.20
- 9.4.15
- 9.5.10
- 9.6.6
- [34m[1mRabbitMQ Version[0m
- 3.6.14
- [34m[1mRedis version[0m
- redis-server 4.0.6
- [34m[1mriak version[0m
- 2.2.3
- [34m[1mPre-installed Go versions[0m
- 1.7.4
- [34m[1mant version[0m
- Apache Ant(TM) version 1.9.3 compiled on April 8 2014
- [34m[1mmvn version[0m
- Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)
- Maven home: /usr/local/maven-3.5.2
- Java version: 1.8.0_151, vendor: Oracle Corporation
- Java home: /usr/lib/jvm/java-8-oracle/jre
- Default locale: en_US, platform encoding: UTF-8
- OS name: "linux", version: "4.4.0-98-generic", arch: "amd64", family: "unix"
- [34m[1mgradle version[0m
- ------------------------------------------------------------
- Gradle 4.0.1
- ------------------------------------------------------------
- Build time: 2017-07-07 14:02:41 UTC
- Revision: 38e5dc0f772daecca1d2681885d3d85414eb6826
- Groovy: 2.4.11
- Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
- JVM: 1.8.0_151 (Oracle Corporation 25.151-b12)
- OS: Linux 4.4.0-98-generic amd64
- [34m[1mlein version[0m
- Leiningen 2.8.1 on Java 1.8.0_151 Java HotSpot(TM) 64-Bit Server VM
- [34m[1mPre-installed Node.js versions[0m
- v4.8.6
- v6.12.0
- v6.12.1
- v8.9
- v8.9.1
- [34m[1mphpenv versions[0m
- system
- 5.6
- * 5.6.32 (set by /home/travis/.phpenv/version)
- 7.0
- 7.0.25
- 7.1
- 7.1.11
- hhvm
- hhvm-stable
- [34m[1mcomposer --version[0m
- Composer version 1.5.2 2017-09-11 16:59:25
- [34m[1mPre-installed Ruby versions[0m
- ruby-2.2.7
- ruby-2.3.4
- ruby-2.4.1
- travis_fold:end:system_info
- [0K
- removed ‘/etc/apt/sources.list.d/basho_riak.list’
- Executing: /tmp/tmp.YoFXAjLWPF/gpg.1.sh --keyserver
- hkp://keyserver.ubuntu.com:80
- --recv
- EA312927
- gpg: requesting key EA312927 from hkp server keyserver.ubuntu.com
- gpg: key EA312927: public key "MongoDB 3.2 Release Signing Key <packaging@mongodb.com>" imported
- gpg: Total number processed: 1
- gpg: imported: 1 (RSA: 1)
- W: GPG error: http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 Release: The following signatures were invalid: KEYEXPIRED 1515625755
- W: The repository 'http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 Release' is not signed.
- W: http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg: Signature by key 15866BAFD9BCC4F3C1E0DFC7D69548E1C17EAB57 uses weak digest algorithm (SHA1)
- 127.0.0.1 localhost nettuno travis vagrant
- 127.0.1.1 travis-job-42812f71-438e-46e3-a8ff-565487838dab travis-job-42812f71-438e-46e3-a8ff-565487838dab ip4-loopback trusty64
- travis_fold:start:git.checkout
- [0Ktravis_time:start:134cca90
- [0K$ git clone --depth=50 --branch=master https://github.com/jupyterhub/binderhub.git jupyterhub/binderhub
- Cloning into 'jupyterhub/binderhub'...
- travis_time:end:134cca90:start=1515628911609095728,finish=1515628912547391517,duration=938295789
- [0K$ cd jupyterhub/binderhub
- $ git checkout -qf 4689ce6c4bcfb2fa35b7e85b7ffbf9ae325cb95e
- travis_fold:end:git.checkout
- [0Ktravis_fold:start:services
- [0Ktravis_time:start:207035e4
- [0K$ sudo service docker start
- start: Job is already running: docker
- travis_time:end:207035e4:start=1515628912576846721,finish=1515628912597428225,duration=20581504
- [0Ktravis_fold:end:services
- [0K
- [33;1mSetting environment variables from repository settings[0m
- $ export encrypted_d8355cc3d845_key=[secure]
- $ export encrypted_d8355cc3d845_iv=[secure]
- $ export encrypted_e0a1711769d1_key=[secure]
- $ export encrypted_e0a1711769d1_iv=[secure]
- [33;1mSetting environment variables from .travis.yml[0m
- $ export MINIKUBE_VERSION=0.24.1
- $ export KUBE_VERSION=1.8.0
- $ export CHANGE_MINIKUBE_NONE_USER=true
- $ export DOCKER_PASSWORD=[secure]
- $ export DOCKER_USERNAME=[secure]
- $ export TEST=main
- travis_time:start:109557a0
- [0K$ source ~/virtualenv/python3.6/bin/activate
- travis_time:end:109557a0:start=1515628915614659567,finish=1515628915629416282,duration=14756715
- [0K$ python --version
- Python 3.6.3
- $ pip --version
- pip 9.0.1 from /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (python 3.6)
- travis_fold:start:before_install
- [0Ktravis_time:start:000c6189
- [0K$ nvm install 8; nvm use 8
- Downloading and installing node v8.9.4...
- Downloading https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz...
- Computing checksum with sha256sum
- Checksums matched!
- Now using node v8.9.4 (npm v5.6.0)
- Now using node v8.9.4 (npm v5.6.0)
- travis_time:end:000c6189:start=1515628916566931211,finish=1515628920342986466,duration=3776055255
- [0Ktravis_fold:end:before_install
- [0Ktravis_fold:start:install.1
- [0Ktravis_time:start:0e66e560
- [0K$ mkdir -p bin
- travis_time:end:0e66e560:start=1515628920352123464,finish=1515628920358034553,duration=5911089
- [0Ktravis_fold:end:install.1
- [0Ktravis_fold:start:install.2
- [0Ktravis_time:start:1416300f
- [0K$ export PATH=$PWD/bin:$PATH
- travis_time:end:1416300f:start=1515628920365445702,finish=1515628920370556403,duration=5110701
- [0Ktravis_fold:end:install.2
- [0Ktravis_fold:start:install.3
- [0Ktravis_time:start:003e610c
- [0K$ ./ci/install.sh
- +which nsenter
- +curl -L https://github.com/minrk/git-crypt-bin/releases/download/trusty/nsenter
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
- 100 598 0 598 0 0 3258 0 --:--:-- --:--:-- --:--:-- 3267
- 19 90162 19 17576 0 0 51878 0 0:00:01 --:--:-- 0:00:01 51878
- 100 90162 100 90162 0 0 197k 0 --:--:-- --:--:-- --:--:-- 662k
- +echo '5652bda3fbea6078896705130286b491b6b1885d7b13bda1dfc9bdfb08b49a2e nsenter'
- +shasum -a 256 -c -
- nsenter: OK
- +chmod +x nsenter
- +sudo mv nsenter /usr/local/bin/
- +echo 'installing kubectl'
- installing kubectl
- +curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubectl
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
- 100 49.8M 100 49.8M 0 0 112M 0 --:--:-- --:--:-- --:--:-- 112M
- +chmod +x kubectl
- +mv kubectl bin/
- +echo 'installing minikube'
- installing minikube
- +curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.24.1/minikube-linux-amd64
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
- 100 39.4M 100 39.4M 0 0 109M 0 --:--:-- --:--:-- --:--:-- 109M
- +chmod +x minikube
- +mv minikube bin/
- +echo 'starting minikube'
- starting minikube
- +sudo /home/travis/build/jupyterhub/binderhub/bin/minikube start --vm-driver=none --kubernetes-version=v1.8.0
- ========================================
- kubectl could not be found on your path. kubectl is a requirement for using minikube
- To install kubectl, please run the following:
- curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
- To disable this message, run the following:
- minikube config set WantKubectlDownloadMsg false
- ========================================
- Starting local Kubernetes v1.8.0 cluster...
- Starting VM...
- Getting VM IP address...
- Moving files into cluster...
- Downloading localkube binary
- 0 B / 148.25 MB [-----------------------------------------------------] 0.00%
- 10.51 MB / 148.25 MB [===>-----------------------------------------] 7.09% 3s
- 22.51 MB / 148.25 MB [======>--------------------------------------] 15.19% 3s
- 35.43 MB / 148.25 MB [==========>----------------------------------] 23.90% 2s
- 48.83 MB / 148.25 MB [==============>------------------------------] 32.94% 1s
- 69.96 MB / 148.25 MB [=====================>-----------------------] 47.19% 1s
- 97.15 MB / 148.25 MB [=============================>---------------] 65.53% 0s
- 126.41 MB / 148.25 MB [=====================================>------] 85.27% 0s
- 148.25 MB / 148.25 MB [============================================] 100.00% 0s
- 0 B / 65 B [----------------------------------------------------------] 0.00%
- 65 B / 65 B [======================================================] 100.00% 0sSetting up certs...
- Connecting to cluster...
- Setting up kubeconfig...
- Starting cluster components...
- Kubectl is now configured to use the cluster.
- ===================
- WARNING: IT IS RECOMMENDED NOT TO RUN THE NONE DRIVER ON PERSONAL WORKSTATIONS
- The 'none' driver will run an insecure kubernetes apiserver as root that may leave the host vulnerable to CSRF attacks
- Loading cached images from config file.
- +minikube update-context
- Kubeconfig IP correctly configured, pointing at 127.0.0.1
- +echo 'waiting for kubernetes'
- waiting for kubernetes
- +JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
- +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
- +grep -q Ready=True
- +sleep 1
- +grep -q Ready=True
- +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
- +sleep 1
- +grep -q Ready=True
- +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
- +sleep 1
- +grep -q Ready=True
- +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
- +sleep 1
- +grep -q Ready=True
- +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
- +sleep 1
- +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
- +grep -q Ready=True
- +sleep 1
- +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
- +grep -q Ready=True
- +sleep 1
- +grep -q Ready=True
- +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
- +sleep 1
- +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
- +grep -q Ready=True
- +echo 'installing helm'
- installing helm
- +curl -ssL https://storage.googleapis.com/kubernetes-helm/helm-v2.7.2-linux-amd64.tar.gz
- +tar -xz -C bin --strip-components 1 linux-amd64/helm
- +chmod +x bin/helm
- +helm init
- Creating /home/travis/.helm
- Creating /home/travis/.helm/repository
- Creating /home/travis/.helm/repository/cache
- Creating /home/travis/.helm/repository/local
- Creating /home/travis/.helm/plugins
- Creating /home/travis/.helm/starters
- Creating /home/travis/.helm/cache/archive
- Creating /home/travis/.helm/repository/repositories.yaml
- Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
- Adding local repo with URL: http://127.0.0.1:8879/charts
- $HELM_HOME has been configured at /home/travis/.helm.
- Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
- Happy Helming!
- +echo 'waiting for tiller'
- waiting for tiller
- +helm version
- Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
- Error: cannot connect to Tiller
- +sleep 1
- +helm version
- Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
- Error: cannot connect to Tiller
- +sleep 1
- +helm version
- Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
- Error: cannot connect to Tiller
- +sleep 1
- +helm version
- Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
- Server: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
- +helm version
- Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
- Server: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
- +echo 'installing git-crypt'
- installing git-crypt
- +curl -L https://github.com/minrk/git-crypt-bin/releases/download/0.5.0/git-crypt
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
- 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
- 100 600 0 600 0 0 3627 0 --:--:-- --:--:-- --:--:-- 3614
- 100 197k 100 197k 0 0 342k 0 --:--:-- --:--:-- --:--:-- 342k
- +echo '46c288cc849c23a28239de3386c6050e5c7d7acd50b1d0248d86e6efff09c61b bin/git-crypt'
- +shasum -a 256 -c -
- bin/git-crypt: OK
- +chmod +x bin/git-crypt
- travis_time:end:003e610c:start=1515628920378300122,finish=1515628960191513908,duration=39813213786
- [0Ktravis_fold:end:install.3
- [0Ktravis_fold:start:install.4
- [0Ktravis_time:start:1167350a
- [0K$ pip install --no-cache-dir . -r dev-requirements.txt
- Processing /home/travis/build/jupyterhub/binderhub
- Collecting beautifulsoup4 (from -r dev-requirements.txt (line 1))
- Downloading beautifulsoup4-4.6.0-py3-none-any.whl (86kB)
- Collecting codecov (from -r dev-requirements.txt (line 2))
- Downloading codecov-2.0.13-py2.py3-none-any.whl
- Collecting html5lib (from -r dev-requirements.txt (line 3))
- Downloading html5lib-1.0.1-py2.py3-none-any.whl (117kB)
- Requirement already satisfied: pytest in /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (from -r dev-requirements.txt (line 4))
- Collecting pytest-cov (from -r dev-requirements.txt (line 5))
- Downloading pytest_cov-2.5.1-py2.py3-none-any.whl
- Collecting pytest-tornado (from -r dev-requirements.txt (line 6))
- Downloading pytest_tornado-0.4.5-py2.py3-none-any.whl
- Collecting requests (from -r dev-requirements.txt (line 7))
- Downloading requests-2.18.4-py2.py3-none-any.whl (88kB)
- Collecting ruamel.yaml>=0.15 (from -r dev-requirements.txt (line 8))
- Downloading ruamel.yaml-0.15.35-cp36-cp36m-manylinux1_x86_64.whl (558kB)
- Collecting kubernetes==3.* (from binderhub==0.1.0.dev0)
- Downloading kubernetes-3.0.0-py2.py3-none-any.whl (815kB)
- Collecting escapism (from binderhub==0.1.0.dev0)
- Downloading escapism-1.0.0-py2.py3-none-any.whl
- Collecting tornado (from binderhub==0.1.0.dev0)
- Downloading tornado-4.5.3.tar.gz (484kB)
- Collecting traitlets (from binderhub==0.1.0.dev0)
- Downloading traitlets-4.3.2-py2.py3-none-any.whl (74kB)
- Collecting docker (from binderhub==0.1.0.dev0)
- Downloading docker-2.7.0-py2.py3-none-any.whl (119kB)
- Collecting jinja2 (from binderhub==0.1.0.dev0)
- Downloading Jinja2-2.10-py2.py3-none-any.whl (126kB)
- Collecting prometheus_client (from binderhub==0.1.0.dev0)
- Downloading prometheus_client-0.1.0.tar.gz
- Collecting coverage (from codecov->-r dev-requirements.txt (line 2))
- Downloading coverage-4.4.2-cp36-cp36m-manylinux1_x86_64.whl (197kB)
- Collecting webencodings (from html5lib->-r dev-requirements.txt (line 3))
- Downloading webencodings-0.5.1-py2.py3-none-any.whl
- Requirement already satisfied: six>=1.9 in /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (from html5lib->-r dev-requirements.txt (line 3))
- Requirement already satisfied: py>=1.5.0 in /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (from pytest->-r dev-requirements.txt (line 4))
- Requirement already satisfied: pluggy<0.7,>=0.5 in /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (from pytest->-r dev-requirements.txt (line 4))
- Requirement already satisfied: attrs>=17.2.0 in /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (from pytest->-r dev-requirements.txt (line 4))
- Requirement already satisfied: setuptools in /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (from pytest->-r dev-requirements.txt (line 4))
- Collecting chardet<3.1.0,>=3.0.2 (from requests->-r dev-requirements.txt (line 7))
- Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)
- Collecting idna<2.7,>=2.5 (from requests->-r dev-requirements.txt (line 7))
- Downloading idna-2.6-py2.py3-none-any.whl (56kB)
- Collecting certifi>=2017.4.17 (from requests->-r dev-requirements.txt (line 7))
- Downloading certifi-2017.11.5-py2.py3-none-any.whl (330kB)
- Collecting urllib3<1.23,>=1.21.1 (from requests->-r dev-requirements.txt (line 7))
- Downloading urllib3-1.22-py2.py3-none-any.whl (132kB)
- Collecting ipaddress>=1.0.17 (from kubernetes==3.*->binderhub==0.1.0.dev0)
- Downloading ipaddress-1.0.19.tar.gz
- Collecting python-dateutil>=2.5.3 (from kubernetes==3.*->binderhub==0.1.0.dev0)
- Downloading python_dateutil-2.6.1-py2.py3-none-any.whl (194kB)
- Collecting pyyaml>=3.12 (from kubernetes==3.*->binderhub==0.1.0.dev0)
- Downloading PyYAML-3.12.tar.gz (253kB)
- Collecting websocket-client<=0.40.0,>=0.32.0 (from kubernetes==3.*->binderhub==0.1.0.dev0)
- Downloading websocket_client-0.40.0.tar.gz (196kB)
- Collecting google-auth>=1.0.1 (from kubernetes==3.*->binderhub==0.1.0.dev0)
- Downloading google_auth-1.3.0-py2.py3-none-any.whl (61kB)
- Collecting ipython-genutils (from traitlets->binderhub==0.1.0.dev0)
- Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl
- Collecting decorator (from traitlets->binderhub==0.1.0.dev0)
- Downloading decorator-4.1.2-py2.py3-none-any.whl
- Collecting docker-pycreds>=0.2.1 (from docker->binderhub==0.1.0.dev0)
- Downloading docker_pycreds-0.2.1-py2.py3-none-any.whl
- Collecting MarkupSafe>=0.23 (from jinja2->binderhub==0.1.0.dev0)
- Downloading MarkupSafe-1.0.tar.gz
- Collecting cachetools>=2.0.0 (from google-auth>=1.0.1->kubernetes==3.*->binderhub==0.1.0.dev0)
- Downloading cachetools-2.0.1-py2.py3-none-any.whl
- Collecting pyasn1-modules>=0.2.1 (from google-auth>=1.0.1->kubernetes==3.*->binderhub==0.1.0.dev0)
- Downloading pyasn1_modules-0.2.1-py2.py3-none-any.whl (60kB)
- Collecting rsa>=3.1.4 (from google-auth>=1.0.1->kubernetes==3.*->binderhub==0.1.0.dev0)
- Downloading rsa-3.4.2-py2.py3-none-any.whl (46kB)
- Collecting pyasn1<0.5.0,>=0.4.1 (from pyasn1-modules>=0.2.1->google-auth>=1.0.1->kubernetes==3.*->binderhub==0.1.0.dev0)
- Downloading pyasn1-0.4.2-py2.py3-none-any.whl (71kB)
- Installing collected packages: beautifulsoup4, coverage, chardet, idna, certifi, urllib3, requests, codecov, webencodings, html5lib, pytest-cov, tornado, pytest-tornado, ruamel.yaml, ipaddress, python-dateutil, pyyaml, websocket-client, cachetools, pyasn1, pyasn1-modules, rsa, google-auth, kubernetes, escapism, ipython-genutils, decorator, traitlets, docker-pycreds, docker, MarkupSafe, jinja2, prometheus-client, binderhub
- Running setup.py install for tornado: started
- Running setup.py install for tornado: finished with status 'done'
- Running setup.py install for ipaddress: started
- Running setup.py install for ipaddress: finished with status 'done'
- Running setup.py install for pyyaml: started
- Running setup.py install for pyyaml: finished with status 'done'
- Running setup.py install for websocket-client: started
- Running setup.py install for websocket-client: finished with status 'done'
- Running setup.py install for MarkupSafe: started
- Running setup.py install for MarkupSafe: finished with status 'done'
- Running setup.py install for prometheus-client: started
- Running setup.py install for prometheus-client: finished with status 'done'
- Running setup.py install for binderhub: started
- Running setup.py install for binderhub: finished with status 'done'
- Successfully installed MarkupSafe-1.0 beautifulsoup4-4.6.0 binderhub-0.1.0.dev0 cachetools-2.0.1 certifi-2017.11.5 chardet-3.0.4 codecov-2.0.13 coverage-4.4.2 decorator-4.1.2 docker-2.7.0 docker-pycreds-0.2.1 escapism-1.0.0 google-auth-1.3.0 html5lib-1.0.1 idna-2.6 ipaddress-1.0.19 ipython-genutils-0.2.0 jinja2-2.10 kubernetes-3.0.0 prometheus-client-0.1.0 pyasn1-0.4.2 pyasn1-modules-0.2.1 pytest-cov-2.5.1 pytest-tornado-0.4.5 python-dateutil-2.6.1 pyyaml-3.12 requests-2.18.4 rsa-3.4.2 ruamel.yaml-0.15.35 tornado-4.5.3 traitlets-4.3.2 urllib3-1.22 webencodings-0.5.1 websocket-client-0.40.0
- travis_time:end:1167350a:start=1515628960196996740,finish=1515629016485053304,duration=56288056564
- [0Ktravis_fold:end:install.4
- [0Ktravis_fold:start:install.5
- [0Ktravis_time:start:1d489a00
- [0K$ npm install
- > uglifyjs-webpack-plugin@0.4.6 postinstall /home/travis/build/jupyterhub/binderhub/node_modules/uglifyjs-webpack-plugin
- > node lib/post_install.js
- npm notice created a lockfile as package-lock.json. You should commit this file.
- npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules/fsevents):
- npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
- added 408 packages in 14.674s
- travis_time:end:1d489a00:start=1515629016491905311,finish=1515629031714862829,duration=15222957518
- [0Ktravis_fold:end:install.5
- [0Ktravis_fold:start:install.6
- [0Ktravis_time:start:0c074304
- [0K$ npm run webpack
- > binderhub@0.1.0 webpack /home/travis/build/jupyterhub/binderhub
- > webpack
- Hash: 2d37264ae20a5a8e177a
- Version: webpack 3.10.0
- Time: 3695ms
- Asset Size Chunks Chunk Names
- cc10b51ebde2156baf4012fbc9b3a0c1.woff 121 kB [emitted]
- f4769f9bdb7466be65088239c12046d1.eot 20.1 kB [emitted]
- fa2772327f55d8198301fdb8bcfc8158.woff 23.4 kB [emitted]
- e18bbf611f2a2e43afc071aa2f4e1512.ttf 45.4 kB [emitted]
- 89889688147bd7575d6327160d64e760.svg 109 kB [emitted]
- a493884b8da5e40a49761e45e26632b7.woff 120 kB [emitted]
- 448c34a56d699c29117adc64c43affeb.woff2 18 kB [emitted]
- 4cf6f681b05ddc6375e51c804a496fe2.woff 117 kB [emitted]
- bundle.js 602 kB 0 [emitted] [big] main
- styles.css 185 kB 0 [emitted] main
- bundle.js.map 748 kB 0 [emitted] main
- styles.css.map 87 bytes 0 [emitted] main
- [18] ./js/index.js 10.7 kB {0} [built]
- [34] /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/addons ^\.\/.*$ 734 bytes {0} [built]
- [62] ./index.css 41 bytes {0} [built]
- [63] ./js/vendor/xterm/addons/fit.js 2.94 kB {0} [built]
- [77] /home/travis/build/jupyterhub/binderhub/node_modules/css-loader!./index.css 5.33 kB [built]
- [78] ./fonts/clearsans/WOFF/ClearSans-Thin.woff 83 bytes [built]
- [79] ./fonts/clearsans/WOFF/ClearSans-Light.woff 83 bytes [built]
- [80] ./fonts/clearsans/WOFF/ClearSans-Bold.woff 83 bytes [built]
- + 73 hidden modules
- WARNING in /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/addons/search/SearchHelper.js.map
- Module parse failed: Unexpected token (1:10)
- You may need an appropriate loader to handle this file type.
- | {"version":3,"sources":["../../../src/addons/search/SearchHelper.ts"],"names":[],"mappings":";;AAgBA;IACE,sBAAoB,SAAc,EAAU,4BAAiC;QAAzD,cAAS,GAAT,SAAS,CAAK;QAAU,iCAA4B,GAA5B,4BAA4B,CAAK;IAK7E,CAAC;IAQM,+BAAQ,GAAf,UAAgB,IAAY;QAC1B,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAqB,CAAC;QAE1B,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3C,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;YAEjD,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YACtF,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACnC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,CAAC;YACR,CAAC;QACH,CAAC;QAGD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACZ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACX,KAAK,CAAC;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAGD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAQM,mCAAY,GAAnB,UAAoB,IAAY;QAC9B,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QAED,IAAI,MAAqB,CAAC;QAE1B,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3C,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;YAEnD,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;QAGD,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACnC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACX,KAAK,CAAC;YACR,CAAC;QACH,CAAC;QAGD,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACZ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtF,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACX,KAAK,CAAC;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAGD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAQO,kCAAW,GAAnB,UAAoB,IAAY,EAAE,CAAS;QACzC,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtD,IAAM,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1F,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,IAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvD,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC;gBACL,IAAI,MAAA;gBACJ,GAAG,EAAE,WAAW;gBAChB,GAAG,EAAE,CAAC;aACP,CAAC;QACJ,CAAC;IACH,CAAC;IAOO,oCAAa,GAArB,UAAsB,MAAqB;QACzC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IACH,mBAAC;AAAD,CA3HA,AA2HC,IAAA;AA3HY,oCAAY","file":"SearchHelper.js","sourceRoot":"."}
- @ /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/addons ^\.\/.*$
- @ /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/xterm.js
- @ ./js/index.js
- WARNING in /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/addons/search/search.js.map
- Module parse failed: Unexpected token (1:10)
- You may need an appropriate loader to handle this file type.
- | {"version":3,"sources":["../../../src/addons/search/search.ts"],"names":[],"mappings":";;AAIA,+CAA8C;AAQ9C,CAAC,UAAU,KAAK;IACd,EAAE,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC;QAIzB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;QAIrE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC;QAIvC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC,CAAC,CAAC,UAAC,QAAa;IAOf,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAY;QACjD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,CAAgB,IAAI,CAAC,YAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC;IAQF,QAAQ,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,IAAY;QACrD,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,2BAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,CAAgB,IAAI,CAAC,YAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","file":"search.js","sourceRoot":"."}
- @ /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/addons ^\.\/.*$
- @ /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/xterm.js
- @ ./js/index.js
- Child extract-text-webpack-plugin ../../node_modules/extract-text-webpack-plugin/dist ../../node_modules/css-loader/index.js!../../node_modules/xterm/lib/addons/fullscreen/fullscreen.css:
- 2 modules
- Child extract-text-webpack-plugin ../../node_modules/extract-text-webpack-plugin/dist ../../node_modules/css-loader/index.js!../../node_modules/xterm/lib/xterm.css:
- 2 modules
- Child extract-text-webpack-plugin ../../node_modules/extract-text-webpack-plugin/dist ../../node_modules/css-loader/index.js!../../node_modules/bootstrap/dist/css/bootstrap-theme.min.css:
- 2 modules
- Child extract-text-webpack-plugin ../../node_modules/extract-text-webpack-plugin/dist ../../node_modules/css-loader/index.js!../../node_modules/bootstrap/dist/css/bootstrap.min.css:
- 5 assets
- 8 modules
- Child extract-text-webpack-plugin ../../node_modules/extract-text-webpack-plugin/dist ../../node_modules/css-loader/index.js!index.css:
- 3 assets
- [0] /home/travis/build/jupyterhub/binderhub/node_modules/css-loader!./index.css 5.33 kB {0} [built]
- [3] ./fonts/clearsans/WOFF/ClearSans-Thin.woff 83 bytes {0} [built]
- [4] ./fonts/clearsans/WOFF/ClearSans-Light.woff 83 bytes {0} [built]
- [5] ./fonts/clearsans/WOFF/ClearSans-Bold.woff 83 bytes {0} [built]
- + 2 hidden modules
- travis_time:end:0c074304:start=1515629031724091227,finish=1515629036351004431,duration=4626913204
- [0Ktravis_fold:end:install.6
- [0Ktravis_time:start:00e2e89c
- [0K$ export BINDER_TEST_NAMESPACE=binder-test-$TEST
- travis_time:end:00e2e89c:start=1515629036361515788,finish=1515629036367800713,duration=6284925
- [0K
- [32;1mThe command "export BINDER_TEST_NAMESPACE=binder-test-$TEST" exited with 0.[0m
- travis_time:start:0a49d8e4
- [0K$ ./ci/test-$TEST
- +./testing/minikube/install-hub
- "jupyterhub" has been added to your repositories
- Hang tight while we grab the latest from your chart repositories...
- ...Skip local chart repository
- ...Successfully got an update from the "jupyterhub" chart repository
- ...Successfully got an update from the "stable" chart repository
- Update Complete. ⎈ Happy Helming!⎈
- NAME: binder-test-hub
- LAST DEPLOYED: Thu Jan 11 00:03:58 2018
- NAMESPACE: binder-test-main
- STATUS: DEPLOYED
- RESOURCES:
- ==> v1/Secret
- NAME TYPE DATA AGE
- hub-secret Opaque 3 1s
- ==> v1/ConfigMap
- NAME DATA AGE
- hub-config 22 1s
- nginx-proxy-config 1 1s
- ==> v1/Service
- NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
- hub ClusterIP 10.111.40.102 <none> 8081/TCP 1s
- proxy-public NodePort 10.104.198.37 <none> 80:30123/TCP,443:31254/TCP 1s
- proxy-api ClusterIP 10.97.169.3 <none> 8001/TCP 1s
- proxy-http ClusterIP 10.102.221.83 <none> 8000/TCP 1s
- ==> v1beta1/Deployment
- NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
- hub 1 1 1 0 1s
- proxy 1 1 1 0 1s
- ==> v1/Pod(related)
- NAME READY STATUS RESTARTS AGE
- hub-595c8bd78c-rrnkj 0/1 ContainerCreating 0 1s
- proxy-78c4df677f-s8xkw 0/2 ContainerCreating 0 1s
- NOTES:
- Thank you for installing JupyterHub!
- Your release is named binder-test-hub and installed into the namespace binder-test-main.
- You can find if the hub and proxy is ready by doing:
- kubectl --namespace=binder-test-main get pod
- and watching for both those pods to be in status 'Ready'.
- You can find the public IP of the JupyterHub by doing:
- kubectl --namespace=binder-test-main get svc proxy-public
- It might take a few minutes for it to appear!
- Note that this is still an alpha release! If you have questions, feel free to
- 1. Come chat with us at https://gitter.im/jupyterhub/jupyterhub
- 2. File issues at https://github.com/jupyterhub/zero-to-jupyterhub-k8s/issues
- helm install --name=binder-test-hub jupyterhub/jupyterhub --version=0.6.0-9701a90 --namespace=binder-test-main -f /home/travis/build/jupyterhub/binderhub/testing/minikube/jupyterhub-helm-config.yaml
- Waiting until Hub is up
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Pending hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Pending proxy-78c4df677f-s8xkw
- Running hub-595c8bd78c-rrnkj
- Running proxy-78c4df677f-s8xkw
- Hub is up
- +sleep 5
- +pytest -vsx --cov binderhub
- ============================= test session starts ==============================
- platform linux -- Python 3.6.3, pytest-3.3.0, py-1.5.2, pluggy-0.6.0 -- /home/travis/virtualenv/python3.6.3/bin/python
- cachedir: .cache
- rootdir: /home/travis/build/jupyterhub/binderhub, inifile:
- plugins: tornado-0.4.5, cov-2.5.1
- collecting ... collected 26 items
- binderhub/tests/test_app.py::test_help PASSED [ 3%]
- binderhub/tests/test_app.py::test_help_all PASSED [ 7%]
- binderhub/tests/test_build.py::test_build[gh/binderhub-ci-repos/requirements/d687a7f9e6946ab01ef2baa7bd6d5b73c6e904fd] JupyterHub not available at http://127.0.0.1:30123: HTTPConnectionPool(host='127.0.0.1', port=30123): Read timed out. (read timeout=5)
- ERROR [ 11%]
- ----------- coverage: platform linux, python 3.6.3-final-0 -----------
- Name Stmts Miss Cover
- ------------------------------------------------
- binderhub/__init__.py 1 0 100%
- binderhub/__main__.py 3 0 100%
- binderhub/_version.py 1 0 100%
- binderhub/app.py 98 44 55%
- binderhub/base.py 37 26 30%
- binderhub/build.py 90 75 17%
- binderhub/builder.py 167 135 19%
- binderhub/launcher.py 65 44 32%
- binderhub/main.py 23 13 43%
- binderhub/metrics.py 6 2 67%
- binderhub/registry.py 26 18 31%
- binderhub/repoproviders.py 215 145 33%
- binderhub/utils.py 27 19 30%
- ------------------------------------------------
- TOTAL 759 521 31%
- ==================================== ERRORS ====================================
- ERROR at setup of test_build[gh/binderhub-ci-repos/requirements/d687a7f9e6946ab01ef2baa7bd6d5b73c6e904fd]
- self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
- conn = <urllib3.connection.HTTPConnection object at 0x7f69212ab828>
- method = 'GET', url = '/'
- timeout = <urllib3.util.timeout.Timeout object at 0x7f69212ab710>
- chunked = False
- httplib_request_kw = {'body': None, 'headers': {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}}
- timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f69212ab6a0>
- read_timeout = 5
- def _make_request(self, conn, method, url, timeout=_Default, chunked=False,
- **httplib_request_kw):
- """
- Perform a request on a given urllib connection object taken from our
- pool.
- :param conn:
- a connection from one of our connection pools
- :param timeout:
- Socket timeout in seconds for the request. This can be a
- float or integer, which will set the same timeout value for
- the socket connect and the socket read, or an instance of
- :class:`urllib3.util.Timeout`, which gives you more fine-grained
- control over your timeouts.
- """
- self.num_requests += 1
- timeout_obj = self._get_timeout(timeout)
- timeout_obj.start_connect()
- conn.timeout = timeout_obj.connect_timeout
- # Trigger any extra validation we need to do.
- try:
- self._validate_conn(conn)
- except (SocketTimeout, BaseSSLError) as e:
- # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
- self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
- raise
- # conn.request() calls httplib.*.request, not the method in
- # urllib3.request. It also calls makefile (recv) on the socket.
- if chunked:
- conn.request_chunked(method, url, **httplib_request_kw)
- else:
- conn.request(method, url, **httplib_request_kw)
- # Reset the timeout for the recv() on the socket
- read_timeout = timeout_obj.read_timeout
- # App Engine doesn't have a sock attr
- if getattr(conn, 'sock', None):
- # In Python 3 socket.py will catch EAGAIN and return None when you
- # try and read into the file pointer created by http.client, which
- # instead raises a BadStatusLine exception. Instead of catching
- # the exception and assuming all BadStatusLine exceptions are read
- # timeouts, check for a zero timeout before making the request.
- if read_timeout == 0:
- raise ReadTimeoutError(
- self, url, "Read timed out. (read timeout=%s)" % read_timeout)
- if read_timeout is Timeout.DEFAULT_TIMEOUT:
- conn.sock.settimeout(socket.getdefaulttimeout())
- else: # None or a value
- conn.sock.settimeout(read_timeout)
- # Receive the response from the server
- try:
- try: # Python 2.7, use buffering of HTTP responses
- httplib_response = conn.getresponse(buffering=True)
- except TypeError: # Python 2.6 and older, Python 3
- try:
- httplib_response = conn.getresponse()
- except Exception as e:
- # Remove the TypeError from the exception chain in Python 3;
- # otherwise it looks like a programming error was the cause.
- > six.raise_from(e, None)
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:387:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- value = timeout('timed out',), from_value = None
- > ???
- <string>:2:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
- conn = <urllib3.connection.HTTPConnection object at 0x7f69212ab828>
- method = 'GET', url = '/'
- timeout = <urllib3.util.timeout.Timeout object at 0x7f69212ab710>
- chunked = False
- httplib_request_kw = {'body': None, 'headers': {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}}
- timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f69212ab6a0>
- read_timeout = 5
- def _make_request(self, conn, method, url, timeout=_Default, chunked=False,
- **httplib_request_kw):
- """
- Perform a request on a given urllib connection object taken from our
- pool.
- :param conn:
- a connection from one of our connection pools
- :param timeout:
- Socket timeout in seconds for the request. This can be a
- float or integer, which will set the same timeout value for
- the socket connect and the socket read, or an instance of
- :class:`urllib3.util.Timeout`, which gives you more fine-grained
- control over your timeouts.
- """
- self.num_requests += 1
- timeout_obj = self._get_timeout(timeout)
- timeout_obj.start_connect()
- conn.timeout = timeout_obj.connect_timeout
- # Trigger any extra validation we need to do.
- try:
- self._validate_conn(conn)
- except (SocketTimeout, BaseSSLError) as e:
- # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
- self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
- raise
- # conn.request() calls httplib.*.request, not the method in
- # urllib3.request. It also calls makefile (recv) on the socket.
- if chunked:
- conn.request_chunked(method, url, **httplib_request_kw)
- else:
- conn.request(method, url, **httplib_request_kw)
- # Reset the timeout for the recv() on the socket
- read_timeout = timeout_obj.read_timeout
- # App Engine doesn't have a sock attr
- if getattr(conn, 'sock', None):
- # In Python 3 socket.py will catch EAGAIN and return None when you
- # try and read into the file pointer created by http.client, which
- # instead raises a BadStatusLine exception. Instead of catching
- # the exception and assuming all BadStatusLine exceptions are read
- # timeouts, check for a zero timeout before making the request.
- if read_timeout == 0:
- raise ReadTimeoutError(
- self, url, "Read timed out. (read timeout=%s)" % read_timeout)
- if read_timeout is Timeout.DEFAULT_TIMEOUT:
- conn.sock.settimeout(socket.getdefaulttimeout())
- else: # None or a value
- conn.sock.settimeout(read_timeout)
- # Receive the response from the server
- try:
- try: # Python 2.7, use buffering of HTTP responses
- httplib_response = conn.getresponse(buffering=True)
- except TypeError: # Python 2.6 and older, Python 3
- try:
- > httplib_response = conn.getresponse()
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:383:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <urllib3.connection.HTTPConnection object at 0x7f69212ab828>
- def getresponse(self):
- """Get the response from the server.
- If the HTTPConnection is in the correct state, returns an
- instance of HTTPResponse or of whatever object is returned by
- the response_class variable.
- If a request has not been sent or if a previous response has
- not be handled, ResponseNotReady is raised. If the HTTP
- response indicates that the connection should be closed, then
- it will be closed before the response is returned. When the
- connection is closed, the underlying socket is closed.
- """
- # if a prior response has been completed, then forget about it.
- if self.__response and self.__response.isclosed():
- self.__response = None
- # if a prior response exists, then it must be completed (otherwise, we
- # cannot read this response's header to determine the connection-close
- # behavior)
- #
- # note: if a prior response existed, but was connection-close, then the
- # socket and response were made independent of this HTTPConnection
- # object since a new request requires that we open a whole new
- # connection
- #
- # this means the prior response had one of two states:
- # 1) will_close: this connection was reset and the prior socket and
- # response operate independently
- # 2) persistent: the response was retained and we await its
- # isclosed() status to become true.
- #
- if self.__state != _CS_REQ_SENT or self.__response:
- raise ResponseNotReady(self.__state)
- if self.debuglevel > 0:
- response = self.response_class(self.sock, self.debuglevel,
- method=self._method)
- else:
- response = self.response_class(self.sock, method=self._method)
- try:
- try:
- > response.begin()
- /opt/python/3.6.3/lib/python3.6/http/client.py:1331:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <http.client.HTTPResponse object at 0x7f69212ab748>
- def begin(self):
- if self.headers is not None:
- # we've already started reading the response
- return
- # read until we get a non-100 response
- while True:
- > version, status, reason = self._read_status()
- /opt/python/3.6.3/lib/python3.6/http/client.py:297:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <http.client.HTTPResponse object at 0x7f69212ab748>
- def _read_status(self):
- > line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
- /opt/python/3.6.3/lib/python3.6/http/client.py:258:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <socket.SocketIO object at 0x7f69212ab8d0>
- b = <memory at 0x7f6921213048>
- def readinto(self, b):
- """Read up to len(b) bytes into the writable buffer *b* and return
- the number of bytes read. If the socket is non-blocking and no bytes
- are available, None is returned.
- If *b* is non-empty, a 0 return value indicates that the connection
- was shutdown at the other end.
- """
- self._checkClosed()
- self._checkReadable()
- if self._timeout_occurred:
- raise OSError("cannot read from timed out object")
- while True:
- try:
- > return self._sock.recv_into(b)
- E socket.timeout: timed out
- /opt/python/3.6.3/lib/python3.6/socket.py:586: timeout
- During handling of the above exception, another exception occurred:
- self = <requests.adapters.HTTPAdapter object at 0x7f6921200828>
- request = <PreparedRequest [GET]>, stream = False
- timeout = <urllib3.util.timeout.Timeout object at 0x7f6921200a20>, verify = True
- cert = None, proxies = OrderedDict()
- def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
- """Sends PreparedRequest object. Returns Response object.
- :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
- :param stream: (optional) Whether to stream the request content.
- :param timeout: (optional) How long to wait for the server to send
- data before giving up, as a float, or a :ref:`(connect timeout,
- read timeout) <timeouts>` tuple.
- :type timeout: float or tuple or urllib3 Timeout object
- :param verify: (optional) Either a boolean, in which case it controls whether
- we verify the server's TLS certificate, or a string, in which case it
- must be a path to a CA bundle to use
- :param cert: (optional) Any user-provided SSL certificate to be trusted.
- :param proxies: (optional) The proxies dictionary to apply to the request.
- :rtype: requests.Response
- """
- conn = self.get_connection(request.url, proxies)
- self.cert_verify(conn, request.url, verify, cert)
- url = self.request_url(request, proxies)
- self.add_headers(request)
- chunked = not (request.body is None or 'Content-Length' in request.headers)
- if isinstance(timeout, tuple):
- try:
- connect, read = timeout
- timeout = TimeoutSauce(connect=connect, read=read)
- except ValueError as e:
- # this may raise a string formatting error.
- err = ("Invalid timeout {0}. Pass a (connect, read) "
- "timeout tuple, or a single float to set "
- "both timeouts to the same value".format(timeout))
- raise ValueError(err)
- elif isinstance(timeout, TimeoutSauce):
- pass
- else:
- timeout = TimeoutSauce(connect=timeout, read=timeout)
- try:
- if not chunked:
- resp = conn.urlopen(
- method=request.method,
- url=url,
- body=request.body,
- headers=request.headers,
- redirect=False,
- assert_same_host=False,
- preload_content=False,
- decode_content=False,
- retries=self.max_retries,
- > timeout=timeout
- )
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/adapters.py:440:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
- method = 'GET', url = '/', body = None
- headers = {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
- retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
- redirect = False, assert_same_host = False
- timeout = <urllib3.util.timeout.Timeout object at 0x7f6921200a20>
- pool_timeout = None, release_conn = False, chunked = False, body_pos = None
- response_kw = {'decode_content': False, 'preload_content': False}, conn = None
- release_this_conn = True, err = None, clean_exit = False
- timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f69212ab710>
- is_new_proxy_conn = False
- def urlopen(self, method, url, body=None, headers=None, retries=None,
- redirect=True, assert_same_host=True, timeout=_Default,
- pool_timeout=None, release_conn=None, chunked=False,
- body_pos=None, **response_kw):
- """
- Get a connection from the pool and perform an HTTP request. This is the
- lowest level call for making a request, so you'll need to specify all
- the raw details.
- .. note::
- More commonly, it's appropriate to use a convenience method provided
- by :class:`.RequestMethods`, such as :meth:`request`.
- .. note::
- `release_conn` will only behave as expected if
- `preload_content=False` because we want to make
- `preload_content=False` the default behaviour someday soon without
- breaking backwards compatibility.
- :param method:
- HTTP request method (such as GET, POST, PUT, etc.)
- :param body:
- Data to send in the request body (useful for creating
- POST requests, see HTTPConnectionPool.post_url for
- more convenience).
- :param headers:
- Dictionary of custom headers to send, such as User-Agent,
- If-None-Match, etc. If None, pool headers are used. If provided,
- these headers completely replace any pool-specific headers.
- :param retries:
- Configure the number of retries to allow before raising a
- :class:`~urllib3.exceptions.MaxRetryError` exception.
- Pass ``None`` to retry until you receive a response. Pass a
- :class:`~urllib3.util.retry.Retry` object for fine-grained control
- over different types of retries.
- Pass an integer number to retry connection errors that many times,
- but no other types of errors. Pass zero to never retry.
- If ``False``, then retries are disabled and any exception is raised
- immediately. Also, instead of raising a MaxRetryError on redirects,
- the redirect response will be returned.
- :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
- :param redirect:
- If True, automatically handle redirects (status codes 301, 302,
- 303, 307, 308). Each redirect counts as a retry. Disabling retries
- will disable redirect, too.
- :param assert_same_host:
- If ``True``, will make sure that the host of the pool requests is
- consistent else will raise HostChangedError. When False, you can
- use the pool on an HTTP proxy and request foreign hosts.
- :param timeout:
- If specified, overrides the default timeout for this one
- request. It may be a float (in seconds) or an instance of
- :class:`urllib3.util.Timeout`.
- :param pool_timeout:
- If set and the pool is set to block=True, then this method will
- block for ``pool_timeout`` seconds and raise EmptyPoolError if no
- connection is available within the time period.
- :param release_conn:
- If False, then the urlopen call will not release the connection
- back into the pool once a response is received (but will release if
- you read the entire contents of the response such as when
- `preload_content=True`). This is useful if you're not preloading
- the response's content immediately. You will need to call
- ``r.release_conn()`` on the response ``r`` to return the connection
- back into the pool. If None, it takes the value of
- ``response_kw.get('preload_content', True)``.
- :param chunked:
- If True, urllib3 will send the body using chunked transfer
- encoding. Otherwise, urllib3 will send the body using the standard
- content-length form. Defaults to False.
- :param int body_pos:
- Position to seek to in file-like body in the event of a retry or
- redirect. Typically this won't need to be set because urllib3 will
- auto-populate the value when needed.
- :param \\**response_kw:
- Additional parameters are passed to
- :meth:`urllib3.response.HTTPResponse.from_httplib`
- """
- if headers is None:
- headers = self.headers
- if not isinstance(retries, Retry):
- retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
- if release_conn is None:
- release_conn = response_kw.get('preload_content', True)
- # Check host
- if assert_same_host and not self.is_same_host(url):
- raise HostChangedError(self, url, retries)
- conn = None
- # Track whether `conn` needs to be released before
- # returning/raising/recursing. Update this variable if necessary, and
- # leave `release_conn` constant throughout the function. That way, if
- # the function recurses, the original value of `release_conn` will be
- # passed down into the recursive call, and its value will be respected.
- #
- # See issue #651 [1] for details.
- #
- # [1] <https://github.com/shazow/urllib3/issues/651>
- release_this_conn = release_conn
- # Merge the proxy headers. Only do this in HTTP. We have to copy the
- # headers dict so we can safely change it without those changes being
- # reflected in anyone else's copy.
- if self.scheme == 'http':
- headers = headers.copy()
- headers.update(self.proxy_headers)
- # Must keep the exception bound to a separate variable or else Python 3
- # complains about UnboundLocalError.
- err = None
- # Keep track of whether we cleanly exited the except block. This
- # ensures we do proper cleanup in finally.
- clean_exit = False
- # Rewind body position, if needed. Record current position
- # for future rewinds in the event of a redirect/retry.
- body_pos = set_file_position(body, body_pos)
- try:
- # Request a connection from the queue.
- timeout_obj = self._get_timeout(timeout)
- conn = self._get_conn(timeout=pool_timeout)
- conn.timeout = timeout_obj.connect_timeout
- is_new_proxy_conn = self.proxy is not None and not getattr(conn, 'sock', None)
- if is_new_proxy_conn:
- self._prepare_proxy(conn)
- # Make the request on the httplib connection object.
- httplib_response = self._make_request(conn, method, url,
- timeout=timeout_obj,
- body=body, headers=headers,
- chunked=chunked)
- # If we're going to release the connection in ``finally:``, then
- # the response doesn't need to know about the connection. Otherwise
- # it will also try to release it and we'll have a double-release
- # mess.
- response_conn = conn if not release_conn else None
- # Pass method to Response for length checking
- response_kw['request_method'] = method
- # Import httplib's response into our own wrapper object
- response = self.ResponseCls.from_httplib(httplib_response,
- pool=self,
- connection=response_conn,
- retries=retries,
- **response_kw)
- # Everything went great!
- clean_exit = True
- except queue.Empty:
- # Timed out by queue.
- raise EmptyPoolError(self, "No pool connections are available.")
- except (TimeoutError, HTTPException, SocketError, ProtocolError,
- BaseSSLError, SSLError, CertificateError) as e:
- # Discard the connection for these exceptions. It will be
- # replaced during the next _get_conn() call.
- clean_exit = False
- if isinstance(e, (BaseSSLError, CertificateError)):
- e = SSLError(e)
- elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
- e = ProxyError('Cannot connect to proxy.', e)
- elif isinstance(e, (SocketError, HTTPException)):
- e = ProtocolError('Connection aborted.', e)
- retries = retries.increment(method, url, error=e, _pool=self,
- > _stacktrace=sys.exc_info()[2])
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:639:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
- method = 'GET', url = '/', response = None
- error = ReadTimeoutError("HTTPConnectionPool(host='127.0.0.1', port=30123): Read timed out. (read timeout=5)",)
- _pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
- _stacktrace = <traceback object at 0x7f6921262148>
- def increment(self, method=None, url=None, response=None, error=None,
- _pool=None, _stacktrace=None):
- """ Return a new Retry object with incremented retry counters.
- :param response: A response object, or None, if the server did not
- return a response.
- :type response: :class:`~urllib3.response.HTTPResponse`
- :param Exception error: An error encountered during the request, or
- None if the response was received successfully.
- :return: A new ``Retry`` object.
- """
- if self.total is False and error:
- # Disabled, indicate to re-raise the error.
- raise six.reraise(type(error), error, _stacktrace)
- total = self.total
- if total is not None:
- total -= 1
- connect = self.connect
- read = self.read
- redirect = self.redirect
- status_count = self.status
- cause = 'unknown'
- status = None
- redirect_location = None
- if error and self._is_connection_error(error):
- # Connect retry?
- if connect is False:
- raise six.reraise(type(error), error, _stacktrace)
- elif connect is not None:
- connect -= 1
- elif error and self._is_read_error(error):
- # Read retry?
- if read is False or not self._is_method_retryable(method):
- > raise six.reraise(type(error), error, _stacktrace)
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/util/retry.py:357:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- tp = <class 'urllib3.exceptions.ReadTimeoutError'>
- value = ReadTimeoutError("HTTPConnectionPool(host='127.0.0.1', port=30123): Read timed out. (read timeout=5)",)
- tb = <traceback object at 0x7f6921262148>
- def reraise(tp, value, tb=None):
- if value is None:
- value = tp()
- if value.__traceback__ is not tb:
- raise value.with_traceback(tb)
- > raise value
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/packages/six.py:686:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
- method = 'GET', url = '/', body = None
- headers = {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
- retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
- redirect = False, assert_same_host = False
- timeout = <urllib3.util.timeout.Timeout object at 0x7f6921200a20>
- pool_timeout = None, release_conn = False, chunked = False, body_pos = None
- response_kw = {'decode_content': False, 'preload_content': False}, conn = None
- release_this_conn = True, err = None, clean_exit = False
- timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f69212ab710>
- is_new_proxy_conn = False
- def urlopen(self, method, url, body=None, headers=None, retries=None,
- redirect=True, assert_same_host=True, timeout=_Default,
- pool_timeout=None, release_conn=None, chunked=False,
- body_pos=None, **response_kw):
- """
- Get a connection from the pool and perform an HTTP request. This is the
- lowest level call for making a request, so you'll need to specify all
- the raw details.
- .. note::
- More commonly, it's appropriate to use a convenience method provided
- by :class:`.RequestMethods`, such as :meth:`request`.
- .. note::
- `release_conn` will only behave as expected if
- `preload_content=False` because we want to make
- `preload_content=False` the default behaviour someday soon without
- breaking backwards compatibility.
- :param method:
- HTTP request method (such as GET, POST, PUT, etc.)
- :param body:
- Data to send in the request body (useful for creating
- POST requests, see HTTPConnectionPool.post_url for
- more convenience).
- :param headers:
- Dictionary of custom headers to send, such as User-Agent,
- If-None-Match, etc. If None, pool headers are used. If provided,
- these headers completely replace any pool-specific headers.
- :param retries:
- Configure the number of retries to allow before raising a
- :class:`~urllib3.exceptions.MaxRetryError` exception.
- Pass ``None`` to retry until you receive a response. Pass a
- :class:`~urllib3.util.retry.Retry` object for fine-grained control
- over different types of retries.
- Pass an integer number to retry connection errors that many times,
- but no other types of errors. Pass zero to never retry.
- If ``False``, then retries are disabled and any exception is raised
- immediately. Also, instead of raising a MaxRetryError on redirects,
- the redirect response will be returned.
- :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
- :param redirect:
- If True, automatically handle redirects (status codes 301, 302,
- 303, 307, 308). Each redirect counts as a retry. Disabling retries
- will disable redirect, too.
- :param assert_same_host:
- If ``True``, will make sure that the host of the pool requests is
- consistent else will raise HostChangedError. When False, you can
- use the pool on an HTTP proxy and request foreign hosts.
- :param timeout:
- If specified, overrides the default timeout for this one
- request. It may be a float (in seconds) or an instance of
- :class:`urllib3.util.Timeout`.
- :param pool_timeout:
- If set and the pool is set to block=True, then this method will
- block for ``pool_timeout`` seconds and raise EmptyPoolError if no
- connection is available within the time period.
- :param release_conn:
- If False, then the urlopen call will not release the connection
- back into the pool once a response is received (but will release if
- you read the entire contents of the response such as when
- `preload_content=True`). This is useful if you're not preloading
- the response's content immediately. You will need to call
- ``r.release_conn()`` on the response ``r`` to return the connection
- back into the pool. If None, it takes the value of
- ``response_kw.get('preload_content', True)``.
- :param chunked:
- If True, urllib3 will send the body using chunked transfer
- encoding. Otherwise, urllib3 will send the body using the standard
- content-length form. Defaults to False.
- :param int body_pos:
- Position to seek to in file-like body in the event of a retry or
- redirect. Typically this won't need to be set because urllib3 will
- auto-populate the value when needed.
- :param \\**response_kw:
- Additional parameters are passed to
- :meth:`urllib3.response.HTTPResponse.from_httplib`
- """
- if headers is None:
- headers = self.headers
- if not isinstance(retries, Retry):
- retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
- if release_conn is None:
- release_conn = response_kw.get('preload_content', True)
- # Check host
- if assert_same_host and not self.is_same_host(url):
- raise HostChangedError(self, url, retries)
- conn = None
- # Track whether `conn` needs to be released before
- # returning/raising/recursing. Update this variable if necessary, and
- # leave `release_conn` constant throughout the function. That way, if
- # the function recurses, the original value of `release_conn` will be
- # passed down into the recursive call, and its value will be respected.
- #
- # See issue #651 [1] for details.
- #
- # [1] <https://github.com/shazow/urllib3/issues/651>
- release_this_conn = release_conn
- # Merge the proxy headers. Only do this in HTTP. We have to copy the
- # headers dict so we can safely change it without those changes being
- # reflected in anyone else's copy.
- if self.scheme == 'http':
- headers = headers.copy()
- headers.update(self.proxy_headers)
- # Must keep the exception bound to a separate variable or else Python 3
- # complains about UnboundLocalError.
- err = None
- # Keep track of whether we cleanly exited the except block. This
- # ensures we do proper cleanup in finally.
- clean_exit = False
- # Rewind body position, if needed. Record current position
- # for future rewinds in the event of a redirect/retry.
- body_pos = set_file_position(body, body_pos)
- try:
- # Request a connection from the queue.
- timeout_obj = self._get_timeout(timeout)
- conn = self._get_conn(timeout=pool_timeout)
- conn.timeout = timeout_obj.connect_timeout
- is_new_proxy_conn = self.proxy is not None and not getattr(conn, 'sock', None)
- if is_new_proxy_conn:
- self._prepare_proxy(conn)
- # Make the request on the httplib connection object.
- httplib_response = self._make_request(conn, method, url,
- timeout=timeout_obj,
- body=body, headers=headers,
- > chunked=chunked)
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:601:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
- conn = <urllib3.connection.HTTPConnection object at 0x7f69212ab828>
- method = 'GET', url = '/'
- timeout = <urllib3.util.timeout.Timeout object at 0x7f69212ab710>
- chunked = False
- httplib_request_kw = {'body': None, 'headers': {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}}
- timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f69212ab6a0>
- read_timeout = 5
- def _make_request(self, conn, method, url, timeout=_Default, chunked=False,
- **httplib_request_kw):
- """
- Perform a request on a given urllib connection object taken from our
- pool.
- :param conn:
- a connection from one of our connection pools
- :param timeout:
- Socket timeout in seconds for the request. This can be a
- float or integer, which will set the same timeout value for
- the socket connect and the socket read, or an instance of
- :class:`urllib3.util.Timeout`, which gives you more fine-grained
- control over your timeouts.
- """
- self.num_requests += 1
- timeout_obj = self._get_timeout(timeout)
- timeout_obj.start_connect()
- conn.timeout = timeout_obj.connect_timeout
- # Trigger any extra validation we need to do.
- try:
- self._validate_conn(conn)
- except (SocketTimeout, BaseSSLError) as e:
- # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
- self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
- raise
- # conn.request() calls httplib.*.request, not the method in
- # urllib3.request. It also calls makefile (recv) on the socket.
- if chunked:
- conn.request_chunked(method, url, **httplib_request_kw)
- else:
- conn.request(method, url, **httplib_request_kw)
- # Reset the timeout for the recv() on the socket
- read_timeout = timeout_obj.read_timeout
- # App Engine doesn't have a sock attr
- if getattr(conn, 'sock', None):
- # In Python 3 socket.py will catch EAGAIN and return None when you
- # try and read into the file pointer created by http.client, which
- # instead raises a BadStatusLine exception. Instead of catching
- # the exception and assuming all BadStatusLine exceptions are read
- # timeouts, check for a zero timeout before making the request.
- if read_timeout == 0:
- raise ReadTimeoutError(
- self, url, "Read timed out. (read timeout=%s)" % read_timeout)
- if read_timeout is Timeout.DEFAULT_TIMEOUT:
- conn.sock.settimeout(socket.getdefaulttimeout())
- else: # None or a value
- conn.sock.settimeout(read_timeout)
- # Receive the response from the server
- try:
- try: # Python 2.7, use buffering of HTTP responses
- httplib_response = conn.getresponse(buffering=True)
- except TypeError: # Python 2.6 and older, Python 3
- try:
- httplib_response = conn.getresponse()
- except Exception as e:
- # Remove the TypeError from the exception chain in Python 3;
- # otherwise it looks like a programming error was the cause.
- six.raise_from(e, None)
- except (SocketTimeout, BaseSSLError, SocketError) as e:
- > self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:389:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
- err = timeout('timed out',), url = '/', timeout_value = 5
- def _raise_timeout(self, err, url, timeout_value):
- """Is the error actually a timeout? Will raise a ReadTimeout or pass"""
- if isinstance(err, SocketTimeout):
- > raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
- E urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='127.0.0.1', port=30123): Read timed out. (read timeout=5)
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:309: ReadTimeoutError
- During handling of the above exception, another exception occurred:
- @pytest.fixture(scope='session')
- def _binderhub_config():
- """Load the binderhub configuration
- Currently separate from the app fixture
- so that it can have a different scope (only once per session).
- """
- cfg = PyFileConfigLoader(minikube_testing_config).load_config()
- cfg.BinderHub.build_namespace = TEST_NAMESPACE
- global KUBERNETES_AVAILABLE
- try:
- kubernetes.config.load_kube_config()
- except Exception:
- cfg.BinderHub.builder_required = False
- KUBERNETES_AVAILABLE = False
- if ON_TRAVIS:
- pytest.fail("Kubernetes should be available on Travis")
- else:
- KUBERNETES_AVAILABLE = True
- if REMOTE_BINDER:
- return
- # check if Hub is running and ready
- try:
- > requests.get(cfg.BinderHub.hub_url, timeout=5, allow_redirects=False)
- binderhub/tests/conftest.py:56:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- url = 'http://127.0.0.1:30123', params = None
- kwargs = {'allow_redirects': False, 'timeout': 5}
- def get(url, params=None, **kwargs):
- r"""Sends a GET request.
- :param url: URL for the new :class:`Request` object.
- :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
- :param \*\*kwargs: Optional arguments that ``request`` takes.
- :return: :class:`Response <Response>` object
- :rtype: requests.Response
- """
- kwargs.setdefault('allow_redirects', True)
- > return request('get', url, params=params, **kwargs)
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/api.py:72:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- method = 'get', url = 'http://127.0.0.1:30123'
- kwargs = {'allow_redirects': False, 'params': None, 'timeout': 5}
- session = <requests.sessions.Session object at 0x7f692164dba8>
- def request(method, url, **kwargs):
- """Constructs and sends a :class:`Request <Request>`.
- :param method: method for the new :class:`Request` object.
- :param url: URL for the new :class:`Request` object.
- :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
- :param data: (optional) Dictionary or list of tuples ``[(key, value)]`` (will be form-encoded), bytes, or file-like object to send in the body of the :class:`Request`.
- :param json: (optional) json data to send in the body of the :class:`Request`.
- :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
- :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
- :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload.
- ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
- or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content-type'`` is a string
- defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
- to add for the file.
- :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
- :param timeout: (optional) How many seconds to wait for the server to send data
- before giving up, as a float, or a :ref:`(connect timeout, read
- timeout) <timeouts>` tuple.
- :type timeout: float or tuple
- :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to ``True``.
- :type allow_redirects: bool
- :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
- :param verify: (optional) Either a boolean, in which case it controls whether we verify
- the server's TLS certificate, or a string, in which case it must be a path
- to a CA bundle to use. Defaults to ``True``.
- :param stream: (optional) if ``False``, the response content will be immediately downloaded.
- :param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.
- :return: :class:`Response <Response>` object
- :rtype: requests.Response
- Usage::
- >>> import requests
- >>> req = requests.request('GET', 'http://httpbin.org/get')
- <Response [200]>
- """
- # By using the 'with' statement we are sure the session is closed, thus we
- # avoid leaving sockets open which can trigger a ResourceWarning in some
- # cases, and look like a memory leak in others.
- with sessions.Session() as session:
- > return session.request(method=method, url=url, **kwargs)
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/api.py:58:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.sessions.Session object at 0x7f692164dba8>, method = 'get'
- url = 'http://127.0.0.1:30123', params = None, data = None, headers = None
- cookies = None, files = None, auth = None, timeout = 5, allow_redirects = False
- proxies = {}, hooks = None, stream = None, verify = None, cert = None
- json = None
- def request(self, method, url,
- params=None, data=None, headers=None, cookies=None, files=None,
- auth=None, timeout=None, allow_redirects=True, proxies=None,
- hooks=None, stream=None, verify=None, cert=None, json=None):
- """Constructs a :class:`Request <Request>`, prepares it and sends it.
- Returns :class:`Response <Response>` object.
- :param method: method for the new :class:`Request` object.
- :param url: URL for the new :class:`Request` object.
- :param params: (optional) Dictionary or bytes to be sent in the query
- string for the :class:`Request`.
- :param data: (optional) Dictionary, bytes, or file-like object to send
- in the body of the :class:`Request`.
- :param json: (optional) json to send in the body of the
- :class:`Request`.
- :param headers: (optional) Dictionary of HTTP Headers to send with the
- :class:`Request`.
- :param cookies: (optional) Dict or CookieJar object to send with the
- :class:`Request`.
- :param files: (optional) Dictionary of ``'filename': file-like-objects``
- for multipart encoding upload.
- :param auth: (optional) Auth tuple or callable to enable
- Basic/Digest/Custom HTTP Auth.
- :param timeout: (optional) How long to wait for the server to send
- data before giving up, as a float, or a :ref:`(connect timeout,
- read timeout) <timeouts>` tuple.
- :type timeout: float or tuple
- :param allow_redirects: (optional) Set to True by default.
- :type allow_redirects: bool
- :param proxies: (optional) Dictionary mapping protocol or protocol and
- hostname to the URL of the proxy.
- :param stream: (optional) whether to immediately download the response
- content. Defaults to ``False``.
- :param verify: (optional) Either a boolean, in which case it controls whether we verify
- the server's TLS certificate, or a string, in which case it must be a path
- to a CA bundle to use. Defaults to ``True``.
- :param cert: (optional) if String, path to ssl client cert file (.pem).
- If Tuple, ('cert', 'key') pair.
- :rtype: requests.Response
- """
- # Create the Request.
- req = Request(
- method=method.upper(),
- url=url,
- headers=headers,
- files=files,
- data=data or {},
- json=json,
- params=params or {},
- auth=auth,
- cookies=cookies,
- hooks=hooks,
- )
- prep = self.prepare_request(req)
- proxies = proxies or {}
- settings = self.merge_environment_settings(
- prep.url, proxies, stream, verify, cert
- )
- # Send the request.
- send_kwargs = {
- 'timeout': timeout,
- 'allow_redirects': allow_redirects,
- }
- send_kwargs.update(settings)
- > resp = self.send(prep, **send_kwargs)
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/sessions.py:508:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.sessions.Session object at 0x7f692164dba8>
- request = <PreparedRequest [GET]>
- kwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 5, ...}
- allow_redirects = False, stream = False, hooks = {'response': []}
- adapter = <requests.adapters.HTTPAdapter object at 0x7f6921200828>
- start = 1515629096.4393468
- def send(self, request, **kwargs):
- """Send a given PreparedRequest.
- :rtype: requests.Response
- """
- # Set defaults that the hooks can utilize to ensure they always have
- # the correct parameters to reproduce the previous request.
- kwargs.setdefault('stream', self.stream)
- kwargs.setdefault('verify', self.verify)
- kwargs.setdefault('cert', self.cert)
- kwargs.setdefault('proxies', self.proxies)
- # It's possible that users might accidentally send a Request object.
- # Guard against that specific failure case.
- if isinstance(request, Request):
- raise ValueError('You can only send PreparedRequests.')
- # Set up variables needed for resolve_redirects and dispatching of hooks
- allow_redirects = kwargs.pop('allow_redirects', True)
- stream = kwargs.get('stream')
- hooks = request.hooks
- # Get the appropriate adapter to use
- adapter = self.get_adapter(url=request.url)
- # Start time (approximately) of the request
- start = preferred_clock()
- # Send the request
- > r = adapter.send(request, **kwargs)
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/sessions.py:618:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
- self = <requests.adapters.HTTPAdapter object at 0x7f6921200828>
- request = <PreparedRequest [GET]>, stream = False
- timeout = <urllib3.util.timeout.Timeout object at 0x7f6921200a20>, verify = True
- cert = None, proxies = OrderedDict()
- def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
- """Sends PreparedRequest object. Returns Response object.
- :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
- :param stream: (optional) Whether to stream the request content.
- :param timeout: (optional) How long to wait for the server to send
- data before giving up, as a float, or a :ref:`(connect timeout,
- read timeout) <timeouts>` tuple.
- :type timeout: float or tuple or urllib3 Timeout object
- :param verify: (optional) Either a boolean, in which case it controls whether
- we verify the server's TLS certificate, or a string, in which case it
- must be a path to a CA bundle to use
- :param cert: (optional) Any user-provided SSL certificate to be trusted.
- :param proxies: (optional) The proxies dictionary to apply to the request.
- :rtype: requests.Response
- """
- conn = self.get_connection(request.url, proxies)
- self.cert_verify(conn, request.url, verify, cert)
- url = self.request_url(request, proxies)
- self.add_headers(request)
- chunked = not (request.body is None or 'Content-Length' in request.headers)
- if isinstance(timeout, tuple):
- try:
- connect, read = timeout
- timeout = TimeoutSauce(connect=connect, read=read)
- except ValueError as e:
- # this may raise a string formatting error.
- err = ("Invalid timeout {0}. Pass a (connect, read) "
- "timeout tuple, or a single float to set "
- "both timeouts to the same value".format(timeout))
- raise ValueError(err)
- elif isinstance(timeout, TimeoutSauce):
- pass
- else:
- timeout = TimeoutSauce(connect=timeout, read=timeout)
- try:
- if not chunked:
- resp = conn.urlopen(
- method=request.method,
- url=url,
- body=request.body,
- headers=request.headers,
- redirect=False,
- assert_same_host=False,
- preload_content=False,
- decode_content=False,
- retries=self.max_retries,
- timeout=timeout
- )
- # Send the request.
- else:
- if hasattr(conn, 'proxy_pool'):
- conn = conn.proxy_pool
- low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
- try:
- low_conn.putrequest(request.method,
- url,
- skip_accept_encoding=True)
- for header, value in request.headers.items():
- low_conn.putheader(header, value)
- low_conn.endheaders()
- for i in request.body:
- low_conn.send(hex(len(i))[2:].encode('utf-8'))
- low_conn.send(b'\r\n')
- low_conn.send(i)
- low_conn.send(b'\r\n')
- low_conn.send(b'0\r\n\r\n')
- # Receive the response from the server
- try:
- # For Python 2.7+ versions, use buffering of HTTP
- # responses
- r = low_conn.getresponse(buffering=True)
- except TypeError:
- # For compatibility with Python 2.6 versions and back
- r = low_conn.getresponse()
- resp = HTTPResponse.from_httplib(
- r,
- pool=conn,
- connection=low_conn,
- preload_content=False,
- decode_content=False
- )
- except:
- # If we hit any problems here, clean up the connection.
- # Then, reraise so that we can handle the actual exception.
- low_conn.close()
- raise
- except (ProtocolError, socket.error) as err:
- raise ConnectionError(err, request=request)
- except MaxRetryError as e:
- if isinstance(e.reason, ConnectTimeoutError):
- # TODO: Remove this in 3.0.0: see #2811
- if not isinstance(e.reason, NewConnectionError):
- raise ConnectTimeout(e, request=request)
- if isinstance(e.reason, ResponseError):
- raise RetryError(e, request=request)
- if isinstance(e.reason, _ProxyError):
- raise ProxyError(e, request=request)
- if isinstance(e.reason, _SSLError):
- # This branch is for urllib3 v1.22 and later.
- raise SSLError(e, request=request)
- raise ConnectionError(e, request=request)
- except ClosedPoolError as e:
- raise ConnectionError(e, request=request)
- except _ProxyError as e:
- raise ProxyError(e)
- except (_SSLError, _HTTPError) as e:
- if isinstance(e, _SSLError):
- # This branch is for urllib3 versions earlier than v1.22
- raise SSLError(e, request=request)
- elif isinstance(e, ReadTimeoutError):
- > raise ReadTimeout(e, request=request)
- E requests.exceptions.ReadTimeout: HTTPConnectionPool(host='127.0.0.1', port=30123): Read timed out. (read timeout=5)
- ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/adapters.py:521: ReadTimeout
- During handling of the above exception, another exception occurred:
- @pytest.fixture(scope='session')
- def _binderhub_config():
- """Load the binderhub configuration
- Currently separate from the app fixture
- so that it can have a different scope (only once per session).
- """
- cfg = PyFileConfigLoader(minikube_testing_config).load_config()
- cfg.BinderHub.build_namespace = TEST_NAMESPACE
- global KUBERNETES_AVAILABLE
- try:
- kubernetes.config.load_kube_config()
- except Exception:
- cfg.BinderHub.builder_required = False
- KUBERNETES_AVAILABLE = False
- if ON_TRAVIS:
- pytest.fail("Kubernetes should be available on Travis")
- else:
- KUBERNETES_AVAILABLE = True
- if REMOTE_BINDER:
- return
- # check if Hub is running and ready
- try:
- requests.get(cfg.BinderHub.hub_url, timeout=5, allow_redirects=False)
- except Exception as e:
- print(f"JupyterHub not available at {cfg.BinderHub.hub_url}: {e}")
- if ON_TRAVIS:
- > pytest.fail("JupyterHub should be available on Travis")
- E Failed: JupyterHub should be available on Travis
- binderhub/tests/conftest.py:60: Failed
- ------------------------------ Captured log setup ------------------------------
- loader.py 342 DEBUG Using default logger
- ====================== 2 passed, 1 error in 13.21 seconds ======================
- travis_time:end:0a49d8e4:start=1515629036375760501,finish=1515629102791433764,duration=66415673263
- [0K
- [31;1mThe command "./ci/test-$TEST" exited with 1.[0m
- travis_fold:start:after_failure
- [0Ktravis_time:start:0a243ec0
- [0K$ for pod in $(kubectl get pod --namespace=$BINDER_TEST_NAMESPACE | awk '{print $1}'); do echo $pod kubectl logs --namespace=$BINDER_TEST_NAMESPACE $pod done
- /home/travis/.travis/job_stages: eval: line 58: syntax error: unexpected end of file
- travis_time:end:0a243ec0:start=1515629102815603286,finish=1515629102835280348,duration=19677062
- [0Ktravis_fold:end:after_failure
- [0K
- Done. Your build exited with 1.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement