Merge "Yardstick TC082: move sample test case perf.yaml"
[yardstick.git] / yardstick / network_services / nfvi / collectd.sh
index 8162ec5..296c4a2 100755 (executable)
@@ -13,7 +13,6 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-
 INSTALL_NSB_BIN="/opt/nsb_bin"
 cd $INSTALL_NSB_BIN
 
@@ -23,19 +22,17 @@ if [ "$(whoami)" != "root" ]; then
 fi
 
 echo "setup proxy..."
-http_proxy=$1
-https_proxy=$2
-if [[ "$http_proxy" != "" ]]; then
-    export http_proxy=$http_proxy
-    export https_proxy=$http_proxy
+if [[ -n $1 ]]; then
+    export http_proxy=$1
+    export https_proxy=$2
 fi
 
-if [[ "$https_proxy" != "" ]]; then
-    export https_proxy=$https_proxy
+if [[ -n $2 ]]; then
+    export https_proxy=$2
 fi
 
 echo "Install required libraries to run collectd..."
-pkg=(git flex bison build-essential pkg-config automake  autotools-dev libltdl-dev librabbitmq-dev rabbitmq-server cmake)
+pkg=(git flex bison build-essential pkg-config automake  autotools-dev libltdl-dev librabbitmq-dev rabbitmq-server cmake libvirt-dev)
 for i in "${pkg[@]}"; do
 dpkg-query -W --showformat='${Status}\n' "${i}"|grep "install ok installed"
     if [  "$?" -eq "1" ]; then
@@ -44,9 +41,7 @@ dpkg-query -W --showformat='${Status}\n' "${i}"|grep "install ok installed"
 done
 echo "Done"
 
-ldconfig -p | grep libpqos >/dev/null
-if [ $? -eq 0 ]
-then
+if ldconfig -p | grep -q libpqos ; then
     echo "Intel RDT library already installed. Done"
 else
     pushd .
@@ -54,32 +49,27 @@ else
     echo "Get intel_rdt repo and install..."
     rm -rf intel-cmt-cat >/dev/null
     git clone https://github.com/01org/intel-cmt-cat.git
-    pushd intel-cmt-cat
-    make install PREFIX=/usr
-    popd
+
+    (cd intel-cmt-cat; make install PREFIX=/usr)
 
     popd
     echo "Done."
 fi
 
-ls /usr/lib/libdpdk.so >/dev/null
-if [ $? -eq 0 ]
-then
+if [[ -r /usr/lib/libdpdk.so ]]; then
     echo "DPDK already installed. Done"
 else
     pushd .
 
     echo "Get dpdk and install..."
     mkdir -p $INSTALL_NSB_BIN
-    rm -rf "$INSTALL_NSB_BIN"/dpdk >/dev/null
-    git clone http://dpdk.org/git/dpdk
-    pushd dpdk
+    pushd dpdk-16.07
     mkdir -p /mnt/huge
     mount -t hugetlbfs nodev /mnt/huge
     sed -i 's/CONFIG_RTE_BUILD_SHARED_LIB=n/CONFIG_RTE_BUILD_SHARED_LIB=y/g' config/common_base
     sed -i 's/CONFIG_RTE_EAL_PMD_PATH=""/CONFIG_RTE_EAL_PMD_PATH="\/usr\/lib\/dpdk-pmd\/"/g' config/common_base
 
-                echo "Build dpdk v16.04"
+                echo "Build dpdk v16.07"
                 make config T=x86_64-native-linuxapp-gcc
                 make
                 sudo make install prefix=/usr
@@ -114,6 +104,24 @@ else
     popd
 fi
 
+ls $INSTALL_NSB_BIN/pmu-tools >/dev/null
+if [ $? -eq 0 ]
+then
+    echo "DPDK already installed. Done"
+else
+    cd $INSTALL_NSB_BIN
+
+    git clone https://github.com/andikleen/pmu-tools.git
+    cd pmu-tools
+    cd jevents
+    sed -i -e 's/CFLAGS := -g -Wall -O2 -Wno-unused-result/CFLAGS := -g -Wall -O2 -Wno-unused-result -fPIC/g'  Makefile
+    make
+    sudo make install
+    cd $INSTALL_NSB_BIN/pmu-tools
+    python event_download.py
+fi
+
+cd $INSTALL_NSB_BIN
 which $INSTALL_NSB_BIN/collectd/collectd >/dev/null
 if [ $? -eq 0 ]
 then
@@ -125,9 +133,8 @@ else
     git clone https://github.com/collectd/collectd.git
     pushd collectd
     git stash
-    git checkout -n nfvi 47c86ace348a1d7a5352a83d10935209f89aa4f5
     ./build.sh
-    ./configure --with-libpqos=/usr/ --with-libdpdk=/usr --with-libyajl=/usr/local --enable-debug --enable-dpdkstat --enable-virt --enable-ovs_stats
+    ./configure --with-libpqos=/usr/ --with-libdpdk=/usr --with-libyajl=/usr/local --with-libjevents=/usr/local --enable-debug --enable-dpdkstat --enable-virt --enable-ovs_stats --enable-intel_pmu --prefix=$INSTALL_NSB_BIN/collectd
     make install > /dev/null
     popd
     echo "Done."
@@ -136,7 +143,7 @@ fi
 
 modprobe msr
 cp $INSTALL_NSB_BIN/collectd.conf /opt/collectd/etc/
-
+sudo service rabbitmq-server restart
 echo "Check if admin user already created"
 rabbitmqctl list_users | grep '^admin$' > /dev/null
 if [ $? -eq 0 ];