Fix SFC OVS NSH installation regression
[integration/test.git] / csit / suites / sfc / Full_Deploy / setup-docker-image.sh
1 #!/bin/bash
2
3 set -o xtrace
4 set -o nounset #Do not allow for unset variables
5 #set -e #Exit script if a command fails
6
7 # bootstrap_centos
8 WORK_DIR=`pwd`
9 if sudo yum install -y "kernel-devel-uname-r == $(uname -r)"; then
10    echo "Kernel-devel installed correctly"
11 else
12    echo "Warning: Errors issued when installing kernel-devel"
13 fi
14
15 APT="sudo yum install -y git kernel-debug-devel kernel-headers python-devel vim autoconf automake libtool systemd-units rpm-build openssl openssl-devel groff graphviz selinux-policy-devel python python-twisted-core python-zope-interface python-twisted-web PyQt4 python-six desktop-file-utils procps-ng wget"
16 if $APT; then
17   echo "Pacakges installed correctly"
18 else
19   echo "Installation of packages failed"
20   exit 1
21 fi
22
23 cd $WORK_DIR
24 [ -e configure-ovs.sh ] || \
25    wget https://raw.githubusercontent.com/socketplane/docker-ovs/master/configure-ovs.sh
26 chmod a+x configure-ovs.sh
27 [ -e supervisord.conf ] || \
28    wget https://raw.githubusercontent.com/socketplane/docker-ovs/master/supervisord.conf
29
30 [ -e supervisor-stdout/supervisor-stdout-0.1.1.tar.gz ] || \
31    wget https://pypi.python.org/packages/source/s/supervisor-stdout/supervisor-stdout-0.1.1.tar.gz --no-check-certificate
32
33 [ -e ovs_nsh_patches ] || \
34    git clone https://github.com/yyang13/ovs_nsh_patches.git
35 [ -e ovs ] || \
36    git clone https://github.com/openvswitch/ovs.git
37
38 cd ovs
39 git config user.email "yi.y.yang@intel.com"
40 git config user.name "Yi Yang"
41 git checkout -b v2.6.1 v2.6.1
42 git am ../ovs_nsh_patches/v2.6.1/*.patch
43
44 #compile ovs
45 ./boot.sh
46 ./configure --with-linux=/lib/modules/`uname -r`/build --prefix=/usr/local
47 make rpm-fedora RPMBUILD_OPT="--without check --without libcapng"
48 make DESTDIR=$WORK_DIR/ovs_install/openvswitch_2.6.1 install
49
50 #copy rpms and installation
51 mkdir -p $WORK_DIR/ovs_package
52 find . -name "*.rpm"|xargs -I[] cp [] $WORK_DIR/ovs_package
53 tar cvzf $WORK_DIR/ovs_package/openvswitch_2.6.1.tgz -C $WORK_DIR/ovs_install .
54
55 # install_ovs
56 cd $WORK_DIR/ovs_package
57 CMD='sudo yum list installed openvswitch'
58 if $CMD; then
59   echo "openvswitch already installed"
60 else
61   sudo yum --nogpgcheck -y install `find . -regex "\./openvswitch-[0-9,.,-].*"`
62 fi
63
64 #start ovs
65 sudo /sbin/service openvswitch start
66
67 #prepare libraries for docker image in busybox
68 cd $WORK_DIR
69 cp /usr/lib64/libcrypto.so.10 .
70 cp /usr/lib64/libssl.so.10 .
71 cp /usr/lib64/libgssapi_krb5.so.2 .
72 cp /usr/lib64/libkrb5.so.3 .
73 cp /usr/lib64/libcom_err.so.2 .
74 cp /usr/lib64/libk5crypto.so.3 .
75 cp /usr/lib64/libkrb5support.so.0 .
76 cp /usr/lib64/libkeyutils.so.1 .
77 cp /usr/lib64/libselinux.so.1 .
78 cp /usr/lib64/libpcre.so.1 .
79 cp /usr/lib64/liblzma.so.5 .
80
81 # build_ovs_docker
82 cd $WORK_DIR
83 sudo docker --version
84 if [ -z `sudo docker images | awk '/^ovs-docker / {print $1}'` ];
85  then
86    sudo docker build -t ovs-docker .
87 fi
88
89
90