Advertisement
willingc

binderhub-travis

Jan 10th, 2018
911
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 108.67 KB | None | 0 0
  1. travis_fold:start:worker_info
  2. Worker information
  3. hostname: f411123f-b0a7-4ae3-9684-39cc6f054b41@1.production-1-worker-org-f-3-gce
  4. version: v3.3.1 https://github.com/travis-ci/worker/tree/1153e5010ef9863bf96264b75fba506109633460
  5. instance: travis-job-42812f71-438e-46e3-a8ff-565487838dab travis-ci-garnet-trusty-1512502259-986baf0 (via amqp)
  6. startup: 21.089747915s
  7. travis_fold:end:worker_info
  8. mode of ‘/usr/local/clang-5.0.0/bin’ changed from 0777 (rwxrwxrwx) to 0775 (rwxrwxr-x)
  9. travis_fold:start:system_info
  10. Build system information
  11. Build language: python
  12. Build group: stable
  13. Build dist: trusty
  14. Build id: 327474715
  15. Job id: 327474716
  16. Runtime kernel version: 4.4.0-101-generic
  17. travis-build version: 536d9e9f5
  18. Build image provisioning date and time
  19. Tue Dec 5 19:58:13 UTC 2017
  20. Operating System Details
  21. Distributor ID: Ubuntu
  22. Description: Ubuntu 14.04.5 LTS
  23. Release: 14.04
  24. Codename: trusty
  25. Cookbooks Version
  26. 7c2c6a6 https://github.com/travis-ci/travis-cookbooks/tree/7c2c6a6
  27. git version
  28. git version 2.15.1
  29. bash version
  30. GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
  31. gcc version
  32. gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
  33. Copyright (C) 2013 Free Software Foundation, Inc.
  34. This is free software; see the source for copying conditions. There is NO
  35. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  36.  
  37. docker version
  38. Client:
  39. Version: 17.09.0-ce
  40. API version: 1.32
  41. Go version: go1.8.3
  42. Git commit: afdb6d4
  43. Built: Tue Sep 26 22:42:38 2017
  44. OS/Arch: linux/amd64
  45.  
  46. Server:
  47. Version: 17.09.0-ce
  48. API version: 1.32 (minimum version 1.12)
  49. Go version: go1.8.3
  50. Git commit: afdb6d4
  51. Built: Tue Sep 26 22:41:20 2017
  52. OS/Arch: linux/amd64
  53. Experimental: false
  54. clang version
  55. clang version 5.0.0 (tags/RELEASE_500/final)
  56. Target: x86_64-unknown-linux-gnu
  57. Thread model: posix
  58. InstalledDir: /usr/local/clang-5.0.0/bin
  59. jq version
  60. jq-1.5
  61. bats version
  62. Bats 0.4.0
  63. shellcheck version
  64. 0.4.6
  65. shfmt version
  66. v2.0.0
  67. ccache version
  68. ccache version 3.1.9
  69.  
  70. Copyright (C) 2002-2007 Andrew Tridgell
  71. Copyright (C) 2009-2011 Joel Rosdahl
  72.  
  73. This program is free software; you can redistribute it and/or modify it under
  74. the terms of the GNU General Public License as published by the Free Software
  75. Foundation; either version 3 of the License, or (at your option) any later
  76. version.
  77. cmake version
  78. cmake version 3.9.2
  79.  
  80. CMake suite maintained and supported by Kitware (kitware.com/cmake).
  81. heroku version
  82. heroku-cli/6.14.39-addc925 (linux-x64) node-v9.2.0
  83. imagemagick version
  84. Version: ImageMagick 6.7.7-10 2017-07-31 Q16 http://www.imagemagick.org
  85. md5deep version
  86. 4.2
  87. mercurial version
  88. Mercurial Distributed SCM (version 4.2.2)
  89. (see https://mercurial-scm.org for more information)
  90.  
  91. Copyright (C) 2005-2017 Matt Mackall and others
  92. This is free software; see the source for copying conditions. There is NO
  93. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  94. mysql version
  95. mysql Ver 14.14 Distrib 5.6.33, for debian-linux-gnu (x86_64) using EditLine wrapper
  96. openssl version
  97. OpenSSL 1.0.1f 6 Jan 2014
  98. packer version
  99. Packer v1.0.2
  100.  
  101. Your version of Packer is out of date! The latest version
  102. is 1.1.2. You can update by downloading from www.packer.io
  103. postgresql client version
  104. psql (PostgreSQL) 9.6.6
  105. ragel version
  106. Ragel State Machine Compiler version 6.8 Feb 2013
  107. Copyright (c) 2001-2009 by Adrian Thurston
  108. subversion version
  109. svn, version 1.8.8 (r1568071)
  110. compiled Aug 10 2017, 17:20:39 on x86_64-pc-linux-gnu
  111.  
  112. Copyright (C) 2013 The Apache Software Foundation.
  113. This software consists of contributions made by many people;
  114. see the NOTICE file for more information.
  115. Subversion is open source software, see http://subversion.apache.org/
  116.  
  117. The following repository access (RA) modules are available:
  118.  
  119. * ra_svn : Module for accessing a repository using the svn network protocol.
  120. - with Cyrus SASL authentication
  121. - handles 'svn' scheme
  122. * ra_local : Module for accessing a repository on local disk.
  123. - handles 'file' scheme
  124. * ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  125. - using serf 1.3.3
  126. - handles 'http' scheme
  127. - handles 'https' scheme
  128.  
  129. sudo version
  130. Sudo version 1.8.9p5
  131. 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
  132. Sudoers policy plugin version 1.8.9p5
  133. Sudoers file grammar version 43
  134.  
  135. Sudoers path: /etc/sudoers
  136. Authentication methods: 'pam'
  137. Syslog facility if syslog is being used for logging: authpriv
  138. Syslog priority to use when user authenticates successfully: notice
  139. Syslog priority to use when user authenticates unsuccessfully: alert
  140. Send mail if the user is not in sudoers
  141. Use a separate timestamp for each user/tty combo
  142. Lecture user the first time they run sudo
  143. Root may run sudo
  144. Allow some information gathering to give useful error messages
  145. Require fully-qualified hostnames in the sudoers file
  146. Visudo will honor the EDITOR environment variable
  147. Set the LOGNAME and USER environment variables
  148. Length at which to wrap log file lines (0 for no wrap): 80
  149. Authentication timestamp timeout: 15.0 minutes
  150. Password prompt timeout: 0.0 minutes
  151. Number of tries to enter a password: 3
  152. Umask to use or 0777 to use user's: 022
  153. Path to mail program: /usr/sbin/sendmail
  154. Flags for mail program: -t
  155. Address to send mail to: root
  156. Subject line for mail messages: *** SECURITY information for %h ***
  157. Incorrect password message: Sorry, try again.
  158. Path to authentication timestamp dir: /var/lib/sudo
  159. Default password prompt: [sudo] password for %p:
  160. Default user to run commands as: root
  161. Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
  162. Path to the editor for use by visudo: /usr/bin/editor
  163. When to require a password for 'list' pseudocommand: any
  164. When to require a password for 'verify' pseudocommand: all
  165. File descriptors >= 3 will be closed before executing a command
  166. Environment variables to check for sanity:
  167. TZ
  168. TERM
  169. LINGUAS
  170. LC_*
  171. LANGUAGE
  172. LANG
  173. COLORTERM
  174. Environment variables to remove:
  175. RUBYOPT
  176. RUBYLIB
  177. PYTHONUSERBASE
  178. PYTHONINSPECT
  179. PYTHONPATH
  180. PYTHONHOME
  181. TMPPREFIX
  182. ZDOTDIR
  183. READNULLCMD
  184. NULLCMD
  185. FPATH
  186. PERL5DB
  187. PERL5OPT
  188. PERL5LIB
  189. PERLLIB
  190. PERLIO_DEBUG
  191. JAVA_TOOL_OPTIONS
  192. SHELLOPTS
  193. GLOBIGNORE
  194. PS4
  195. BASH_ENV
  196. ENV
  197. TERMCAP
  198. TERMPATH
  199. TERMINFO_DIRS
  200. TERMINFO
  201. _RLD*
  202. LD_*
  203. PATH_LOCALE
  204. NLSPATH
  205. HOSTALIASES
  206. RES_OPTIONS
  207. LOCALDOMAIN
  208. CDPATH
  209. IFS
  210. Environment variables to preserve:
  211. JAVA_HOME
  212. TRAVIS
  213. CI
  214. DEBIAN_FRONTEND
  215. XAUTHORIZATION
  216. XAUTHORITY
  217. PS2
  218. PS1
  219. PATH
  220. LS_COLORS
  221. KRB5CCNAME
  222. HOSTNAME
  223. HOME
  224. DISPLAY
  225. COLORS
  226. Locale to use while parsing sudoers: C
  227. Directory in which to store input/output logs: /var/log/sudo-io
  228. File in which to store the input/output log: %{seq}
  229. Add an entry to the utmp/utmpx file when allocating a pty
  230. PAM service name to use
  231. PAM service name to use for login shells
  232. Create a new PAM session for the command to run in
  233. Maximum I/O log sequence number: 0
  234.  
  235. Local IP address and netmask pairs:
  236. 10.240.0.28/255.255.255.255
  237. 172.17.0.1/255.255.0.0
  238.  
  239. Sudoers I/O plugin version 1.8.9p5
  240. gzip version
  241. gzip 1.6
  242. Copyright (C) 2007, 2010, 2011 Free Software Foundation, Inc.
  243. Copyright (C) 1993 Jean-loup Gailly.
  244. This is free software. You may redistribute copies of it under the terms of
  245. the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
  246. There is NO WARRANTY, to the extent permitted by law.
  247.  
  248. Written by Jean-loup Gailly.
  249. zip version
  250. Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
  251. This is Zip 3.0 (July 5th 2008), by Info-ZIP.
  252. Currently maintained by E. Gordon. Please send bug reports to
  253. the authors using the web page at www.info-zip.org; see README for details.
  254.  
  255. Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
  256. as of above date; see http://www.info-zip.org/ for other sites.
  257.  
  258. Compiled with gcc 4.8.2 for Unix (Linux ELF) on Oct 21 2013.
  259.  
  260. Zip special compilation options:
  261. USE_EF_UT_TIME (store Universal Time)
  262. BZIP2_SUPPORT (bzip2 library version 1.0.6, 6-Sept-2010)
  263. bzip2 code and library copyright (c) Julian R Seward
  264. (See the bzip2 license for terms of use)
  265. SYMLINK_SUPPORT (symbolic links supported)
  266. LARGE_FILE_SUPPORT (can read and write large files on file system)
  267. ZIP64_SUPPORT (use Zip64 to store large files in archives)
  268. UNICODE_SUPPORT (store and read UTF-8 Unicode paths)
  269. STORE_UNIX_UIDs_GIDs (store UID/GID sizes/values using new extra field)
  270. UIDGID_NOT_16BIT (old Unix 16-bit UID/GID extra field not used)
  271. [encryption, version 2.91 of 05 Jan 2007] (modified for Zip 3)
  272.  
  273. Encryption notice:
  274. The encryption code of this program is not copyrighted and is
  275. put in the public domain. It was originally written in Europe
  276. and, to the best of our knowledge, can be freely distributed
  277. in both source and object forms from any country, including
  278. the USA under License Exception TSU of the U.S. Export
  279. Administration Regulations (section 740.13(e)) of 6 June 2002.
  280.  
  281. Zip environment options:
  282. ZIP: [none]
  283. ZIPOPT: [none]
  284. vim version
  285. VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:43:18)
  286. Included patches: 1-52
  287. Extra patches: 8.0.0056
  288. Modified by pkg-vim-maintainers@lists.alioth.debian.org
  289. Compiled by buildd@
  290. Huge version without GUI. Features included (+) or not (-):
  291. +acl +farsi +mouse_netterm +syntax
  292. +arabic +file_in_path +mouse_sgr +tag_binary
  293. +autocmd +find_in_path -mouse_sysmouse +tag_old_static
  294. -balloon_eval +float +mouse_urxvt -tag_any_white
  295. -browse +folding +mouse_xterm -tcl
  296. ++builtin_terms -footer +multi_byte +terminfo
  297. +byte_offset +fork() +multi_lang +termresponse
  298. +cindent +gettext -mzscheme +textobjects
  299. -clientserver -hangul_input +netbeans_intg +title
  300. -clipboard +iconv +path_extra -toolbar
  301. +cmdline_compl +insert_expand -perl +user_commands
  302. +cmdline_hist +jumplist +persistent_undo +vertsplit
  303. +cmdline_info +keymap +postscript +virtualedit
  304. +comments +langmap +printer +visual
  305. +conceal +libcall +profile +visualextra
  306. +cryptv +linebreak +python +viminfo
  307. +cscope +lispindent -python3 +vreplace
  308. +cursorbind +listcmds +quickfix +wildignore
  309. +cursorshape +localmap +reltime +wildmenu
  310. +dialog_con -lua +rightleft +windows
  311. +diff +menu -ruby +writebackup
  312. +digraphs +mksession +scrollbind -X11
  313. -dnd +modify_fname +signs -xfontset
  314. -ebcdic +mouse +smartindent -xim
  315. +emacs_tags -mouseshape -sniff -xsmp
  316. +eval +mouse_dec +startuptime -xterm_clipboard
  317. +ex_extra +mouse_gpm +statusline -xterm_save
  318. +extra_search -mouse_jsbterm -sun_workshop -xpm
  319. system vimrc file: "$VIM/vimrc"
  320. user vimrc file: "$HOME/.vimrc"
  321. 2nd user vimrc file: "~/.vim/vimrc"
  322. user exrc file: "$HOME/.exrc"
  323. fall-back for $VIM: "/usr/share/vim"
  324. 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
  325. 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
  326. iptables version
  327. iptables v1.4.21
  328. curl version
  329. 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
  330. wget version
  331. GNU Wget 1.15 built on linux-gnu.
  332. rsync version
  333. rsync version 3.1.0 protocol version 31
  334. gimme version
  335. v1.2.0
  336. nvm version
  337. 0.33.6
  338. perlbrew version
  339. /home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.80
  340. phpenv version
  341. rbenv 1.1.1-25-g6aa70b6
  342. rvm version
  343. rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
  344. default ruby version
  345. ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
  346. CouchDB version
  347. couchdb 1.6.1
  348. ElasticSearch version
  349. 5.5.0
  350. Installed Firefox version
  351. firefox 56.0.2
  352. MongoDB version
  353. MongoDB 3.4.10
  354. PhantomJS version
  355. 2.1.1
  356. Pre-installed PostgreSQL versions
  357. 9.2.24
  358. 9.3.20
  359. 9.4.15
  360. 9.5.10
  361. 9.6.6
  362. RabbitMQ Version
  363. 3.6.14
  364. Redis version
  365. redis-server 4.0.6
  366. riak version
  367. 2.2.3
  368. Pre-installed Go versions
  369. 1.7.4
  370. ant version
  371. Apache Ant(TM) version 1.9.3 compiled on April 8 2014
  372. mvn version
  373. Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)
  374. Maven home: /usr/local/maven-3.5.2
  375. Java version: 1.8.0_151, vendor: Oracle Corporation
  376. Java home: /usr/lib/jvm/java-8-oracle/jre
  377. Default locale: en_US, platform encoding: UTF-8
  378. OS name: "linux", version: "4.4.0-98-generic", arch: "amd64", family: "unix"
  379. gradle version
  380.  
  381. ------------------------------------------------------------
  382. Gradle 4.0.1
  383. ------------------------------------------------------------
  384.  
  385. Build time: 2017-07-07 14:02:41 UTC
  386. Revision: 38e5dc0f772daecca1d2681885d3d85414eb6826
  387.  
  388. Groovy: 2.4.11
  389. Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
  390. JVM: 1.8.0_151 (Oracle Corporation 25.151-b12)
  391. OS: Linux 4.4.0-98-generic amd64
  392.  
  393. lein version
  394. Leiningen 2.8.1 on Java 1.8.0_151 Java HotSpot(TM) 64-Bit Server VM
  395. Pre-installed Node.js versions
  396. v4.8.6
  397. v6.12.0
  398. v6.12.1
  399. v8.9
  400. v8.9.1
  401. phpenv versions
  402. system
  403. 5.6
  404. * 5.6.32 (set by /home/travis/.phpenv/version)
  405. 7.0
  406. 7.0.25
  407. 7.1
  408. 7.1.11
  409. hhvm
  410. hhvm-stable
  411. composer --version
  412. Composer version 1.5.2 2017-09-11 16:59:25
  413. Pre-installed Ruby versions
  414. ruby-2.2.7
  415. ruby-2.3.4
  416. ruby-2.4.1
  417. travis_fold:end:system_info
  418. 
  419. removed ‘/etc/apt/sources.list.d/basho_riak.list’
  420. Executing: /tmp/tmp.YoFXAjLWPF/gpg.1.sh --keyserver
  421. hkp://keyserver.ubuntu.com:80
  422. --recv
  423. EA312927
  424. gpg: requesting key EA312927 from hkp server keyserver.ubuntu.com
  425. gpg: key EA312927: public key "MongoDB 3.2 Release Signing Key <packaging@mongodb.com>" imported
  426. gpg: Total number processed: 1
  427. gpg: imported: 1 (RSA: 1)
  428. W: GPG error: http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 Release: The following signatures were invalid: KEYEXPIRED 1515625755
  429. W: The repository 'http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 Release' is not signed.
  430. W: http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg: Signature by key 15866BAFD9BCC4F3C1E0DFC7D69548E1C17EAB57 uses weak digest algorithm (SHA1)
  431.  
  432. 127.0.0.1 localhost nettuno travis vagrant
  433. 127.0.1.1 travis-job-42812f71-438e-46e3-a8ff-565487838dab travis-job-42812f71-438e-46e3-a8ff-565487838dab ip4-loopback trusty64
  434.  
  435. travis_fold:start:git.checkout
  436. travis_time:start:134cca90
  437. $ git clone --depth=50 --branch=master https://github.com/jupyterhub/binderhub.git jupyterhub/binderhub
  438. Cloning into 'jupyterhub/binderhub'...
  439.  
  440. travis_time:end:134cca90:start=1515628911609095728,finish=1515628912547391517,duration=938295789
  441. $ cd jupyterhub/binderhub
  442. $ git checkout -qf 4689ce6c4bcfb2fa35b7e85b7ffbf9ae325cb95e
  443. travis_fold:end:git.checkout
  444. travis_fold:start:services
  445. travis_time:start:207035e4
  446. $ sudo service docker start
  447. start: Job is already running: docker
  448.  
  449. travis_time:end:207035e4:start=1515628912576846721,finish=1515628912597428225,duration=20581504
  450. travis_fold:end:services
  451. 
  452. Setting environment variables from repository settings
  453. $ export encrypted_d8355cc3d845_key=[secure]
  454. $ export encrypted_d8355cc3d845_iv=[secure]
  455. $ export encrypted_e0a1711769d1_key=[secure]
  456. $ export encrypted_e0a1711769d1_iv=[secure]
  457.  
  458. Setting environment variables from .travis.yml
  459. $ export MINIKUBE_VERSION=0.24.1
  460. $ export KUBE_VERSION=1.8.0
  461. $ export CHANGE_MINIKUBE_NONE_USER=true
  462. $ export DOCKER_PASSWORD=[secure]
  463. $ export DOCKER_USERNAME=[secure]
  464. $ export TEST=main
  465.  
  466. travis_time:start:109557a0
  467. $ source ~/virtualenv/python3.6/bin/activate
  468.  
  469. travis_time:end:109557a0:start=1515628915614659567,finish=1515628915629416282,duration=14756715
  470. $ python --version
  471. Python 3.6.3
  472. $ pip --version
  473. pip 9.0.1 from /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (python 3.6)
  474. travis_fold:start:before_install
  475. travis_time:start:000c6189
  476. $ nvm install 8; nvm use 8
  477. Downloading and installing node v8.9.4...
  478. Downloading https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz...
  479. Computing checksum with sha256sum
  480. Checksums matched!
  481. Now using node v8.9.4 (npm v5.6.0)
  482. Now using node v8.9.4 (npm v5.6.0)
  483.  
  484. travis_time:end:000c6189:start=1515628916566931211,finish=1515628920342986466,duration=3776055255
  485. travis_fold:end:before_install
  486. travis_fold:start:install.1
  487. travis_time:start:0e66e560
  488. $ mkdir -p bin
  489.  
  490. travis_time:end:0e66e560:start=1515628920352123464,finish=1515628920358034553,duration=5911089
  491. travis_fold:end:install.1
  492. travis_fold:start:install.2
  493. travis_time:start:1416300f
  494. $ export PATH=$PWD/bin:$PATH
  495.  
  496. travis_time:end:1416300f:start=1515628920365445702,finish=1515628920370556403,duration=5110701
  497. travis_fold:end:install.2
  498. travis_fold:start:install.3
  499. travis_time:start:003e610c
  500. $ ./ci/install.sh
  501. +which nsenter
  502. +curl -L https://github.com/minrk/git-crypt-bin/releases/download/trusty/nsenter
  503. % Total % Received % Xferd Average Speed Time Time Time Current
  504. Dload Upload Total Spent Left Speed
  505.  
  506. 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
  507. 100 598 0 598 0 0 3258 0 --:--:-- --:--:-- --:--:-- 3267
  508.  
  509. 19 90162 19 17576 0 0 51878 0 0:00:01 --:--:-- 0:00:01 51878
  510. 100 90162 100 90162 0 0 197k 0 --:--:-- --:--:-- --:--:-- 662k
  511. +echo '5652bda3fbea6078896705130286b491b6b1885d7b13bda1dfc9bdfb08b49a2e nsenter'
  512. +shasum -a 256 -c -
  513. nsenter: OK
  514. +chmod +x nsenter
  515. +sudo mv nsenter /usr/local/bin/
  516. +echo 'installing kubectl'
  517. installing kubectl
  518. +curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubectl
  519. % Total % Received % Xferd Average Speed Time Time Time Current
  520. Dload Upload Total Spent Left Speed
  521.  
  522. 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
  523. 100 49.8M 100 49.8M 0 0 112M 0 --:--:-- --:--:-- --:--:-- 112M
  524. +chmod +x kubectl
  525. +mv kubectl bin/
  526. +echo 'installing minikube'
  527. installing minikube
  528. +curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.24.1/minikube-linux-amd64
  529. % Total % Received % Xferd Average Speed Time Time Time Current
  530. Dload Upload Total Spent Left Speed
  531.  
  532. 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
  533. 100 39.4M 100 39.4M 0 0 109M 0 --:--:-- --:--:-- --:--:-- 109M
  534. +chmod +x minikube
  535. +mv minikube bin/
  536. +echo 'starting minikube'
  537. starting minikube
  538. +sudo /home/travis/build/jupyterhub/binderhub/bin/minikube start --vm-driver=none --kubernetes-version=v1.8.0
  539. ========================================
  540. kubectl could not be found on your path. kubectl is a requirement for using minikube
  541. To install kubectl, please run the following:
  542.  
  543. 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/
  544.  
  545. To disable this message, run the following:
  546.  
  547. minikube config set WantKubectlDownloadMsg false
  548. ========================================
  549. Starting local Kubernetes v1.8.0 cluster...
  550. Starting VM...
  551. Getting VM IP address...
  552. Moving files into cluster...
  553. Downloading localkube binary
  554.  
  555. 0 B / 148.25 MB [-----------------------------------------------------] 0.00%
  556. 10.51 MB / 148.25 MB [===>-----------------------------------------] 7.09% 3s
  557. 22.51 MB / 148.25 MB [======>--------------------------------------] 15.19% 3s
  558. 35.43 MB / 148.25 MB [==========>----------------------------------] 23.90% 2s
  559. 48.83 MB / 148.25 MB [==============>------------------------------] 32.94% 1s
  560. 69.96 MB / 148.25 MB [=====================>-----------------------] 47.19% 1s
  561. 97.15 MB / 148.25 MB [=============================>---------------] 65.53% 0s
  562. 126.41 MB / 148.25 MB [=====================================>------] 85.27% 0s
  563. 148.25 MB / 148.25 MB [============================================] 100.00% 0s
  564.  
  565. 0 B / 65 B [----------------------------------------------------------] 0.00%
  566.  
  567. 65 B / 65 B [======================================================] 100.00% 0sSetting up certs...
  568. Connecting to cluster...
  569. Setting up kubeconfig...
  570. Starting cluster components...
  571. Kubectl is now configured to use the cluster.
  572. ===================
  573. WARNING: IT IS RECOMMENDED NOT TO RUN THE NONE DRIVER ON PERSONAL WORKSTATIONS
  574. The 'none' driver will run an insecure kubernetes apiserver as root that may leave the host vulnerable to CSRF attacks
  575.  
  576. Loading cached images from config file.
  577. +minikube update-context
  578. Kubeconfig IP correctly configured, pointing at 127.0.0.1
  579. +echo 'waiting for kubernetes'
  580. waiting for kubernetes
  581. +JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
  582. +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
  583. +grep -q Ready=True
  584. +sleep 1
  585. +grep -q Ready=True
  586. +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
  587. +sleep 1
  588. +grep -q Ready=True
  589. +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
  590. +sleep 1
  591. +grep -q Ready=True
  592. +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
  593. +sleep 1
  594. +grep -q Ready=True
  595. +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
  596. +sleep 1
  597. +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
  598. +grep -q Ready=True
  599. +sleep 1
  600. +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
  601. +grep -q Ready=True
  602. +sleep 1
  603. +grep -q Ready=True
  604. +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
  605. +sleep 1
  606. +kubectl get nodes -o 'jsonpath={range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'
  607. +grep -q Ready=True
  608. +echo 'installing helm'
  609. installing helm
  610. +curl -ssL https://storage.googleapis.com/kubernetes-helm/helm-v2.7.2-linux-amd64.tar.gz
  611. +tar -xz -C bin --strip-components 1 linux-amd64/helm
  612. +chmod +x bin/helm
  613. +helm init
  614. Creating /home/travis/.helm
  615. Creating /home/travis/.helm/repository
  616. Creating /home/travis/.helm/repository/cache
  617. Creating /home/travis/.helm/repository/local
  618. Creating /home/travis/.helm/plugins
  619. Creating /home/travis/.helm/starters
  620. Creating /home/travis/.helm/cache/archive
  621. Creating /home/travis/.helm/repository/repositories.yaml
  622. Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
  623. Adding local repo with URL: http://127.0.0.1:8879/charts
  624. $HELM_HOME has been configured at /home/travis/.helm.
  625.  
  626. Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
  627. Happy Helming!
  628. +echo 'waiting for tiller'
  629. waiting for tiller
  630. +helm version
  631. Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
  632. Error: cannot connect to Tiller
  633. +sleep 1
  634. +helm version
  635. Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
  636. Error: cannot connect to Tiller
  637. +sleep 1
  638. +helm version
  639. Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
  640. Error: cannot connect to Tiller
  641. +sleep 1
  642. +helm version
  643. Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
  644. Server: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
  645. +helm version
  646. Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
  647. Server: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
  648. +echo 'installing git-crypt'
  649. installing git-crypt
  650. +curl -L https://github.com/minrk/git-crypt-bin/releases/download/0.5.0/git-crypt
  651. % Total % Received % Xferd Average Speed Time Time Time Current
  652. Dload Upload Total Spent Left Speed
  653.  
  654. 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
  655. 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
  656. 100 600 0 600 0 0 3627 0 --:--:-- --:--:-- --:--:-- 3614
  657.  
  658. 100 197k 100 197k 0 0 342k 0 --:--:-- --:--:-- --:--:-- 342k
  659. +echo '46c288cc849c23a28239de3386c6050e5c7d7acd50b1d0248d86e6efff09c61b bin/git-crypt'
  660. +shasum -a 256 -c -
  661. bin/git-crypt: OK
  662. +chmod +x bin/git-crypt
  663.  
  664. travis_time:end:003e610c:start=1515628920378300122,finish=1515628960191513908,duration=39813213786
  665. travis_fold:end:install.3
  666. travis_fold:start:install.4
  667. travis_time:start:1167350a
  668. $ pip install --no-cache-dir . -r dev-requirements.txt
  669. Processing /home/travis/build/jupyterhub/binderhub
  670. Collecting beautifulsoup4 (from -r dev-requirements.txt (line 1))
  671. Downloading beautifulsoup4-4.6.0-py3-none-any.whl (86kB)
  672. Collecting codecov (from -r dev-requirements.txt (line 2))
  673. Downloading codecov-2.0.13-py2.py3-none-any.whl
  674. Collecting html5lib (from -r dev-requirements.txt (line 3))
  675. Downloading html5lib-1.0.1-py2.py3-none-any.whl (117kB)
  676. Requirement already satisfied: pytest in /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (from -r dev-requirements.txt (line 4))
  677. Collecting pytest-cov (from -r dev-requirements.txt (line 5))
  678. Downloading pytest_cov-2.5.1-py2.py3-none-any.whl
  679. Collecting pytest-tornado (from -r dev-requirements.txt (line 6))
  680. Downloading pytest_tornado-0.4.5-py2.py3-none-any.whl
  681. Collecting requests (from -r dev-requirements.txt (line 7))
  682. Downloading requests-2.18.4-py2.py3-none-any.whl (88kB)
  683. Collecting ruamel.yaml>=0.15 (from -r dev-requirements.txt (line 8))
  684. Downloading ruamel.yaml-0.15.35-cp36-cp36m-manylinux1_x86_64.whl (558kB)
  685. Collecting kubernetes==3.* (from binderhub==0.1.0.dev0)
  686. Downloading kubernetes-3.0.0-py2.py3-none-any.whl (815kB)
  687. Collecting escapism (from binderhub==0.1.0.dev0)
  688. Downloading escapism-1.0.0-py2.py3-none-any.whl
  689. Collecting tornado (from binderhub==0.1.0.dev0)
  690. Downloading tornado-4.5.3.tar.gz (484kB)
  691. Collecting traitlets (from binderhub==0.1.0.dev0)
  692. Downloading traitlets-4.3.2-py2.py3-none-any.whl (74kB)
  693. Collecting docker (from binderhub==0.1.0.dev0)
  694. Downloading docker-2.7.0-py2.py3-none-any.whl (119kB)
  695. Collecting jinja2 (from binderhub==0.1.0.dev0)
  696. Downloading Jinja2-2.10-py2.py3-none-any.whl (126kB)
  697. Collecting prometheus_client (from binderhub==0.1.0.dev0)
  698. Downloading prometheus_client-0.1.0.tar.gz
  699. Collecting coverage (from codecov->-r dev-requirements.txt (line 2))
  700. Downloading coverage-4.4.2-cp36-cp36m-manylinux1_x86_64.whl (197kB)
  701. Collecting webencodings (from html5lib->-r dev-requirements.txt (line 3))
  702. Downloading webencodings-0.5.1-py2.py3-none-any.whl
  703. 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))
  704. 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))
  705. 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))
  706. 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))
  707. Requirement already satisfied: setuptools in /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (from pytest->-r dev-requirements.txt (line 4))
  708. Collecting chardet<3.1.0,>=3.0.2 (from requests->-r dev-requirements.txt (line 7))
  709. Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)
  710. Collecting idna<2.7,>=2.5 (from requests->-r dev-requirements.txt (line 7))
  711. Downloading idna-2.6-py2.py3-none-any.whl (56kB)
  712. Collecting certifi>=2017.4.17 (from requests->-r dev-requirements.txt (line 7))
  713. Downloading certifi-2017.11.5-py2.py3-none-any.whl (330kB)
  714. Collecting urllib3<1.23,>=1.21.1 (from requests->-r dev-requirements.txt (line 7))
  715. Downloading urllib3-1.22-py2.py3-none-any.whl (132kB)
  716. Collecting ipaddress>=1.0.17 (from kubernetes==3.*->binderhub==0.1.0.dev0)
  717. Downloading ipaddress-1.0.19.tar.gz
  718. Collecting python-dateutil>=2.5.3 (from kubernetes==3.*->binderhub==0.1.0.dev0)
  719. Downloading python_dateutil-2.6.1-py2.py3-none-any.whl (194kB)
  720. Collecting pyyaml>=3.12 (from kubernetes==3.*->binderhub==0.1.0.dev0)
  721. Downloading PyYAML-3.12.tar.gz (253kB)
  722. Collecting websocket-client<=0.40.0,>=0.32.0 (from kubernetes==3.*->binderhub==0.1.0.dev0)
  723. Downloading websocket_client-0.40.0.tar.gz (196kB)
  724. Collecting google-auth>=1.0.1 (from kubernetes==3.*->binderhub==0.1.0.dev0)
  725. Downloading google_auth-1.3.0-py2.py3-none-any.whl (61kB)
  726. Collecting ipython-genutils (from traitlets->binderhub==0.1.0.dev0)
  727. Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl
  728. Collecting decorator (from traitlets->binderhub==0.1.0.dev0)
  729. Downloading decorator-4.1.2-py2.py3-none-any.whl
  730. Collecting docker-pycreds>=0.2.1 (from docker->binderhub==0.1.0.dev0)
  731. Downloading docker_pycreds-0.2.1-py2.py3-none-any.whl
  732. Collecting MarkupSafe>=0.23 (from jinja2->binderhub==0.1.0.dev0)
  733. Downloading MarkupSafe-1.0.tar.gz
  734. Collecting cachetools>=2.0.0 (from google-auth>=1.0.1->kubernetes==3.*->binderhub==0.1.0.dev0)
  735. Downloading cachetools-2.0.1-py2.py3-none-any.whl
  736. Collecting pyasn1-modules>=0.2.1 (from google-auth>=1.0.1->kubernetes==3.*->binderhub==0.1.0.dev0)
  737. Downloading pyasn1_modules-0.2.1-py2.py3-none-any.whl (60kB)
  738. Collecting rsa>=3.1.4 (from google-auth>=1.0.1->kubernetes==3.*->binderhub==0.1.0.dev0)
  739. Downloading rsa-3.4.2-py2.py3-none-any.whl (46kB)
  740. 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)
  741. Downloading pyasn1-0.4.2-py2.py3-none-any.whl (71kB)
  742. 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
  743. Running setup.py install for tornado: started
  744. Running setup.py install for tornado: finished with status 'done'
  745. Running setup.py install for ipaddress: started
  746. Running setup.py install for ipaddress: finished with status 'done'
  747. Running setup.py install for pyyaml: started
  748. Running setup.py install for pyyaml: finished with status 'done'
  749. Running setup.py install for websocket-client: started
  750. Running setup.py install for websocket-client: finished with status 'done'
  751. Running setup.py install for MarkupSafe: started
  752. Running setup.py install for MarkupSafe: finished with status 'done'
  753. Running setup.py install for prometheus-client: started
  754. Running setup.py install for prometheus-client: finished with status 'done'
  755. Running setup.py install for binderhub: started
  756. Running setup.py install for binderhub: finished with status 'done'
  757. 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
  758.  
  759. travis_time:end:1167350a:start=1515628960196996740,finish=1515629016485053304,duration=56288056564
  760. travis_fold:end:install.4
  761. travis_fold:start:install.5
  762. travis_time:start:1d489a00
  763. $ npm install
  764.  
  765. > uglifyjs-webpack-plugin@0.4.6 postinstall /home/travis/build/jupyterhub/binderhub/node_modules/uglifyjs-webpack-plugin
  766. > node lib/post_install.js
  767.  
  768. npm notice created a lockfile as package-lock.json. You should commit this file.
  769. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules/fsevents):
  770. npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
  771.  
  772. added 408 packages in 14.674s
  773.  
  774. travis_time:end:1d489a00:start=1515629016491905311,finish=1515629031714862829,duration=15222957518
  775. travis_fold:end:install.5
  776. travis_fold:start:install.6
  777. travis_time:start:0c074304
  778. $ npm run webpack
  779.  
  780. > binderhub@0.1.0 webpack /home/travis/build/jupyterhub/binderhub
  781. > webpack
  782.  
  783. Hash: 2d37264ae20a5a8e177a
  784. Version: webpack 3.10.0
  785. Time: 3695ms
  786. Asset Size Chunks Chunk Names
  787. cc10b51ebde2156baf4012fbc9b3a0c1.woff 121 kB [emitted]
  788. f4769f9bdb7466be65088239c12046d1.eot 20.1 kB [emitted]
  789. fa2772327f55d8198301fdb8bcfc8158.woff 23.4 kB [emitted]
  790. e18bbf611f2a2e43afc071aa2f4e1512.ttf 45.4 kB [emitted]
  791. 89889688147bd7575d6327160d64e760.svg 109 kB [emitted]
  792. a493884b8da5e40a49761e45e26632b7.woff 120 kB [emitted]
  793. 448c34a56d699c29117adc64c43affeb.woff2 18 kB [emitted]
  794. 4cf6f681b05ddc6375e51c804a496fe2.woff 117 kB [emitted]
  795. bundle.js 602 kB 0 [emitted] [big] main
  796. styles.css 185 kB 0 [emitted] main
  797. bundle.js.map 748 kB 0 [emitted] main
  798. styles.css.map 87 bytes 0 [emitted] main
  799. [18] ./js/index.js 10.7 kB {0} [built]
  800. [34] /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/addons ^\.\/.*$ 734 bytes {0} [built]
  801. [62] ./index.css 41 bytes {0} [built]
  802. [63] ./js/vendor/xterm/addons/fit.js 2.94 kB {0} [built]
  803. [77] /home/travis/build/jupyterhub/binderhub/node_modules/css-loader!./index.css 5.33 kB [built]
  804. [78] ./fonts/clearsans/WOFF/ClearSans-Thin.woff 83 bytes [built]
  805. [79] ./fonts/clearsans/WOFF/ClearSans-Light.woff 83 bytes [built]
  806. [80] ./fonts/clearsans/WOFF/ClearSans-Bold.woff 83 bytes [built]
  807. + 73 hidden modules
  808.  
  809. WARNING in /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/addons/search/SearchHelper.js.map
  810. Module parse failed: Unexpected token (1:10)
  811. You may need an appropriate loader to handle this file type.
  812. | {"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":"."}
  813. @ /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/addons ^\.\/.*$
  814. @ /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/xterm.js
  815. @ ./js/index.js
  816.  
  817. WARNING in /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/addons/search/search.js.map
  818. Module parse failed: Unexpected token (1:10)
  819. You may need an appropriate loader to handle this file type.
  820. | {"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":"."}
  821. @ /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/addons ^\.\/.*$
  822. @ /home/travis/build/jupyterhub/binderhub/node_modules/xterm/lib/xterm.js
  823. @ ./js/index.js
  824. 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:
  825. 2 modules
  826. Child extract-text-webpack-plugin ../../node_modules/extract-text-webpack-plugin/dist ../../node_modules/css-loader/index.js!../../node_modules/xterm/lib/xterm.css:
  827. 2 modules
  828. 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:
  829. 2 modules
  830. 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:
  831. 5 assets
  832. 8 modules
  833. Child extract-text-webpack-plugin ../../node_modules/extract-text-webpack-plugin/dist ../../node_modules/css-loader/index.js!index.css:
  834. 3 assets
  835. [0] /home/travis/build/jupyterhub/binderhub/node_modules/css-loader!./index.css 5.33 kB {0} [built]
  836. [3] ./fonts/clearsans/WOFF/ClearSans-Thin.woff 83 bytes {0} [built]
  837. [4] ./fonts/clearsans/WOFF/ClearSans-Light.woff 83 bytes {0} [built]
  838. [5] ./fonts/clearsans/WOFF/ClearSans-Bold.woff 83 bytes {0} [built]
  839. + 2 hidden modules
  840.  
  841. travis_time:end:0c074304:start=1515629031724091227,finish=1515629036351004431,duration=4626913204
  842. travis_fold:end:install.6
  843. travis_time:start:00e2e89c
  844. $ export BINDER_TEST_NAMESPACE=binder-test-$TEST
  845.  
  846. travis_time:end:00e2e89c:start=1515629036361515788,finish=1515629036367800713,duration=6284925
  847. 
  848. The command "export BINDER_TEST_NAMESPACE=binder-test-$TEST" exited with 0.
  849. travis_time:start:0a49d8e4
  850. $ ./ci/test-$TEST
  851. +./testing/minikube/install-hub
  852. "jupyterhub" has been added to your repositories
  853. Hang tight while we grab the latest from your chart repositories...
  854. ...Skip local chart repository
  855. ...Successfully got an update from the "jupyterhub" chart repository
  856. ...Successfully got an update from the "stable" chart repository
  857. Update Complete. ⎈ Happy Helming!⎈
  858. NAME: binder-test-hub
  859. LAST DEPLOYED: Thu Jan 11 00:03:58 2018
  860. NAMESPACE: binder-test-main
  861. STATUS: DEPLOYED
  862.  
  863. RESOURCES:
  864. ==> v1/Secret
  865. NAME TYPE DATA AGE
  866. hub-secret Opaque 3 1s
  867.  
  868. ==> v1/ConfigMap
  869. NAME DATA AGE
  870. hub-config 22 1s
  871. nginx-proxy-config 1 1s
  872.  
  873. ==> v1/Service
  874. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  875. hub ClusterIP 10.111.40.102 <none> 8081/TCP 1s
  876. proxy-public NodePort 10.104.198.37 <none> 80:30123/TCP,443:31254/TCP 1s
  877. proxy-api ClusterIP 10.97.169.3 <none> 8001/TCP 1s
  878. proxy-http ClusterIP 10.102.221.83 <none> 8000/TCP 1s
  879.  
  880. ==> v1beta1/Deployment
  881. NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
  882. hub 1 1 1 0 1s
  883. proxy 1 1 1 0 1s
  884.  
  885. ==> v1/Pod(related)
  886. NAME READY STATUS RESTARTS AGE
  887. hub-595c8bd78c-rrnkj 0/1 ContainerCreating 0 1s
  888. proxy-78c4df677f-s8xkw 0/2 ContainerCreating 0 1s
  889.  
  890.  
  891. NOTES:
  892. Thank you for installing JupyterHub!
  893.  
  894. Your release is named binder-test-hub and installed into the namespace binder-test-main.
  895.  
  896. You can find if the hub and proxy is ready by doing:
  897.  
  898. kubectl --namespace=binder-test-main get pod
  899.  
  900. and watching for both those pods to be in status 'Ready'.
  901.  
  902. You can find the public IP of the JupyterHub by doing:
  903.  
  904. kubectl --namespace=binder-test-main get svc proxy-public
  905.  
  906. It might take a few minutes for it to appear!
  907.  
  908. Note that this is still an alpha release! If you have questions, feel free to
  909. 1. Come chat with us at https://gitter.im/jupyterhub/jupyterhub
  910. 2. File issues at https://github.com/jupyterhub/zero-to-jupyterhub-k8s/issues
  911.  
  912.  
  913. 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
  914.  
  915. Waiting until Hub is up
  916. Pending hub-595c8bd78c-rrnkj
  917. Pending proxy-78c4df677f-s8xkw
  918. Pending hub-595c8bd78c-rrnkj
  919. Pending proxy-78c4df677f-s8xkw
  920. Pending hub-595c8bd78c-rrnkj
  921. Pending proxy-78c4df677f-s8xkw
  922. Pending hub-595c8bd78c-rrnkj
  923. Pending proxy-78c4df677f-s8xkw
  924. Pending hub-595c8bd78c-rrnkj
  925. Pending proxy-78c4df677f-s8xkw
  926. Pending hub-595c8bd78c-rrnkj
  927. Pending proxy-78c4df677f-s8xkw
  928. Pending hub-595c8bd78c-rrnkj
  929. Pending proxy-78c4df677f-s8xkw
  930. Pending hub-595c8bd78c-rrnkj
  931. Pending proxy-78c4df677f-s8xkw
  932. Pending hub-595c8bd78c-rrnkj
  933. Pending proxy-78c4df677f-s8xkw
  934. Pending hub-595c8bd78c-rrnkj
  935. Pending proxy-78c4df677f-s8xkw
  936. Pending hub-595c8bd78c-rrnkj
  937. Pending proxy-78c4df677f-s8xkw
  938. Pending hub-595c8bd78c-rrnkj
  939. Pending proxy-78c4df677f-s8xkw
  940. Pending hub-595c8bd78c-rrnkj
  941. Pending proxy-78c4df677f-s8xkw
  942. Pending hub-595c8bd78c-rrnkj
  943. Pending proxy-78c4df677f-s8xkw
  944. Pending hub-595c8bd78c-rrnkj
  945. Pending proxy-78c4df677f-s8xkw
  946. Pending hub-595c8bd78c-rrnkj
  947. Pending proxy-78c4df677f-s8xkw
  948. Pending hub-595c8bd78c-rrnkj
  949. Pending proxy-78c4df677f-s8xkw
  950. Pending hub-595c8bd78c-rrnkj
  951. Pending proxy-78c4df677f-s8xkw
  952. Pending hub-595c8bd78c-rrnkj
  953. Pending proxy-78c4df677f-s8xkw
  954. Pending hub-595c8bd78c-rrnkj
  955. Pending proxy-78c4df677f-s8xkw
  956. Pending hub-595c8bd78c-rrnkj
  957. Pending proxy-78c4df677f-s8xkw
  958. Pending hub-595c8bd78c-rrnkj
  959. Pending proxy-78c4df677f-s8xkw
  960. Pending hub-595c8bd78c-rrnkj
  961. Pending proxy-78c4df677f-s8xkw
  962. Pending hub-595c8bd78c-rrnkj
  963. Pending proxy-78c4df677f-s8xkw
  964. Pending hub-595c8bd78c-rrnkj
  965. Pending proxy-78c4df677f-s8xkw
  966. Pending hub-595c8bd78c-rrnkj
  967. Pending proxy-78c4df677f-s8xkw
  968. Pending hub-595c8bd78c-rrnkj
  969. Pending proxy-78c4df677f-s8xkw
  970. Pending hub-595c8bd78c-rrnkj
  971. Pending proxy-78c4df677f-s8xkw
  972. Pending hub-595c8bd78c-rrnkj
  973. Pending proxy-78c4df677f-s8xkw
  974. Pending hub-595c8bd78c-rrnkj
  975. Pending proxy-78c4df677f-s8xkw
  976. Running hub-595c8bd78c-rrnkj
  977. Pending proxy-78c4df677f-s8xkw
  978. Running hub-595c8bd78c-rrnkj
  979. Pending proxy-78c4df677f-s8xkw
  980. Running hub-595c8bd78c-rrnkj
  981. Pending proxy-78c4df677f-s8xkw
  982. Running hub-595c8bd78c-rrnkj
  983. Pending proxy-78c4df677f-s8xkw
  984. Running hub-595c8bd78c-rrnkj
  985. Pending proxy-78c4df677f-s8xkw
  986. Running hub-595c8bd78c-rrnkj
  987. Pending proxy-78c4df677f-s8xkw
  988. Running hub-595c8bd78c-rrnkj
  989. Pending proxy-78c4df677f-s8xkw
  990. Running hub-595c8bd78c-rrnkj
  991. Pending proxy-78c4df677f-s8xkw
  992. Running hub-595c8bd78c-rrnkj
  993. Pending proxy-78c4df677f-s8xkw
  994. Running hub-595c8bd78c-rrnkj
  995. Pending proxy-78c4df677f-s8xkw
  996. Running hub-595c8bd78c-rrnkj
  997. Pending proxy-78c4df677f-s8xkw
  998. Running hub-595c8bd78c-rrnkj
  999. Running proxy-78c4df677f-s8xkw
  1000. Hub is up
  1001. +sleep 5
  1002. +pytest -vsx --cov binderhub
  1003. ============================= test session starts ==============================
  1004. 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
  1005. cachedir: .cache
  1006. rootdir: /home/travis/build/jupyterhub/binderhub, inifile:
  1007. plugins: tornado-0.4.5, cov-2.5.1
  1008. collecting ... collected 26 items
  1009.  
  1010. binderhub/tests/test_app.py::test_help PASSED [ 3%]
  1011. binderhub/tests/test_app.py::test_help_all PASSED [ 7%]
  1012. 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)
  1013. ERROR [ 11%]
  1014.  
  1015. ----------- coverage: platform linux, python 3.6.3-final-0 -----------
  1016. Name Stmts Miss Cover
  1017. ------------------------------------------------
  1018. binderhub/__init__.py 1 0 100%
  1019. binderhub/__main__.py 3 0 100%
  1020. binderhub/_version.py 1 0 100%
  1021. binderhub/app.py 98 44 55%
  1022. binderhub/base.py 37 26 30%
  1023. binderhub/build.py 90 75 17%
  1024. binderhub/builder.py 167 135 19%
  1025. binderhub/launcher.py 65 44 32%
  1026. binderhub/main.py 23 13 43%
  1027. binderhub/metrics.py 6 2 67%
  1028. binderhub/registry.py 26 18 31%
  1029. binderhub/repoproviders.py 215 145 33%
  1030. binderhub/utils.py 27 19 30%
  1031. ------------------------------------------------
  1032. TOTAL 759 521 31%
  1033.  
  1034.  
  1035. ==================================== ERRORS ====================================
  1036. ERROR at setup of test_build[gh/binderhub-ci-repos/requirements/d687a7f9e6946ab01ef2baa7bd6d5b73c6e904fd]
  1037.  
  1038. self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
  1039. conn = <urllib3.connection.HTTPConnection object at 0x7f69212ab828>
  1040. method = 'GET', url = '/'
  1041. timeout = <urllib3.util.timeout.Timeout object at 0x7f69212ab710>
  1042. chunked = False
  1043. httplib_request_kw = {'body': None, 'headers': {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}}
  1044. timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f69212ab6a0>
  1045. read_timeout = 5
  1046.  
  1047. def _make_request(self, conn, method, url, timeout=_Default, chunked=False,
  1048. **httplib_request_kw):
  1049. """
  1050. Perform a request on a given urllib connection object taken from our
  1051. pool.
  1052.  
  1053. :param conn:
  1054. a connection from one of our connection pools
  1055.  
  1056. :param timeout:
  1057. Socket timeout in seconds for the request. This can be a
  1058. float or integer, which will set the same timeout value for
  1059. the socket connect and the socket read, or an instance of
  1060. :class:`urllib3.util.Timeout`, which gives you more fine-grained
  1061. control over your timeouts.
  1062. """
  1063. self.num_requests += 1
  1064.  
  1065. timeout_obj = self._get_timeout(timeout)
  1066. timeout_obj.start_connect()
  1067. conn.timeout = timeout_obj.connect_timeout
  1068.  
  1069. # Trigger any extra validation we need to do.
  1070. try:
  1071. self._validate_conn(conn)
  1072. except (SocketTimeout, BaseSSLError) as e:
  1073. # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
  1074. self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
  1075. raise
  1076.  
  1077. # conn.request() calls httplib.*.request, not the method in
  1078. # urllib3.request. It also calls makefile (recv) on the socket.
  1079. if chunked:
  1080. conn.request_chunked(method, url, **httplib_request_kw)
  1081. else:
  1082. conn.request(method, url, **httplib_request_kw)
  1083.  
  1084. # Reset the timeout for the recv() on the socket
  1085. read_timeout = timeout_obj.read_timeout
  1086.  
  1087. # App Engine doesn't have a sock attr
  1088. if getattr(conn, 'sock', None):
  1089. # In Python 3 socket.py will catch EAGAIN and return None when you
  1090. # try and read into the file pointer created by http.client, which
  1091. # instead raises a BadStatusLine exception. Instead of catching
  1092. # the exception and assuming all BadStatusLine exceptions are read
  1093. # timeouts, check for a zero timeout before making the request.
  1094. if read_timeout == 0:
  1095. raise ReadTimeoutError(
  1096. self, url, "Read timed out. (read timeout=%s)" % read_timeout)
  1097. if read_timeout is Timeout.DEFAULT_TIMEOUT:
  1098. conn.sock.settimeout(socket.getdefaulttimeout())
  1099. else: # None or a value
  1100. conn.sock.settimeout(read_timeout)
  1101.  
  1102. # Receive the response from the server
  1103. try:
  1104. try: # Python 2.7, use buffering of HTTP responses
  1105. httplib_response = conn.getresponse(buffering=True)
  1106. except TypeError: # Python 2.6 and older, Python 3
  1107. try:
  1108. httplib_response = conn.getresponse()
  1109. except Exception as e:
  1110. # Remove the TypeError from the exception chain in Python 3;
  1111. # otherwise it looks like a programming error was the cause.
  1112. > six.raise_from(e, None)
  1113.  
  1114. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:387:
  1115. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1116.  
  1117. value = timeout('timed out',), from_value = None
  1118.  
  1119. > ???
  1120.  
  1121. <string>:2:
  1122. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1123.  
  1124. self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
  1125. conn = <urllib3.connection.HTTPConnection object at 0x7f69212ab828>
  1126. method = 'GET', url = '/'
  1127. timeout = <urllib3.util.timeout.Timeout object at 0x7f69212ab710>
  1128. chunked = False
  1129. httplib_request_kw = {'body': None, 'headers': {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}}
  1130. timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f69212ab6a0>
  1131. read_timeout = 5
  1132.  
  1133. def _make_request(self, conn, method, url, timeout=_Default, chunked=False,
  1134. **httplib_request_kw):
  1135. """
  1136. Perform a request on a given urllib connection object taken from our
  1137. pool.
  1138.  
  1139. :param conn:
  1140. a connection from one of our connection pools
  1141.  
  1142. :param timeout:
  1143. Socket timeout in seconds for the request. This can be a
  1144. float or integer, which will set the same timeout value for
  1145. the socket connect and the socket read, or an instance of
  1146. :class:`urllib3.util.Timeout`, which gives you more fine-grained
  1147. control over your timeouts.
  1148. """
  1149. self.num_requests += 1
  1150.  
  1151. timeout_obj = self._get_timeout(timeout)
  1152. timeout_obj.start_connect()
  1153. conn.timeout = timeout_obj.connect_timeout
  1154.  
  1155. # Trigger any extra validation we need to do.
  1156. try:
  1157. self._validate_conn(conn)
  1158. except (SocketTimeout, BaseSSLError) as e:
  1159. # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
  1160. self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
  1161. raise
  1162.  
  1163. # conn.request() calls httplib.*.request, not the method in
  1164. # urllib3.request. It also calls makefile (recv) on the socket.
  1165. if chunked:
  1166. conn.request_chunked(method, url, **httplib_request_kw)
  1167. else:
  1168. conn.request(method, url, **httplib_request_kw)
  1169.  
  1170. # Reset the timeout for the recv() on the socket
  1171. read_timeout = timeout_obj.read_timeout
  1172.  
  1173. # App Engine doesn't have a sock attr
  1174. if getattr(conn, 'sock', None):
  1175. # In Python 3 socket.py will catch EAGAIN and return None when you
  1176. # try and read into the file pointer created by http.client, which
  1177. # instead raises a BadStatusLine exception. Instead of catching
  1178. # the exception and assuming all BadStatusLine exceptions are read
  1179. # timeouts, check for a zero timeout before making the request.
  1180. if read_timeout == 0:
  1181. raise ReadTimeoutError(
  1182. self, url, "Read timed out. (read timeout=%s)" % read_timeout)
  1183. if read_timeout is Timeout.DEFAULT_TIMEOUT:
  1184. conn.sock.settimeout(socket.getdefaulttimeout())
  1185. else: # None or a value
  1186. conn.sock.settimeout(read_timeout)
  1187.  
  1188. # Receive the response from the server
  1189. try:
  1190. try: # Python 2.7, use buffering of HTTP responses
  1191. httplib_response = conn.getresponse(buffering=True)
  1192. except TypeError: # Python 2.6 and older, Python 3
  1193. try:
  1194. > httplib_response = conn.getresponse()
  1195.  
  1196. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:383:
  1197. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1198.  
  1199. self = <urllib3.connection.HTTPConnection object at 0x7f69212ab828>
  1200.  
  1201. def getresponse(self):
  1202. """Get the response from the server.
  1203.  
  1204. If the HTTPConnection is in the correct state, returns an
  1205. instance of HTTPResponse or of whatever object is returned by
  1206. the response_class variable.
  1207.  
  1208. If a request has not been sent or if a previous response has
  1209. not be handled, ResponseNotReady is raised. If the HTTP
  1210. response indicates that the connection should be closed, then
  1211. it will be closed before the response is returned. When the
  1212. connection is closed, the underlying socket is closed.
  1213. """
  1214.  
  1215. # if a prior response has been completed, then forget about it.
  1216. if self.__response and self.__response.isclosed():
  1217. self.__response = None
  1218.  
  1219. # if a prior response exists, then it must be completed (otherwise, we
  1220. # cannot read this response's header to determine the connection-close
  1221. # behavior)
  1222. #
  1223. # note: if a prior response existed, but was connection-close, then the
  1224. # socket and response were made independent of this HTTPConnection
  1225. # object since a new request requires that we open a whole new
  1226. # connection
  1227. #
  1228. # this means the prior response had one of two states:
  1229. # 1) will_close: this connection was reset and the prior socket and
  1230. # response operate independently
  1231. # 2) persistent: the response was retained and we await its
  1232. # isclosed() status to become true.
  1233. #
  1234. if self.__state != _CS_REQ_SENT or self.__response:
  1235. raise ResponseNotReady(self.__state)
  1236.  
  1237. if self.debuglevel > 0:
  1238. response = self.response_class(self.sock, self.debuglevel,
  1239. method=self._method)
  1240. else:
  1241. response = self.response_class(self.sock, method=self._method)
  1242.  
  1243. try:
  1244. try:
  1245. > response.begin()
  1246.  
  1247. /opt/python/3.6.3/lib/python3.6/http/client.py:1331:
  1248. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1249.  
  1250. self = <http.client.HTTPResponse object at 0x7f69212ab748>
  1251.  
  1252. def begin(self):
  1253. if self.headers is not None:
  1254. # we've already started reading the response
  1255. return
  1256.  
  1257. # read until we get a non-100 response
  1258. while True:
  1259. > version, status, reason = self._read_status()
  1260.  
  1261. /opt/python/3.6.3/lib/python3.6/http/client.py:297:
  1262. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1263.  
  1264. self = <http.client.HTTPResponse object at 0x7f69212ab748>
  1265.  
  1266. def _read_status(self):
  1267. > line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  1268.  
  1269. /opt/python/3.6.3/lib/python3.6/http/client.py:258:
  1270. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1271.  
  1272. self = <socket.SocketIO object at 0x7f69212ab8d0>
  1273. b = <memory at 0x7f6921213048>
  1274.  
  1275. def readinto(self, b):
  1276. """Read up to len(b) bytes into the writable buffer *b* and return
  1277. the number of bytes read. If the socket is non-blocking and no bytes
  1278. are available, None is returned.
  1279.  
  1280. If *b* is non-empty, a 0 return value indicates that the connection
  1281. was shutdown at the other end.
  1282. """
  1283. self._checkClosed()
  1284. self._checkReadable()
  1285. if self._timeout_occurred:
  1286. raise OSError("cannot read from timed out object")
  1287. while True:
  1288. try:
  1289. > return self._sock.recv_into(b)
  1290. E socket.timeout: timed out
  1291.  
  1292. /opt/python/3.6.3/lib/python3.6/socket.py:586: timeout
  1293.  
  1294. During handling of the above exception, another exception occurred:
  1295.  
  1296. self = <requests.adapters.HTTPAdapter object at 0x7f6921200828>
  1297. request = <PreparedRequest [GET]>, stream = False
  1298. timeout = <urllib3.util.timeout.Timeout object at 0x7f6921200a20>, verify = True
  1299. cert = None, proxies = OrderedDict()
  1300.  
  1301. def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
  1302. """Sends PreparedRequest object. Returns Response object.
  1303.  
  1304. :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
  1305. :param stream: (optional) Whether to stream the request content.
  1306. :param timeout: (optional) How long to wait for the server to send
  1307. data before giving up, as a float, or a :ref:`(connect timeout,
  1308. read timeout) <timeouts>` tuple.
  1309. :type timeout: float or tuple or urllib3 Timeout object
  1310. :param verify: (optional) Either a boolean, in which case it controls whether
  1311. we verify the server's TLS certificate, or a string, in which case it
  1312. must be a path to a CA bundle to use
  1313. :param cert: (optional) Any user-provided SSL certificate to be trusted.
  1314. :param proxies: (optional) The proxies dictionary to apply to the request.
  1315. :rtype: requests.Response
  1316. """
  1317.  
  1318. conn = self.get_connection(request.url, proxies)
  1319.  
  1320. self.cert_verify(conn, request.url, verify, cert)
  1321. url = self.request_url(request, proxies)
  1322. self.add_headers(request)
  1323.  
  1324. chunked = not (request.body is None or 'Content-Length' in request.headers)
  1325.  
  1326. if isinstance(timeout, tuple):
  1327. try:
  1328. connect, read = timeout
  1329. timeout = TimeoutSauce(connect=connect, read=read)
  1330. except ValueError as e:
  1331. # this may raise a string formatting error.
  1332. err = ("Invalid timeout {0}. Pass a (connect, read) "
  1333. "timeout tuple, or a single float to set "
  1334. "both timeouts to the same value".format(timeout))
  1335. raise ValueError(err)
  1336. elif isinstance(timeout, TimeoutSauce):
  1337. pass
  1338. else:
  1339. timeout = TimeoutSauce(connect=timeout, read=timeout)
  1340.  
  1341. try:
  1342. if not chunked:
  1343. resp = conn.urlopen(
  1344. method=request.method,
  1345. url=url,
  1346. body=request.body,
  1347. headers=request.headers,
  1348. redirect=False,
  1349. assert_same_host=False,
  1350. preload_content=False,
  1351. decode_content=False,
  1352. retries=self.max_retries,
  1353. > timeout=timeout
  1354. )
  1355.  
  1356. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/adapters.py:440:
  1357. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1358.  
  1359. self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
  1360. method = 'GET', url = '/', body = None
  1361. headers = {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
  1362. retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
  1363. redirect = False, assert_same_host = False
  1364. timeout = <urllib3.util.timeout.Timeout object at 0x7f6921200a20>
  1365. pool_timeout = None, release_conn = False, chunked = False, body_pos = None
  1366. response_kw = {'decode_content': False, 'preload_content': False}, conn = None
  1367. release_this_conn = True, err = None, clean_exit = False
  1368. timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f69212ab710>
  1369. is_new_proxy_conn = False
  1370.  
  1371. def urlopen(self, method, url, body=None, headers=None, retries=None,
  1372. redirect=True, assert_same_host=True, timeout=_Default,
  1373. pool_timeout=None, release_conn=None, chunked=False,
  1374. body_pos=None, **response_kw):
  1375. """
  1376. Get a connection from the pool and perform an HTTP request. This is the
  1377. lowest level call for making a request, so you'll need to specify all
  1378. the raw details.
  1379.  
  1380. .. note::
  1381.  
  1382. More commonly, it's appropriate to use a convenience method provided
  1383. by :class:`.RequestMethods`, such as :meth:`request`.
  1384.  
  1385. .. note::
  1386.  
  1387. `release_conn` will only behave as expected if
  1388. `preload_content=False` because we want to make
  1389. `preload_content=False` the default behaviour someday soon without
  1390. breaking backwards compatibility.
  1391.  
  1392. :param method:
  1393. HTTP request method (such as GET, POST, PUT, etc.)
  1394.  
  1395. :param body:
  1396. Data to send in the request body (useful for creating
  1397. POST requests, see HTTPConnectionPool.post_url for
  1398. more convenience).
  1399.  
  1400. :param headers:
  1401. Dictionary of custom headers to send, such as User-Agent,
  1402. If-None-Match, etc. If None, pool headers are used. If provided,
  1403. these headers completely replace any pool-specific headers.
  1404.  
  1405. :param retries:
  1406. Configure the number of retries to allow before raising a
  1407. :class:`~urllib3.exceptions.MaxRetryError` exception.
  1408.  
  1409. Pass ``None`` to retry until you receive a response. Pass a
  1410. :class:`~urllib3.util.retry.Retry` object for fine-grained control
  1411. over different types of retries.
  1412. Pass an integer number to retry connection errors that many times,
  1413. but no other types of errors. Pass zero to never retry.
  1414.  
  1415. If ``False``, then retries are disabled and any exception is raised
  1416. immediately. Also, instead of raising a MaxRetryError on redirects,
  1417. the redirect response will be returned.
  1418.  
  1419. :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
  1420.  
  1421. :param redirect:
  1422. If True, automatically handle redirects (status codes 301, 302,
  1423. 303, 307, 308). Each redirect counts as a retry. Disabling retries
  1424. will disable redirect, too.
  1425.  
  1426. :param assert_same_host:
  1427. If ``True``, will make sure that the host of the pool requests is
  1428. consistent else will raise HostChangedError. When False, you can
  1429. use the pool on an HTTP proxy and request foreign hosts.
  1430.  
  1431. :param timeout:
  1432. If specified, overrides the default timeout for this one
  1433. request. It may be a float (in seconds) or an instance of
  1434. :class:`urllib3.util.Timeout`.
  1435.  
  1436. :param pool_timeout:
  1437. If set and the pool is set to block=True, then this method will
  1438. block for ``pool_timeout`` seconds and raise EmptyPoolError if no
  1439. connection is available within the time period.
  1440.  
  1441. :param release_conn:
  1442. If False, then the urlopen call will not release the connection
  1443. back into the pool once a response is received (but will release if
  1444. you read the entire contents of the response such as when
  1445. `preload_content=True`). This is useful if you're not preloading
  1446. the response's content immediately. You will need to call
  1447. ``r.release_conn()`` on the response ``r`` to return the connection
  1448. back into the pool. If None, it takes the value of
  1449. ``response_kw.get('preload_content', True)``.
  1450.  
  1451. :param chunked:
  1452. If True, urllib3 will send the body using chunked transfer
  1453. encoding. Otherwise, urllib3 will send the body using the standard
  1454. content-length form. Defaults to False.
  1455.  
  1456. :param int body_pos:
  1457. Position to seek to in file-like body in the event of a retry or
  1458. redirect. Typically this won't need to be set because urllib3 will
  1459. auto-populate the value when needed.
  1460.  
  1461. :param \\**response_kw:
  1462. Additional parameters are passed to
  1463. :meth:`urllib3.response.HTTPResponse.from_httplib`
  1464. """
  1465. if headers is None:
  1466. headers = self.headers
  1467.  
  1468. if not isinstance(retries, Retry):
  1469. retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
  1470.  
  1471. if release_conn is None:
  1472. release_conn = response_kw.get('preload_content', True)
  1473.  
  1474. # Check host
  1475. if assert_same_host and not self.is_same_host(url):
  1476. raise HostChangedError(self, url, retries)
  1477.  
  1478. conn = None
  1479.  
  1480. # Track whether `conn` needs to be released before
  1481. # returning/raising/recursing. Update this variable if necessary, and
  1482. # leave `release_conn` constant throughout the function. That way, if
  1483. # the function recurses, the original value of `release_conn` will be
  1484. # passed down into the recursive call, and its value will be respected.
  1485. #
  1486. # See issue #651 [1] for details.
  1487. #
  1488. # [1] <https://github.com/shazow/urllib3/issues/651>
  1489. release_this_conn = release_conn
  1490.  
  1491. # Merge the proxy headers. Only do this in HTTP. We have to copy the
  1492. # headers dict so we can safely change it without those changes being
  1493. # reflected in anyone else's copy.
  1494. if self.scheme == 'http':
  1495. headers = headers.copy()
  1496. headers.update(self.proxy_headers)
  1497.  
  1498. # Must keep the exception bound to a separate variable or else Python 3
  1499. # complains about UnboundLocalError.
  1500. err = None
  1501.  
  1502. # Keep track of whether we cleanly exited the except block. This
  1503. # ensures we do proper cleanup in finally.
  1504. clean_exit = False
  1505.  
  1506. # Rewind body position, if needed. Record current position
  1507. # for future rewinds in the event of a redirect/retry.
  1508. body_pos = set_file_position(body, body_pos)
  1509.  
  1510. try:
  1511. # Request a connection from the queue.
  1512. timeout_obj = self._get_timeout(timeout)
  1513. conn = self._get_conn(timeout=pool_timeout)
  1514.  
  1515. conn.timeout = timeout_obj.connect_timeout
  1516.  
  1517. is_new_proxy_conn = self.proxy is not None and not getattr(conn, 'sock', None)
  1518. if is_new_proxy_conn:
  1519. self._prepare_proxy(conn)
  1520.  
  1521. # Make the request on the httplib connection object.
  1522. httplib_response = self._make_request(conn, method, url,
  1523. timeout=timeout_obj,
  1524. body=body, headers=headers,
  1525. chunked=chunked)
  1526.  
  1527. # If we're going to release the connection in ``finally:``, then
  1528. # the response doesn't need to know about the connection. Otherwise
  1529. # it will also try to release it and we'll have a double-release
  1530. # mess.
  1531. response_conn = conn if not release_conn else None
  1532.  
  1533. # Pass method to Response for length checking
  1534. response_kw['request_method'] = method
  1535.  
  1536. # Import httplib's response into our own wrapper object
  1537. response = self.ResponseCls.from_httplib(httplib_response,
  1538. pool=self,
  1539. connection=response_conn,
  1540. retries=retries,
  1541. **response_kw)
  1542.  
  1543. # Everything went great!
  1544. clean_exit = True
  1545.  
  1546. except queue.Empty:
  1547. # Timed out by queue.
  1548. raise EmptyPoolError(self, "No pool connections are available.")
  1549.  
  1550. except (TimeoutError, HTTPException, SocketError, ProtocolError,
  1551. BaseSSLError, SSLError, CertificateError) as e:
  1552. # Discard the connection for these exceptions. It will be
  1553. # replaced during the next _get_conn() call.
  1554. clean_exit = False
  1555. if isinstance(e, (BaseSSLError, CertificateError)):
  1556. e = SSLError(e)
  1557. elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:
  1558. e = ProxyError('Cannot connect to proxy.', e)
  1559. elif isinstance(e, (SocketError, HTTPException)):
  1560. e = ProtocolError('Connection aborted.', e)
  1561.  
  1562. retries = retries.increment(method, url, error=e, _pool=self,
  1563. > _stacktrace=sys.exc_info()[2])
  1564.  
  1565. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:639:
  1566. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1567.  
  1568. self = Retry(total=0, connect=None, read=False, redirect=None, status=None)
  1569. method = 'GET', url = '/', response = None
  1570. error = ReadTimeoutError("HTTPConnectionPool(host='127.0.0.1', port=30123): Read timed out. (read timeout=5)",)
  1571. _pool = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
  1572. _stacktrace = <traceback object at 0x7f6921262148>
  1573.  
  1574. def increment(self, method=None, url=None, response=None, error=None,
  1575. _pool=None, _stacktrace=None):
  1576. """ Return a new Retry object with incremented retry counters.
  1577.  
  1578. :param response: A response object, or None, if the server did not
  1579. return a response.
  1580. :type response: :class:`~urllib3.response.HTTPResponse`
  1581. :param Exception error: An error encountered during the request, or
  1582. None if the response was received successfully.
  1583.  
  1584. :return: A new ``Retry`` object.
  1585. """
  1586. if self.total is False and error:
  1587. # Disabled, indicate to re-raise the error.
  1588. raise six.reraise(type(error), error, _stacktrace)
  1589.  
  1590. total = self.total
  1591. if total is not None:
  1592. total -= 1
  1593.  
  1594. connect = self.connect
  1595. read = self.read
  1596. redirect = self.redirect
  1597. status_count = self.status
  1598. cause = 'unknown'
  1599. status = None
  1600. redirect_location = None
  1601.  
  1602. if error and self._is_connection_error(error):
  1603. # Connect retry?
  1604. if connect is False:
  1605. raise six.reraise(type(error), error, _stacktrace)
  1606. elif connect is not None:
  1607. connect -= 1
  1608.  
  1609. elif error and self._is_read_error(error):
  1610. # Read retry?
  1611. if read is False or not self._is_method_retryable(method):
  1612. > raise six.reraise(type(error), error, _stacktrace)
  1613.  
  1614. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/util/retry.py:357:
  1615. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1616.  
  1617. tp = <class 'urllib3.exceptions.ReadTimeoutError'>
  1618. value = ReadTimeoutError("HTTPConnectionPool(host='127.0.0.1', port=30123): Read timed out. (read timeout=5)",)
  1619. tb = <traceback object at 0x7f6921262148>
  1620.  
  1621. def reraise(tp, value, tb=None):
  1622. if value is None:
  1623. value = tp()
  1624. if value.__traceback__ is not tb:
  1625. raise value.with_traceback(tb)
  1626. > raise value
  1627.  
  1628. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/packages/six.py:686:
  1629. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1630.  
  1631. self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
  1632. method = 'GET', url = '/', body = None
  1633. headers = {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
  1634. retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)
  1635. redirect = False, assert_same_host = False
  1636. timeout = <urllib3.util.timeout.Timeout object at 0x7f6921200a20>
  1637. pool_timeout = None, release_conn = False, chunked = False, body_pos = None
  1638. response_kw = {'decode_content': False, 'preload_content': False}, conn = None
  1639. release_this_conn = True, err = None, clean_exit = False
  1640. timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f69212ab710>
  1641. is_new_proxy_conn = False
  1642.  
  1643. def urlopen(self, method, url, body=None, headers=None, retries=None,
  1644. redirect=True, assert_same_host=True, timeout=_Default,
  1645. pool_timeout=None, release_conn=None, chunked=False,
  1646. body_pos=None, **response_kw):
  1647. """
  1648. Get a connection from the pool and perform an HTTP request. This is the
  1649. lowest level call for making a request, so you'll need to specify all
  1650. the raw details.
  1651.  
  1652. .. note::
  1653.  
  1654. More commonly, it's appropriate to use a convenience method provided
  1655. by :class:`.RequestMethods`, such as :meth:`request`.
  1656.  
  1657. .. note::
  1658.  
  1659. `release_conn` will only behave as expected if
  1660. `preload_content=False` because we want to make
  1661. `preload_content=False` the default behaviour someday soon without
  1662. breaking backwards compatibility.
  1663.  
  1664. :param method:
  1665. HTTP request method (such as GET, POST, PUT, etc.)
  1666.  
  1667. :param body:
  1668. Data to send in the request body (useful for creating
  1669. POST requests, see HTTPConnectionPool.post_url for
  1670. more convenience).
  1671.  
  1672. :param headers:
  1673. Dictionary of custom headers to send, such as User-Agent,
  1674. If-None-Match, etc. If None, pool headers are used. If provided,
  1675. these headers completely replace any pool-specific headers.
  1676.  
  1677. :param retries:
  1678. Configure the number of retries to allow before raising a
  1679. :class:`~urllib3.exceptions.MaxRetryError` exception.
  1680.  
  1681. Pass ``None`` to retry until you receive a response. Pass a
  1682. :class:`~urllib3.util.retry.Retry` object for fine-grained control
  1683. over different types of retries.
  1684. Pass an integer number to retry connection errors that many times,
  1685. but no other types of errors. Pass zero to never retry.
  1686.  
  1687. If ``False``, then retries are disabled and any exception is raised
  1688. immediately. Also, instead of raising a MaxRetryError on redirects,
  1689. the redirect response will be returned.
  1690.  
  1691. :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
  1692.  
  1693. :param redirect:
  1694. If True, automatically handle redirects (status codes 301, 302,
  1695. 303, 307, 308). Each redirect counts as a retry. Disabling retries
  1696. will disable redirect, too.
  1697.  
  1698. :param assert_same_host:
  1699. If ``True``, will make sure that the host of the pool requests is
  1700. consistent else will raise HostChangedError. When False, you can
  1701. use the pool on an HTTP proxy and request foreign hosts.
  1702.  
  1703. :param timeout:
  1704. If specified, overrides the default timeout for this one
  1705. request. It may be a float (in seconds) or an instance of
  1706. :class:`urllib3.util.Timeout`.
  1707.  
  1708. :param pool_timeout:
  1709. If set and the pool is set to block=True, then this method will
  1710. block for ``pool_timeout`` seconds and raise EmptyPoolError if no
  1711. connection is available within the time period.
  1712.  
  1713. :param release_conn:
  1714. If False, then the urlopen call will not release the connection
  1715. back into the pool once a response is received (but will release if
  1716. you read the entire contents of the response such as when
  1717. `preload_content=True`). This is useful if you're not preloading
  1718. the response's content immediately. You will need to call
  1719. ``r.release_conn()`` on the response ``r`` to return the connection
  1720. back into the pool. If None, it takes the value of
  1721. ``response_kw.get('preload_content', True)``.
  1722.  
  1723. :param chunked:
  1724. If True, urllib3 will send the body using chunked transfer
  1725. encoding. Otherwise, urllib3 will send the body using the standard
  1726. content-length form. Defaults to False.
  1727.  
  1728. :param int body_pos:
  1729. Position to seek to in file-like body in the event of a retry or
  1730. redirect. Typically this won't need to be set because urllib3 will
  1731. auto-populate the value when needed.
  1732.  
  1733. :param \\**response_kw:
  1734. Additional parameters are passed to
  1735. :meth:`urllib3.response.HTTPResponse.from_httplib`
  1736. """
  1737. if headers is None:
  1738. headers = self.headers
  1739.  
  1740. if not isinstance(retries, Retry):
  1741. retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
  1742.  
  1743. if release_conn is None:
  1744. release_conn = response_kw.get('preload_content', True)
  1745.  
  1746. # Check host
  1747. if assert_same_host and not self.is_same_host(url):
  1748. raise HostChangedError(self, url, retries)
  1749.  
  1750. conn = None
  1751.  
  1752. # Track whether `conn` needs to be released before
  1753. # returning/raising/recursing. Update this variable if necessary, and
  1754. # leave `release_conn` constant throughout the function. That way, if
  1755. # the function recurses, the original value of `release_conn` will be
  1756. # passed down into the recursive call, and its value will be respected.
  1757. #
  1758. # See issue #651 [1] for details.
  1759. #
  1760. # [1] <https://github.com/shazow/urllib3/issues/651>
  1761. release_this_conn = release_conn
  1762.  
  1763. # Merge the proxy headers. Only do this in HTTP. We have to copy the
  1764. # headers dict so we can safely change it without those changes being
  1765. # reflected in anyone else's copy.
  1766. if self.scheme == 'http':
  1767. headers = headers.copy()
  1768. headers.update(self.proxy_headers)
  1769.  
  1770. # Must keep the exception bound to a separate variable or else Python 3
  1771. # complains about UnboundLocalError.
  1772. err = None
  1773.  
  1774. # Keep track of whether we cleanly exited the except block. This
  1775. # ensures we do proper cleanup in finally.
  1776. clean_exit = False
  1777.  
  1778. # Rewind body position, if needed. Record current position
  1779. # for future rewinds in the event of a redirect/retry.
  1780. body_pos = set_file_position(body, body_pos)
  1781.  
  1782. try:
  1783. # Request a connection from the queue.
  1784. timeout_obj = self._get_timeout(timeout)
  1785. conn = self._get_conn(timeout=pool_timeout)
  1786.  
  1787. conn.timeout = timeout_obj.connect_timeout
  1788.  
  1789. is_new_proxy_conn = self.proxy is not None and not getattr(conn, 'sock', None)
  1790. if is_new_proxy_conn:
  1791. self._prepare_proxy(conn)
  1792.  
  1793. # Make the request on the httplib connection object.
  1794. httplib_response = self._make_request(conn, method, url,
  1795. timeout=timeout_obj,
  1796. body=body, headers=headers,
  1797. > chunked=chunked)
  1798.  
  1799. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:601:
  1800. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1801.  
  1802. self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
  1803. conn = <urllib3.connection.HTTPConnection object at 0x7f69212ab828>
  1804. method = 'GET', url = '/'
  1805. timeout = <urllib3.util.timeout.Timeout object at 0x7f69212ab710>
  1806. chunked = False
  1807. httplib_request_kw = {'body': None, 'headers': {'User-Agent': 'python-requests/2.18.4', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}}
  1808. timeout_obj = <urllib3.util.timeout.Timeout object at 0x7f69212ab6a0>
  1809. read_timeout = 5
  1810.  
  1811. def _make_request(self, conn, method, url, timeout=_Default, chunked=False,
  1812. **httplib_request_kw):
  1813. """
  1814. Perform a request on a given urllib connection object taken from our
  1815. pool.
  1816.  
  1817. :param conn:
  1818. a connection from one of our connection pools
  1819.  
  1820. :param timeout:
  1821. Socket timeout in seconds for the request. This can be a
  1822. float or integer, which will set the same timeout value for
  1823. the socket connect and the socket read, or an instance of
  1824. :class:`urllib3.util.Timeout`, which gives you more fine-grained
  1825. control over your timeouts.
  1826. """
  1827. self.num_requests += 1
  1828.  
  1829. timeout_obj = self._get_timeout(timeout)
  1830. timeout_obj.start_connect()
  1831. conn.timeout = timeout_obj.connect_timeout
  1832.  
  1833. # Trigger any extra validation we need to do.
  1834. try:
  1835. self._validate_conn(conn)
  1836. except (SocketTimeout, BaseSSLError) as e:
  1837. # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.
  1838. self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)
  1839. raise
  1840.  
  1841. # conn.request() calls httplib.*.request, not the method in
  1842. # urllib3.request. It also calls makefile (recv) on the socket.
  1843. if chunked:
  1844. conn.request_chunked(method, url, **httplib_request_kw)
  1845. else:
  1846. conn.request(method, url, **httplib_request_kw)
  1847.  
  1848. # Reset the timeout for the recv() on the socket
  1849. read_timeout = timeout_obj.read_timeout
  1850.  
  1851. # App Engine doesn't have a sock attr
  1852. if getattr(conn, 'sock', None):
  1853. # In Python 3 socket.py will catch EAGAIN and return None when you
  1854. # try and read into the file pointer created by http.client, which
  1855. # instead raises a BadStatusLine exception. Instead of catching
  1856. # the exception and assuming all BadStatusLine exceptions are read
  1857. # timeouts, check for a zero timeout before making the request.
  1858. if read_timeout == 0:
  1859. raise ReadTimeoutError(
  1860. self, url, "Read timed out. (read timeout=%s)" % read_timeout)
  1861. if read_timeout is Timeout.DEFAULT_TIMEOUT:
  1862. conn.sock.settimeout(socket.getdefaulttimeout())
  1863. else: # None or a value
  1864. conn.sock.settimeout(read_timeout)
  1865.  
  1866. # Receive the response from the server
  1867. try:
  1868. try: # Python 2.7, use buffering of HTTP responses
  1869. httplib_response = conn.getresponse(buffering=True)
  1870. except TypeError: # Python 2.6 and older, Python 3
  1871. try:
  1872. httplib_response = conn.getresponse()
  1873. except Exception as e:
  1874. # Remove the TypeError from the exception chain in Python 3;
  1875. # otherwise it looks like a programming error was the cause.
  1876. six.raise_from(e, None)
  1877. except (SocketTimeout, BaseSSLError, SocketError) as e:
  1878. > self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  1879.  
  1880. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:389:
  1881. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1882.  
  1883. self = <urllib3.connectionpool.HTTPConnectionPool object at 0x7f6921200940>
  1884. err = timeout('timed out',), url = '/', timeout_value = 5
  1885.  
  1886. def _raise_timeout(self, err, url, timeout_value):
  1887. """Is the error actually a timeout? Will raise a ReadTimeout or pass"""
  1888.  
  1889. if isinstance(err, SocketTimeout):
  1890. > raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
  1891. E urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='127.0.0.1', port=30123): Read timed out. (read timeout=5)
  1892.  
  1893. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/urllib3/connectionpool.py:309: ReadTimeoutError
  1894.  
  1895. During handling of the above exception, another exception occurred:
  1896.  
  1897. @pytest.fixture(scope='session')
  1898. def _binderhub_config():
  1899. """Load the binderhub configuration
  1900.  
  1901. Currently separate from the app fixture
  1902. so that it can have a different scope (only once per session).
  1903. """
  1904. cfg = PyFileConfigLoader(minikube_testing_config).load_config()
  1905. cfg.BinderHub.build_namespace = TEST_NAMESPACE
  1906. global KUBERNETES_AVAILABLE
  1907. try:
  1908. kubernetes.config.load_kube_config()
  1909. except Exception:
  1910. cfg.BinderHub.builder_required = False
  1911. KUBERNETES_AVAILABLE = False
  1912. if ON_TRAVIS:
  1913. pytest.fail("Kubernetes should be available on Travis")
  1914. else:
  1915. KUBERNETES_AVAILABLE = True
  1916. if REMOTE_BINDER:
  1917. return
  1918.  
  1919. # check if Hub is running and ready
  1920. try:
  1921. > requests.get(cfg.BinderHub.hub_url, timeout=5, allow_redirects=False)
  1922.  
  1923. binderhub/tests/conftest.py:56:
  1924. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1925.  
  1926. url = 'http://127.0.0.1:30123', params = None
  1927. kwargs = {'allow_redirects': False, 'timeout': 5}
  1928.  
  1929. def get(url, params=None, **kwargs):
  1930. r"""Sends a GET request.
  1931.  
  1932. :param url: URL for the new :class:`Request` object.
  1933. :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
  1934. :param \*\*kwargs: Optional arguments that ``request`` takes.
  1935. :return: :class:`Response <Response>` object
  1936. :rtype: requests.Response
  1937. """
  1938.  
  1939. kwargs.setdefault('allow_redirects', True)
  1940. > return request('get', url, params=params, **kwargs)
  1941.  
  1942. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/api.py:72:
  1943. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1944.  
  1945. method = 'get', url = 'http://127.0.0.1:30123'
  1946. kwargs = {'allow_redirects': False, 'params': None, 'timeout': 5}
  1947. session = <requests.sessions.Session object at 0x7f692164dba8>
  1948.  
  1949. def request(method, url, **kwargs):
  1950. """Constructs and sends a :class:`Request <Request>`.
  1951.  
  1952. :param method: method for the new :class:`Request` object.
  1953. :param url: URL for the new :class:`Request` object.
  1954. :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
  1955. :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`.
  1956. :param json: (optional) json data to send in the body of the :class:`Request`.
  1957. :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
  1958. :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
  1959. :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload.
  1960. ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
  1961. or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content-type'`` is a string
  1962. defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
  1963. to add for the file.
  1964. :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
  1965. :param timeout: (optional) How many seconds to wait for the server to send data
  1966. before giving up, as a float, or a :ref:`(connect timeout, read
  1967. timeout) <timeouts>` tuple.
  1968. :type timeout: float or tuple
  1969. :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to ``True``.
  1970. :type allow_redirects: bool
  1971. :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
  1972. :param verify: (optional) Either a boolean, in which case it controls whether we verify
  1973. the server's TLS certificate, or a string, in which case it must be a path
  1974. to a CA bundle to use. Defaults to ``True``.
  1975. :param stream: (optional) if ``False``, the response content will be immediately downloaded.
  1976. :param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.
  1977. :return: :class:`Response <Response>` object
  1978. :rtype: requests.Response
  1979.  
  1980. Usage::
  1981.  
  1982. >>> import requests
  1983. >>> req = requests.request('GET', 'http://httpbin.org/get')
  1984. <Response [200]>
  1985. """
  1986.  
  1987. # By using the 'with' statement we are sure the session is closed, thus we
  1988. # avoid leaving sockets open which can trigger a ResourceWarning in some
  1989. # cases, and look like a memory leak in others.
  1990. with sessions.Session() as session:
  1991. > return session.request(method=method, url=url, **kwargs)
  1992.  
  1993. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/api.py:58:
  1994. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  1995.  
  1996. self = <requests.sessions.Session object at 0x7f692164dba8>, method = 'get'
  1997. url = 'http://127.0.0.1:30123', params = None, data = None, headers = None
  1998. cookies = None, files = None, auth = None, timeout = 5, allow_redirects = False
  1999. proxies = {}, hooks = None, stream = None, verify = None, cert = None
  2000. json = None
  2001.  
  2002. def request(self, method, url,
  2003. params=None, data=None, headers=None, cookies=None, files=None,
  2004. auth=None, timeout=None, allow_redirects=True, proxies=None,
  2005. hooks=None, stream=None, verify=None, cert=None, json=None):
  2006. """Constructs a :class:`Request <Request>`, prepares it and sends it.
  2007. Returns :class:`Response <Response>` object.
  2008.  
  2009. :param method: method for the new :class:`Request` object.
  2010. :param url: URL for the new :class:`Request` object.
  2011. :param params: (optional) Dictionary or bytes to be sent in the query
  2012. string for the :class:`Request`.
  2013. :param data: (optional) Dictionary, bytes, or file-like object to send
  2014. in the body of the :class:`Request`.
  2015. :param json: (optional) json to send in the body of the
  2016. :class:`Request`.
  2017. :param headers: (optional) Dictionary of HTTP Headers to send with the
  2018. :class:`Request`.
  2019. :param cookies: (optional) Dict or CookieJar object to send with the
  2020. :class:`Request`.
  2021. :param files: (optional) Dictionary of ``'filename': file-like-objects``
  2022. for multipart encoding upload.
  2023. :param auth: (optional) Auth tuple or callable to enable
  2024. Basic/Digest/Custom HTTP Auth.
  2025. :param timeout: (optional) How long to wait for the server to send
  2026. data before giving up, as a float, or a :ref:`(connect timeout,
  2027. read timeout) <timeouts>` tuple.
  2028. :type timeout: float or tuple
  2029. :param allow_redirects: (optional) Set to True by default.
  2030. :type allow_redirects: bool
  2031. :param proxies: (optional) Dictionary mapping protocol or protocol and
  2032. hostname to the URL of the proxy.
  2033. :param stream: (optional) whether to immediately download the response
  2034. content. Defaults to ``False``.
  2035. :param verify: (optional) Either a boolean, in which case it controls whether we verify
  2036. the server's TLS certificate, or a string, in which case it must be a path
  2037. to a CA bundle to use. Defaults to ``True``.
  2038. :param cert: (optional) if String, path to ssl client cert file (.pem).
  2039. If Tuple, ('cert', 'key') pair.
  2040. :rtype: requests.Response
  2041. """
  2042. # Create the Request.
  2043. req = Request(
  2044. method=method.upper(),
  2045. url=url,
  2046. headers=headers,
  2047. files=files,
  2048. data=data or {},
  2049. json=json,
  2050. params=params or {},
  2051. auth=auth,
  2052. cookies=cookies,
  2053. hooks=hooks,
  2054. )
  2055. prep = self.prepare_request(req)
  2056.  
  2057. proxies = proxies or {}
  2058.  
  2059. settings = self.merge_environment_settings(
  2060. prep.url, proxies, stream, verify, cert
  2061. )
  2062.  
  2063. # Send the request.
  2064. send_kwargs = {
  2065. 'timeout': timeout,
  2066. 'allow_redirects': allow_redirects,
  2067. }
  2068. send_kwargs.update(settings)
  2069. > resp = self.send(prep, **send_kwargs)
  2070.  
  2071. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/sessions.py:508:
  2072. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  2073.  
  2074. self = <requests.sessions.Session object at 0x7f692164dba8>
  2075. request = <PreparedRequest [GET]>
  2076. kwargs = {'cert': None, 'proxies': OrderedDict(), 'stream': False, 'timeout': 5, ...}
  2077. allow_redirects = False, stream = False, hooks = {'response': []}
  2078. adapter = <requests.adapters.HTTPAdapter object at 0x7f6921200828>
  2079. start = 1515629096.4393468
  2080.  
  2081. def send(self, request, **kwargs):
  2082. """Send a given PreparedRequest.
  2083.  
  2084. :rtype: requests.Response
  2085. """
  2086. # Set defaults that the hooks can utilize to ensure they always have
  2087. # the correct parameters to reproduce the previous request.
  2088. kwargs.setdefault('stream', self.stream)
  2089. kwargs.setdefault('verify', self.verify)
  2090. kwargs.setdefault('cert', self.cert)
  2091. kwargs.setdefault('proxies', self.proxies)
  2092.  
  2093. # It's possible that users might accidentally send a Request object.
  2094. # Guard against that specific failure case.
  2095. if isinstance(request, Request):
  2096. raise ValueError('You can only send PreparedRequests.')
  2097.  
  2098. # Set up variables needed for resolve_redirects and dispatching of hooks
  2099. allow_redirects = kwargs.pop('allow_redirects', True)
  2100. stream = kwargs.get('stream')
  2101. hooks = request.hooks
  2102.  
  2103. # Get the appropriate adapter to use
  2104. adapter = self.get_adapter(url=request.url)
  2105.  
  2106. # Start time (approximately) of the request
  2107. start = preferred_clock()
  2108.  
  2109. # Send the request
  2110. > r = adapter.send(request, **kwargs)
  2111.  
  2112. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/sessions.py:618:
  2113. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  2114.  
  2115. self = <requests.adapters.HTTPAdapter object at 0x7f6921200828>
  2116. request = <PreparedRequest [GET]>, stream = False
  2117. timeout = <urllib3.util.timeout.Timeout object at 0x7f6921200a20>, verify = True
  2118. cert = None, proxies = OrderedDict()
  2119.  
  2120. def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
  2121. """Sends PreparedRequest object. Returns Response object.
  2122.  
  2123. :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
  2124. :param stream: (optional) Whether to stream the request content.
  2125. :param timeout: (optional) How long to wait for the server to send
  2126. data before giving up, as a float, or a :ref:`(connect timeout,
  2127. read timeout) <timeouts>` tuple.
  2128. :type timeout: float or tuple or urllib3 Timeout object
  2129. :param verify: (optional) Either a boolean, in which case it controls whether
  2130. we verify the server's TLS certificate, or a string, in which case it
  2131. must be a path to a CA bundle to use
  2132. :param cert: (optional) Any user-provided SSL certificate to be trusted.
  2133. :param proxies: (optional) The proxies dictionary to apply to the request.
  2134. :rtype: requests.Response
  2135. """
  2136.  
  2137. conn = self.get_connection(request.url, proxies)
  2138.  
  2139. self.cert_verify(conn, request.url, verify, cert)
  2140. url = self.request_url(request, proxies)
  2141. self.add_headers(request)
  2142.  
  2143. chunked = not (request.body is None or 'Content-Length' in request.headers)
  2144.  
  2145. if isinstance(timeout, tuple):
  2146. try:
  2147. connect, read = timeout
  2148. timeout = TimeoutSauce(connect=connect, read=read)
  2149. except ValueError as e:
  2150. # this may raise a string formatting error.
  2151. err = ("Invalid timeout {0}. Pass a (connect, read) "
  2152. "timeout tuple, or a single float to set "
  2153. "both timeouts to the same value".format(timeout))
  2154. raise ValueError(err)
  2155. elif isinstance(timeout, TimeoutSauce):
  2156. pass
  2157. else:
  2158. timeout = TimeoutSauce(connect=timeout, read=timeout)
  2159.  
  2160. try:
  2161. if not chunked:
  2162. resp = conn.urlopen(
  2163. method=request.method,
  2164. url=url,
  2165. body=request.body,
  2166. headers=request.headers,
  2167. redirect=False,
  2168. assert_same_host=False,
  2169. preload_content=False,
  2170. decode_content=False,
  2171. retries=self.max_retries,
  2172. timeout=timeout
  2173. )
  2174.  
  2175. # Send the request.
  2176. else:
  2177. if hasattr(conn, 'proxy_pool'):
  2178. conn = conn.proxy_pool
  2179.  
  2180. low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
  2181.  
  2182. try:
  2183. low_conn.putrequest(request.method,
  2184. url,
  2185. skip_accept_encoding=True)
  2186.  
  2187. for header, value in request.headers.items():
  2188. low_conn.putheader(header, value)
  2189.  
  2190. low_conn.endheaders()
  2191.  
  2192. for i in request.body:
  2193. low_conn.send(hex(len(i))[2:].encode('utf-8'))
  2194. low_conn.send(b'\r\n')
  2195. low_conn.send(i)
  2196. low_conn.send(b'\r\n')
  2197. low_conn.send(b'0\r\n\r\n')
  2198.  
  2199. # Receive the response from the server
  2200. try:
  2201. # For Python 2.7+ versions, use buffering of HTTP
  2202. # responses
  2203. r = low_conn.getresponse(buffering=True)
  2204. except TypeError:
  2205. # For compatibility with Python 2.6 versions and back
  2206. r = low_conn.getresponse()
  2207.  
  2208. resp = HTTPResponse.from_httplib(
  2209. r,
  2210. pool=conn,
  2211. connection=low_conn,
  2212. preload_content=False,
  2213. decode_content=False
  2214. )
  2215. except:
  2216. # If we hit any problems here, clean up the connection.
  2217. # Then, reraise so that we can handle the actual exception.
  2218. low_conn.close()
  2219. raise
  2220.  
  2221. except (ProtocolError, socket.error) as err:
  2222. raise ConnectionError(err, request=request)
  2223.  
  2224. except MaxRetryError as e:
  2225. if isinstance(e.reason, ConnectTimeoutError):
  2226. # TODO: Remove this in 3.0.0: see #2811
  2227. if not isinstance(e.reason, NewConnectionError):
  2228. raise ConnectTimeout(e, request=request)
  2229.  
  2230. if isinstance(e.reason, ResponseError):
  2231. raise RetryError(e, request=request)
  2232.  
  2233. if isinstance(e.reason, _ProxyError):
  2234. raise ProxyError(e, request=request)
  2235.  
  2236. if isinstance(e.reason, _SSLError):
  2237. # This branch is for urllib3 v1.22 and later.
  2238. raise SSLError(e, request=request)
  2239.  
  2240. raise ConnectionError(e, request=request)
  2241.  
  2242. except ClosedPoolError as e:
  2243. raise ConnectionError(e, request=request)
  2244.  
  2245. except _ProxyError as e:
  2246. raise ProxyError(e)
  2247.  
  2248. except (_SSLError, _HTTPError) as e:
  2249. if isinstance(e, _SSLError):
  2250. # This branch is for urllib3 versions earlier than v1.22
  2251. raise SSLError(e, request=request)
  2252. elif isinstance(e, ReadTimeoutError):
  2253. > raise ReadTimeout(e, request=request)
  2254. E requests.exceptions.ReadTimeout: HTTPConnectionPool(host='127.0.0.1', port=30123): Read timed out. (read timeout=5)
  2255.  
  2256. ../../../virtualenv/python3.6.3/lib/python3.6/site-packages/requests/adapters.py:521: ReadTimeout
  2257.  
  2258. During handling of the above exception, another exception occurred:
  2259.  
  2260. @pytest.fixture(scope='session')
  2261. def _binderhub_config():
  2262. """Load the binderhub configuration
  2263.  
  2264. Currently separate from the app fixture
  2265. so that it can have a different scope (only once per session).
  2266. """
  2267. cfg = PyFileConfigLoader(minikube_testing_config).load_config()
  2268. cfg.BinderHub.build_namespace = TEST_NAMESPACE
  2269. global KUBERNETES_AVAILABLE
  2270. try:
  2271. kubernetes.config.load_kube_config()
  2272. except Exception:
  2273. cfg.BinderHub.builder_required = False
  2274. KUBERNETES_AVAILABLE = False
  2275. if ON_TRAVIS:
  2276. pytest.fail("Kubernetes should be available on Travis")
  2277. else:
  2278. KUBERNETES_AVAILABLE = True
  2279. if REMOTE_BINDER:
  2280. return
  2281.  
  2282. # check if Hub is running and ready
  2283. try:
  2284. requests.get(cfg.BinderHub.hub_url, timeout=5, allow_redirects=False)
  2285. except Exception as e:
  2286. print(f"JupyterHub not available at {cfg.BinderHub.hub_url}: {e}")
  2287. if ON_TRAVIS:
  2288. > pytest.fail("JupyterHub should be available on Travis")
  2289. E Failed: JupyterHub should be available on Travis
  2290.  
  2291. binderhub/tests/conftest.py:60: Failed
  2292. ------------------------------ Captured log setup ------------------------------
  2293. loader.py 342 DEBUG Using default logger
  2294. ====================== 2 passed, 1 error in 13.21 seconds ======================
  2295.  
  2296. travis_time:end:0a49d8e4:start=1515629036375760501,finish=1515629102791433764,duration=66415673263
  2297. 
  2298. The command "./ci/test-$TEST" exited with 1.
  2299. travis_fold:start:after_failure
  2300. travis_time:start:0a243ec0
  2301. $ for pod in $(kubectl get pod --namespace=$BINDER_TEST_NAMESPACE | awk '{print $1}'); do echo $pod kubectl logs --namespace=$BINDER_TEST_NAMESPACE $pod done
  2302. /home/travis/.travis/job_stages: eval: line 58: syntax error: unexpected end of file
  2303.  
  2304. travis_time:end:0a243ec0:start=1515629102815603286,finish=1515629102835280348,duration=19677062
  2305. travis_fold:end:after_failure
  2306. 
  2307. Done. Your build exited with 1.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement