[root@localhost core]# pwd
/opt/tools/network_simulators/core/
[root@localhost core]# ll
-rw-r--r--. 1 root root 1875656 5月 7 22:48 core-svnsnap-20160427.tgz
-----------------------INSTALL CORE --- OK OK
Fedora 23:
dnf install bash bridge-utils ebtables iproute libev python procps-ng net-tools tcl tk tkimg autoconf automake make libev-devel python-devel ImageMagick help2man
//重要,在CORE中,执行 /root/.core/configs/m-MPE-manet.imn,不能正常初始化。需要执行如下命令。
// http://blog.csdn.net/ztguang/article/details/51262543
dnf install kernel-modules-extra-`uname -r`
[root@localhost core]# pwd
/opt/tools/network_simulators/core/core
[root@localhost core]#
./bootstrap.sh
./configure --with-startup=systemd
make -j4
make install
[root@localhost core]#
systemctl daemon-reload
systemctl start core-daemon.service
systemctl restart core-daemon.service
systemctl status core-daemon.service
systemctl stop core-daemon.service
core-gui
------------------------------------------------------------------------
附(出错)图:
can not find channel named "sock5634462858a0"
can not find channel named "sock5634462858a0"
while executing
"puts -nonewline $channel $msg$name$name_pad"
(procedure "sendNodeAddMessage" line 73)
invoked from within
"sendNodeAddMessage $sock $node"
(procedure "deployCfgAPI" line 60)
invoked from within
"deployCfgAPI $emul_sock"
(procedure "setOperMode" line 56)
invoked from within
"setOperMode $mode"
(procedure "startStopButton" line 28)
invoked from within
"startStopButton exec"
invoked from within
".left.start invoke"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list $w $cmd]"
(procedure "tk::CheckRadioInvoke" line 3)
invoked from within
"tk::CheckRadioInvoke .left.start"
(command bound to event)
------------------------------------------------------------------------
# tail /var/log/core-daemon.log
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/core/services/dockersvc.py", line 168, in <module>
images = client.images()
File "/usr/lib/python2.7/site-packages/docker/api/image.py", line 40, in images
True)
File "/usr/lib/python2.7/site-packages/docker/client.py", line 158, in _result
self._raise_for_status(response)
File "/usr/lib/python2.7/site-packages/docker/client.py", line 154, in _raise_for_status
raise errors.APIError(e, response, explanation=explanation)
APIError: 400 Client Error: Bad Request ("client version 1.10 is too old. Minimum supported API version is 1.12, please upgrade your client to a newer version")
----------------------------
[root@localhost docker-py-master]# grep inspect_image -R /usr/lib/python2.7
/usr/lib/python2.7/site-packages/docker/api/image.py: def inspect_image(self, image):
匹配到二进制文件 /usr/lib/python2.7/site-packages/docker/api/image.pyc
[root@localhost docker-py-master]# gedit /usr/lib/python2.7/site-packages/docker/api/image.py
[root@localhost docker-py-master]# grep "1.10" -R /usr/lib/python2.7/
/usr/lib/python2.7/site-packages/docker/utils/utils.py: if compare_version('1.10', version) >= 0:
/usr/lib/python2.7/site-packages/docker/api/container.py: if utils.compare_version('1.10', self._version) < 0:
/usr/lib/python2.7/site-packages/core/services/dockersvc.py: client = Client(version='1.10')
/usr/lib/python2.7/site-packages/django/utils/six.py:__version__ = "1.10.0"
/usr/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/__init__.py:__version__ = '1.10.4'
----------------------------
用了一个星期的时间,排除了种种可能出错的原因,终于找到了错误根源
----------------------------
/usr/lib/python2.7/site-packages/core/services/dockersvc.py: client = Client(version='1.10')
修改为
/usr/lib/python2.7/site-packages/core/services/dockersvc.py: client = Client(version='1.12')
因为
# tail /var/log/core-daemon.log
APIError: 400 Client Error: Bad Request ("client version 1.10 is too old. Minimum supported API version is 1.12, please upgrade your client to a newer version")
---------------------------- another error
# tail /var/log/core-daemon.log
File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 453, in send
raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', error(2, 'No such file or directory'))
--- need to start docker
systemctl start docker.service
------------------------------------------------------------------------
[root@localhost core]# pip install docker-py
// After install docker-py, CORE is abnormal, so, uninstall it.
[root@localhost core]# pip uninstall docker-py
[root@localhost ~]# pip uninstall docker-py
You are using pip version 7.1.0, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Uninstalling docker-py-1.8.1:
/usr/lib/python2.7/site-packages/docker/__init__.py
/usr/lib/python2.7/site-packages/docker/__init__.pyc
......
/usr/lib/python2.7/site-packages/docker_py-1.8.1.dist-info/metadata.json
/usr/lib/python2.7/site-packages/docker_py-1.8.1.dist-info/top_level.txt
Proceed (y/n)?
------------------------------------------------------------------------
install docker-py from source code
------------------------------------------------------------------------
docker-py-1.8.1.tar.gz
[root@localhost docker-py-master]# pwd
/opt/tools/network_simulators/core/docker-py-master
[root@localhost docker-py-master]# make
docker build -t docker-py .
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Makefile:11: recipe for target 'build' failed
make: *** [build] Error 1
[root@localhost docker-py-master]# systemctl start docker
[root@localhost docker-py-master]# make
docker build -t docker-py .
Sending build context to Docker daemon 545.8 kB
Step 1 : FROM python:2.7
Trying to pull repository docker.io/library/python ... 2.7: Pulling from library/python
3059b4820522: Pulling fs layer
ff978d850939: Pulling fs layer
------------------------------------------------------------------------
dnf install nload
------------------------------------------------------------------------
[root@localhost core]# pip install docker-py
------------------------------------------------------------------------
[root@localhost core]# pip install docker-py
You are using pip version 7.1.0, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting docker-py
Downloading docker_py-1.8.1-py2.py3-none-any.whl (41kB)
100% |████████████████████████████████| 45kB 131kB/s
Collecting backports.ssl-match-hostname>=3.5 (from docker-py)
Downloading backports.ssl_match_hostname-3.5.0.1.tar.gz
Collecting ipaddress>=1.0.16 (from docker-py)
Downloading ipaddress-1.0.16-py27-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): requests>=2.5.2 in /usr/lib/python2.7/site-packages (from docker-py)
Requirement already satisfied (use --upgrade to upgrade): six>=1.4.0 in /usr/lib/python2.7/site-packages (from docker-py)
Collecting websocket-client>=0.32.0 (from docker-py)
Downloading websocket_client-0.37.0.tar.gz (194kB)
100% |████████████████████████████████| 196kB 253kB/s
Requirement already satisfied (use --upgrade to upgrade): urllib3==1.15.1 in /usr/lib/python2.7/site-packages (from requests>=2.5.2->docker-py)
Installing collected packages: backports.ssl-match-hostname, ipaddress, websocket-client, docker-py
Running setup.py install for backports.ssl-match-hostname
Found existing installation: ipaddress 1.0.7
Uninstalling ipaddress-1.0.7:
Successfully uninstalled ipaddress-1.0.7
Running setup.py install for websocket-client
Successfully installed backports.ssl-match-hostname-3.5.0.1 docker-py-1.8.1 ipaddress-1.0.16 websocket-client-0.37.0
[root@localhost core]#
------------------------------------------------------------------------
------------------------------------------------------------------------
On this platform you should run core-gui as a normal user.
------------------------------------------------------------------------
[root@localhost core]#
systemctl daemon-reload
systemctl start core-daemon.service
systemctl restart core-daemon.service
systemctl status core-daemon.service
systemctl stop core-daemon.service
core-gui
//When adding an image, this image will be listed in the services after we restart the core-daemon:
[root@localhost core]# systemctl restart core-daemon.service
/etc/init.d/core-daemon start
[root@localhost core]# ./configure --with-startup=none
/usr/local/sbin/core-daemon start
[root@localhost core]# core-gui
-----------------------
dnf install python-sphinx
cd core/doc
make html
make latexpdf
-----------------------INSTALL CORE --- OK OK
----------------------------------------------------
So far, OK
----------------------------------------------------
-----------------------TESTING CORE & DOCKER --- OK OK
[root@localhost 桌面]# . iptables_core.sh
[root@localhost 桌面]# systemctl restart firewalld.service
// [root@localhost core]# dnf install openvswitch
// [root@localhost core]# /usr/share/openvswitch/scripts/ovs-ctl --system-id=random start
[root@localhost core]# systemctl daemon-reload
[root@localhost core]# systemctl start core-daemon.service
[root@localhost core]# core-gui
/root/.core/configs/m-MPE-manet.imn
Under the Session Menu, the Options... dialog has an option to set a control network prefix.
This can be set to a network prefix such as 172.16.0.0/24
-------------------------------------
[root@n6 n6.conf]#
-------------------------------------
route add default gw 172.16.0.254
route -n
cat /etc/resolv.conf
ping www.bupt.edu.cn
docker daemon &
docker daemon --storage-driver=overlay &
docker daemon -s devicemapper &
docker daemon -H fd:// &
docker run hello-world
systemctl status systemd-udevd.service -l
ExecStart=/usr/bin/docker daemon -H fd://
docker daemon -s overlay &
docker images
docker tag 778a53015523 centos:core
************************************
ps aux |grep docker
rm /var/lib/docker/ -rf
************************************
docker search centos
docker pull centos
docker images
docker rmi 778a53015523
docker tag 40467a0b3d66 centos:core
docker tag 44776f55294a ubuntu:core
docker run hello-world
docker run centos echo "hello world!"
docker run ubuntu echo "hello world!"
docker run ubuntu:core echo "hello world!"
docker run -it busybox /bin/sh
docker run --rm -it busybox /bin/sh
docker tag 307ac631f1b5 docker.io/busybox:core
docker run --rm -it busybox:core /bin/sh
docker run -v /tmp/dockerdev:/dev -it --rm centos:core bash
docker run -d --net host --name coreDock busybox /bin/sh
docker ps -a
brctl show
ldd $(which docker)
ps aux |grep docker
-------------------------------------
[root@localhost core]# less /var/log/messages
May 7 10:29:16 localhost systemd-udevd: conflicting device node '/dev/mapper/docker-8:2-399750-pool' found, link to '/dev/dm-1' will not be created
May 7 10:29:16 localhost systemd-udevd: conflicting device node '/dev/mapper/docker-8:2-399750-base' found, link to '/dev/dm-2' will not be created
-------------------------------------
#!/bin/sh
# auto-generated by Docker (docker.py)
#echo "nameserver 8.8.8.8" > /run/resolvconf/resolv.conf
#docker daemon -s devicemapper
docker daemon -D -s overlay
# you could add a command to start a image here eg:
# docker run -d --net host --name coreDock <imagename>
+++++++++++++++++++++++++++++++++++++++++++
How to examine the Docker daemon log file
+++++++++++++++++++++++++++++++++++++++++++
Docker daemon log locations depend on the operating system. A good outline is in this stackoverflow question (http://stackoverflow.com/a/30970134/235000) on the matter. In summary:
Older Ubuntu - /var/log/upstart/docker.log
Boot2Docker - /var/log/docker.log
Debian GNU/Linux - /var/log/daemon.log
CentOS - /var/log/daemon.log | grep docker
Fedora - journalctl -fu docker.service
Red Hat Enterprise Linux Server - /var/log/messages | grep docker
OpenSuSE/Ubuntu - journalctl -fu docker.service
+++++++++++++++++++++++++++++++++++++++++++
-----------------------Test CORE
To test that the CORE Network Emulator is working, start the CORE daemon and the GUI.
[root@localhost core]# pwd
/opt/tools/network_simulators/core/core
[root@localhost core]# /etc/init.d/core-daemon start
[root@localhost core]# core-gui
[root@localhost core]# ls /tmp/pycore.56386/
n1 n1.xy n3.pid n5.log n7.conf/ n9
n10 n2 n3.xy n5.pid n7.log n9.conf/
n10.conf/ n2.conf/ n4 n5.xy n7.pid n9.log
n10.log n2.log n4.conf/ n6 n7.xy n9.pid
n10.pid n2.pid n4.log n6.conf/ n8 n9.xy
n10.xy n2.xy n4.pid n6.log n8.conf/ nodes
n1.conf/ n3 n4.xy n6.pid n8.log servers
n1.log n3.conf/ n5 n6.xy n8.pid session-deployed.xml
n1.pid n3.log n5.conf/ n7 n8.xy state
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
关键点
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
core-svnsnap.tgz
[root@localhost core]# pwd
/opt/tools/network_simulators/core/core
[root@localhost core]# gedit ./daemon/core/mobility.py
-------------------------------------设置节点移动的时间间隔
def runround(self):
''' Advance script time and move nodes.
'''
#ztg add
time.sleep(6)
-------------------------------------设置节点移动的间距
#ztg add
#wp = self.WayPoint(time, nodenum, coords=(x,y,z), speed=speed)
wp = self.WayPoint(time, nodenum, coords=(x,y,z), speed=3)
-------------------------------------
[root@localhost core]# systemctl start squid.service
[root@localhost core]# systemctl start docker
[root@localhost core]# /etc/init.d/core-daemon stop
[root@localhost core]# make uninstall ; make clean
[root@localhost core]# make -j4
[root@localhost core]# make install
[root@localhost core]# systemctl enable core-daemon
Created symlink from /etc/systemd/system/multi-user.target.wants/core-daemon.service to /etc/systemd/system/core-daemon.service.
problem:
[root@n6 n6.conf]# docker info
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
resolve:
[root@localhost core]# iptables -F
[root@localhost core]# ip6tables -F
[root@localhost 桌面]# service core-daemon status
Redirecting to /bin/systemctl status core-daemon.service
core-daemon.service - Common Open Research Emulator Service
Loaded: loaded (/etc/systemd/system/core-daemon.service; disabled)
Active: inactive (dead)
[root@localhost 桌面]# cat /etc/systemd/system/core-daemon.service
[Unit]
Description=Common Open Research Emulator Service
After=network.target
[Service]
Type=forking
PIDFile=/var/run/core-daemon.pid
ExecStart=/usr/bin/python /usr/local/sbin/core-daemon -d
[Install]
WantedBy=multi-user.target
Here maybe what is installed with 'make install':
/usr/local/bin/core-gui
/usr/local/sbin/core-daemon
/usr/local/sbin/[vcmd, vnoded, coresendmsg, core-cleanup.sh]
/usr/local/lib/core/*
/usr/local/share/core/*
/usr/local/lib/python2.6/dist-packages/core/*
/usr/local/lib/python2.6/dist-packages/[netns,vcmd].so
/etc/core/*
/etc/init.d/core
[root@localhost core]# /usr/share/openvswitch/scripts/ovs-ctl --system-id=random start
Starting ovsdb-server [ OK ]
Configuring Open vSwitch system IDs [ OK ]
Starting ovs-vswitchd [ OK ]
Enabling remote OVSDB managers [ OK ]
//Fedora 23 & CentOS 7
[root@localhost core]# systemctl daemon-reload
[root@localhost core]# systemctl start core-daemon.service
[root@localhost core]# core-gui
++++++++++++++++++++++++++++++++++++++++++++++++++ 20160507
[root@localhost core]# ./bootstrap.sh
Bootstrapping the autoconf system...
(Messages below about copying and installing files are normal.)
(1/4) Running aclocal...
(2/4) Running autoheader...
(3/4) Running automake...
configure.ac:124: installing 'config/compile'
configure.ac:28: installing 'config/install-sh'
configure.ac:28: installing 'config/missing'
daemon/src/Makefile.am: installing 'config/depcomp'
(4/4) Running autoconf...
You are now ready to run "./configure".
[root@localhost core]# ./configure --with-startup=systemd
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '0' is supported by ustar format... yes
checking whether GID '0' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking for gawk... (cached) gawk
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether make sets $(MAKE)... (cached) yes
checking for ranlib... ranlib
checking for a Python interpreter with version >= 2.6... python
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... linux2
checking for python script directory... ${prefix}/lib/python2.7/site-packages
checking for python extension module directory... ${exec_prefix}/lib64/python2.7/site-packages
checking for brctl... /usr/sbin
checking for sysctl... /usr/sbin
checking for ebtables... /usr/sbin
checking for ip... /usr/sbin
checking for tc... /usr/sbin
checking for ifconfig... /usr/sbin
checking for ngctl... no
checking for vimage... no
checking for mount... /usr/bin
checking for umount... /usr/bin
checking for convert... yes
checking for help2man... yes
checking for NgMkSockNode in -lnetgraph... no
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/mount.h usability... yes
checking sys/mount.h presence... yes
checking for sys/mount.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking for inline... inline
checking for int32_t... yes
checking for pid_t... yes
checking for size_t... yes
checking for ssize_t... yes
checking for uint32_t... yes
checking for uint8_t... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... no
checking for vfork... yes
checking for working vfork... (cached) yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking for atexit... yes
checking for dup2... yes
checking for gettimeofday... yes
checking for memset... no
checking for socket... yes
checking for strerror... yes
checking for uname... yes
using architecture amd64
checking Python.h usability... yes
checking Python.h presence... yes
checking for Python.h... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for libev... no
did not find libev using pkconfig...
checking for ev_set_allocator in -lev... yes
found libev OK
using startup option systemd
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating gui/core-gui
config.status: creating gui/version.tcl
config.status: creating gui/Makefile
config.status: creating gui/icons/Makefile
config.status: creating scripts/Makefile
config.status: creating scripts/core-daemon.service
config.status: creating scripts/perf/Makefile
config.status: creating scripts/xen/Makefile
config.status: creating doc/Makefile
config.status: creating doc/conf.py
config.status: creating doc/man/Makefile
config.status: creating doc/figures/Makefile
config.status: creating daemon/Makefile
config.status: creating daemon/src/Makefile
config.status: creating daemon/src/version.h
config.status: creating daemon/core/constants.py
config.status: creating daemon/ns3/Makefile
config.status: creating daemon/ns3/corens3/constants.py
config.status: creating daemon/doc/Makefile
config.status: creating daemon/doc/conf.py
config.status: creating packaging/deb/core-daemon.install
config.status: creating packaging/deb/core-daemon.prerm
config.status: creating packaging/deb/core-gui.install
config.status: creating packaging/rpm/core.spec
config.status: creating config.h
config.status: executing depfiles commands
------------------------------------------------------------------------
core 4.8 Configuration:
Host System Type:
C Compiler and flags: gcc -O3 -Werror -Wall -D_GNU_SOURCE
Install prefix: /usr/local
Build GUI: yes
GUI path: /usr/local/lib/core
GUI config: ${HOME}/.core
Daemon path: /usr/local/sbin
Daemon config: /etc/core
Python install prefix: /usr
Python modules: ${pyprefix}/lib/python2.7/site-packages
Logs: /var/log
Features to build:
Python bindings: yes
Linux Namespaces emulation: yes
FreeBSD Jails emulation: no
Documentation: yes
------------------------------------------------------------------------
On this platform you should run core-gui as a normal user.
------------------------------------------------------------------------
[root@localhost core]#
++++++++++++++++++++++++++++++++++++++++++++++++++ 20160507
++++++++++++++++++++++++++++++++++++++++++++++++++ 20160508
pip uninstall pip
-------------------
install pip
-------------------
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
pip --help
pip -V
-------------------
[root@localhost ~]# pip install docker-py
You are using pip version 7.1.0, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting docker-py
Downloading docker_py-1.8.1-py2.py3-none-any.whl (41kB)
100% |████████████████████████████████| 45kB 339kB/s
Collecting backports.ssl-match-hostname>=3.5 (from docker-py)
Downloading backports.ssl_match_hostname-3.5.0.1.tar.gz
Collecting ipaddress>=1.0.16 (from docker-py)
Downloading ipaddress-1.0.16-py27-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): requests>=2.5.2 in /usr/lib/python2.7/site-packages (from docker-py)
Requirement already satisfied (use --upgrade to upgrade): six>=1.4.0 in /usr/lib/python2.7/site-packages (from docker-py)
Collecting websocket-client>=0.32.0 (from docker-py)
Downloading websocket_client-0.37.0.tar.gz (194kB)
100% |████████████████████████████████| 196kB 348kB/s
Requirement already satisfied (use --upgrade to upgrade): urllib3==1.15.1 in /usr/lib/python2.7/site-packages (from requests>=2.5.2->docker-py)
Installing collected packages: backports.ssl-match-hostname, ipaddress, websocket-client, docker-py
Running setup.py install for backports.ssl-match-hostname
Found existing installation: ipaddress 1.0.7
Uninstalling ipaddress-1.0.7:
Successfully uninstalled ipaddress-1.0.7
Running setup.py install for websocket-client
Successfully installed backports.ssl-match-hostname-3.5.0.1 docker-py-1.8.1 ipaddress-1.0.16 websocket-client-0.37.0
[root@localhost ~]# nautilus /opt/tools/network_simulators/core
[root@localhost ~]# pip install --upgrade pip
You are using pip version 7.1.0, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/pip/
Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/pip/
Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/pip/
Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f4d173a46d0>, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/pip/
Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f4d173a4810>, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/pip/
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/pip/
Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/pip/
Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f4d173a4990>, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/pip/
Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/pip/
Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/pip/
Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages
[root@localhost ~]#
++++++++++++++++++++++++++++++++++++++++++++++++++ 20160508