Merge "Enabling test cases execution as part of daily job"
authorJiang, Yunhong <yunhong.jiang@intel.com>
Fri, 11 Aug 2017 05:42:21 +0000 (05:42 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Fri, 11 Aug 2017 05:42:21 +0000 (05:42 +0000)
17 files changed:
ci/cyclicTestTrigger.sh
ci/envs/host-run-livemigration.sh [new file with mode: 0755]
ci/envs/setup_ovsdpdk.sh [new file with mode: 0755]
ci/test_kvmfornfv.sh
fuel-plugin/Dockerfile [deleted file]
fuel-plugin/LICENSE [deleted file]
fuel-plugin/README.md [deleted file]
fuel-plugin/build_kvm.sh [deleted file]
fuel-plugin/deployment_scripts/puppet/manifests/kvm-install.pp [deleted file]
fuel-plugin/deployment_scripts/puppet/modules/.gitkeep [deleted file]
fuel-plugin/deployment_tasks.yaml [deleted file]
fuel-plugin/environment_config.yaml [deleted file]
fuel-plugin/metadata.yaml [deleted file]
fuel-plugin/pre_build_hook [deleted file]
fuel-plugin/tasks.yaml [deleted file]
fuel-plugin/vagrant/Vagrantfile [deleted file]
fuel-plugin/vagrant/build_fuel_plugin.sh [deleted file]

index 7f606b0..4bb8fe5 100755 (executable)
@@ -139,15 +139,15 @@ function cleanup {
    fi
 }
 
-#environment setup for executing packet forwarding test cases
-function setUpPacketForwarding {
-   #copying required files to run packet forwarding test cases
+function nodeSetup {
+   #copying required files to run kvmfornfv testcases
    ssh root@$HOST_IP "mkdir -p /root/workspace/image"
    ssh root@$HOST_IP "mkdir -p /root/workspace/rpm"
    ssh root@$HOST_IP "mkdir -p /root/workspace/scripts"
    #Copying the host configuration scripts on to host
    scp -r $WORKSPACE/ci/envs/* root@$HOST_IP:/root/workspace/scripts
    scp -r $WORKSPACE/tests/vsperf.conf* root@$HOST_IP:/root/workspace/scripts
+   scp -r $WORKSPACE/tests/pod.yaml root@$HOST_IP:/root/workspace/scripts
    scp -r $WORKSPACE/build_output/kernel-${KERNELRPM_VERSION}*.rpm root@$HOST_IP:/root/workspace/rpm
    scp -r $WORKSPACE/build_output/kernel-devel-${KERNELRPM_VERSION}*.rpm root@$HOST_IP:/root/workspace/rpm
    scp -r $WORKSPACE/build_output/qemu-${QEMURPM_VERSION}*.rpm root@$HOST_IP:/root/workspace/rpm
@@ -158,6 +158,12 @@ function setUpPacketForwarding {
    sleep 10
 }
 
+#environment setup for executing packet forwarding test cases
+function setUpPacketForwarding {
+   echo "Copying required files to execute packet forwarding test case"
+   nodeSetup
+}
+
 #executing packet forwarding test cases
 function runPacketForwarding {
    testType=$1
@@ -220,3 +226,24 @@ function runCyclicTest {
       cleanup $cyclictest_output
    fi
 }
+function runLiveMigration {
+   test_env=$1
+   if [ ${test_env} == "peer-peer" ];then
+      echo "live migration is not implemented for peer to peer"
+   else
+      echo "In runLiveMigration Function"
+      echo "Copying required files to execute live migration"
+      nodeSetup
+      connect_host
+      sleep 15
+      echo " Displaying the number of huge pages on node"
+      ssh root@$HOST_IP "cd /root/workspace/scripts;cat /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages"
+      echo " Displaying the free huge pages on node"
+      ssh root@$HOST_IP "cd /root/workspace/scripts;cat /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages"
+      ssh root@$HOST_IP "cd /root/workspace/scripts ; ./host-setup1.sh"
+      echo "Setting up ovs-dpdk on the host"
+      ssh root@$HOST_IP "cd /root/workspace/scripts ; ./setup_ovsdpdk.sh"
+      ssh root@$HOST_IP "cd /root/workspace/scripts ; ./host-install-qemu.sh"
+      ssh root@$HOST_IP "cd /root/workspace/scripts ; ./host-run-livemigration.sh"
+  fi
+}
diff --git a/ci/envs/host-run-livemigration.sh b/ci/envs/host-run-livemigration.sh
new file mode 100755 (executable)
index 0000000..a089ad4
--- /dev/null
@@ -0,0 +1,108 @@
+#!/bin/bash
+
+##############################################################################
+##Copyright (c) 2015 Intel Corp.
+##
+## All rights reserved. This program and the accompanying materials
+## are made available under the terms of the Apache License, Version 2.0
+## which accompanies this distribution, and is available at
+## http://www.apache.org/licenses/LICENSE-2.0
+###############################################################################
+
+source utils.sh
+source host-config
+
+HOST_IP=$( getHostIP )
+#source qmp-sock for conmunication with qemu
+qmp_sock_src="/tmp/qmp-sock-src"
+#destination qmp-sock for conmunication with qemu, only for local live migration
+qmp_sock_dst="/tmp/qmp-sock-dst"
+
+VHOSTPATH1='/usr/local/var/run/openvswitch/vhost-user1'
+VHOSTPATH2='/usr/local/var/run/openvswitch/vhost-user2'
+
+VHOSTPATH3='/usr/local/var/run/openvswitch/vhost-user3'
+VHOSTPATH4='/usr/local/var/run/openvswitch/vhost-user4'
+
+MACADDRESS1='52:54:00:12:34:56'
+MACADDRESS2='54:54:00:12:34:56'
+
+#destination host ip address
+incoming_ip=0
+migrate_port=4444
+max_down_time=10
+
+
+OVSLOGFILE='/var/log/openvswitch/ovs-vswitchd.log'
+
+function run_qemusrc() {
+  $qemu -enable-kvm -cpu host -smp ${guest_cpus} -chardev socket,id=char1,path=$VHOSTPATH1 \
+        -netdev type=vhost-user,id=net1,chardev=char1,vhostforce \
+        -device virtio-net-pci,netdev=net1,mac=$MACADDRESS1 \
+        -chardev socket,id=char2,path=$VHOSTPATH2 \
+        -netdev type=vhost-user,id=net2,chardev=char2,vhostforce \
+        -device virtio-net-pci,netdev=net2,mac=$MACADDRESS2 -m 1024 -mem-path /dev/hugepages \
+        -mem-prealloc -realtime mlock=on -monitor unix:${qmp_sock_src},server,nowait \
+        -balloon virtio -drive file=/root/guest1.qcow2 -vnc :1 &
+  if [ ${?} -ne 0 ] ; then
+    echo "Qemu Source not started"
+    exit 1
+  fi
+}
+
+function run_qemulisten() {
+  $qemu -enable-kvm -cpu host -smp ${guest_cpus} -chardev socket,id=char1,path=$VHOSTPATH3 \
+  -netdev type=vhost-user,id=net1,chardev=char1,vhostforce \
+  -device virtio-net-pci,netdev=net1,mac=$MACADDRESS1 \
+  -chardev socket,id=char2,path=$VHOSTPATH4 \
+  -netdev type=vhost-user,id=net2,chardev=char2,vhostforce \
+  -device virtio-net-pci,netdev=net2,mac=$MACADDRESS2 -m 1024 -mem-path /dev/hugepages \
+  -mem-prealloc -realtime mlock=on -monitor unix:${qmp_sock_dst},server,nowait \
+  -balloon virtio -drive file=/root/guest1.qcow2 -incoming tcp:${incoming_ip}:${migrate_port} -vnc :3 &
+  if [ ${?} -ne 0 ] ; then
+    echo "Qemu Standby not started"
+    exit 1
+  fi
+}
+
+function do_migration() {
+
+  local src=$1
+  local dst=$2
+#with no speed limit
+  echo "migrate_set_speed 0" |nc -U $src
+#set the expected max downtime
+  echo "migrate_set_downtime ${max_down_time}" |nc -U $src
+#start live migration
+  echo "migrate -d tcp:${incoming_ip}:${migrate_port}" |nc -U $src
+#wait until live migration completed
+  status=""
+  while [  "${status}" == ""  ]
+  do
+     status=`echo "info migrate" | nc -U $src |grep completed | cut -d: -f2`
+     echo ${status}
+     sleep 1;
+  done
+#get the related data
+ status=`echo "info migrate" | nc -U $src |grep completed | cut -d: -f2`
+ total_time=`echo "info migrate" | nc -U $src |grep "total time" | cut -d: -f2`
+ down_time=`echo "info migrate" | nc -U $src |grep "downtime" | cut -d: -f2`
+
+#print detail information
+ echo "info migrate" | nc -U $src
+ echo "quit" | nc -U $src
+ echo "quit" | nc -U $dst
+ sleep 5
+ echo "Migration executed successfully"
+}
+echo "Running Qemu Source"
+run_qemusrc
+sleep 60
+echo "Running Qemu listen"
+run_qemulisten
+sleep 60
+do_migration $qmp_sock_src $qmp_sock_dst
+if [ ${?} -ne 0 ] ; then
+   echo "Migration Failed"
+   exit 1
+fi
diff --git a/ci/envs/setup_ovsdpdk.sh b/ci/envs/setup_ovsdpdk.sh
new file mode 100755 (executable)
index 0000000..bd26dfb
--- /dev/null
@@ -0,0 +1,100 @@
+#!/bin/bash
+
+#############################################################################
+#Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+source host-config
+OVSLOGFILE="/usr/local/var/run/openvswitch/ovs-vswitchd.log"
+HOME='/home/jenkins'
+VSPERF="${HOME}/vswitchperf"
+
+function install_ovsdpdk() {
+ #Installing ovs dpdk using vsperf environment
+ echo "Installing ovs dpdk using vsperf environment"
+ install_vsperf
+ setup_ovsdpdk
+}
+function install_vsperf() {
+ echo "Installing vsperf....."
+ ( cd $VSPERF/systems ; ./build_base_machine.sh )
+ if [ ${?} -ne 0 ]; then
+    echo "Execution of build_base_machine.sh failed"
+    exit 1
+ fi
+}
+function setup_ovsdpdk() {
+ sudo mkdir -p /usr/local/var/run/openvswitch
+ sudo mkdir -p /usr/local/etc/openvswitch
+ sudo modprobe openvswitch
+
+ #Kill the ovsswitch and ovsdbserver
+ cd $VSPERF/src/ovs/ovs
+ ps aux | grep 'ovsdb-server.pid' | awk '{print $2}' | head -1 | xargs kill -SIGTERM
+ ps aux | grep 'ovs-vswitchd.pid' | awk '{print $2}' | head -1 | xargs kill -SIGTERM
+ kill -SIGTERM 39424
+
+ rm -f /usr/local/var/run/openvswitch/vhost-user*
+ rm -f /usr/local/etc/openvswitch/conf.db
+
+ #Start database server
+ echo "Start ovs database server"
+ export DB_SOCK=/usr/local/var/run/openvswitch/db.sock
+ cd $VSPERF/src/ovs/ovs/ovsdb
+ sudo ./ovsdb-tool create /usr/local/etc/openvswitch/conf.db $VSPERF/src/ovs/ovs/vswitchd/vswitch.ovsschema
+ if [ ${?} -ne 0 ] ; then
+    echo "Creation of db and schema files failed"
+    exit 1
+ fi
+ sudo ./ovsdb-server --remote=punix:$DB_SOCK --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach
+ if [ ${?} -ne 0 ] ; then
+    echo "Starting of DB server failed"
+    exit 1
+ fi
+ #Start OVS
+ echo "Start OVS"
+ cd $VSPERF/src/ovs/ovs/utilities
+ sudo ./ovs-vsctl --no-wait init
+ sudo ./ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=0xf
+ sudo ./ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=1024
+ sudo ./ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
+ echo "Setting Huge pages on Node0"
+ node0_pages=10
+ node0_dir="/sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages"
+ node0_pages+=`cat $node0_dir`
+ echo ${node0_pages} > ${node0_dir}
+
+ echo "Setting Huge pages on Node1"
+ node1_pages=10
+ node1_dir="/sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages"
+ node1_pages+=`cat $node1_dir`
+ echo ${node1_pages} > ${node1_dir}
+
+ free_hp0=`cat /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/free_hugepages`
+ free_hp1=`cat /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/free_hugepages`
+ echo "Free Hugepages:${free_hp0}"
+ echo "Free_Hugepages:${free_hp1}"
+
+ cd $VSPERF/src/ovs/ovs/vswitchd
+ sudo ./ovs-vswitchd unix:$DB_SOCK --pidfile --detach --log-file=$OVSLOGFILE
+ if [ ${?} -ne 0 ] ; then
+    echo "ovs-vswitchd not started"
+    exit 1
+ fi
+ sleep 180
+ #Configure the bridge
+ echo "configure OVS Bridge"
+ cd $VSPERF/src/ovs/ovs/utilities
+ sudo ./ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev
+ sudo ./ovs-vsctl add-port ovsbr0 vhost-user1 -- set Interface vhost-user1 type=dpdkvhostuser
+ sudo ./ovs-vsctl add-port ovsbr0 vhost-user2 -- set Interface vhost-user2 type=dpdkvhostuser
+ sudo ./ovs-vsctl add-port ovsbr0 vhost-user3 -- set Interface vhost-user3 type=dpdkvhostuser
+ sudo ./ovs-vsctl add-port ovsbr0 vhost-user4 -- set Interface vhost-user4 type=dpdkvhostuser
+}
+install_ovsdpdk
index 850ba4e..874dc98 100755 (executable)
@@ -18,6 +18,7 @@ cyclictest_env_verify=("idle_idle" "memorystress_idle") #cyclictest environment
 cyclictest_env_daily=("idle_idle" "cpustress_idle" "memorystress_idle" "iostress_idle")
 cyclictest_result=0 #exit code of cyclictest
 packetforward_result=0 #exit code of packet forward
+lm_env_verify=("peer-peer" "local")
 source $WORKSPACE/ci/envs/host-config
 
 #check if any kernel rpms available for testing
@@ -52,6 +53,25 @@ function packetForward {
       exit 1
    fi
 }
+function liveMigration {
+   #executing live migration test case on the host machine
+   test_env=$1
+   echo "Test Environment ${test_env}"
+   if [ ${test_env} == "peer-peer" ];then
+      echo "live migration is not implemented for peer to peer"
+      livemigration_result=0
+   elif [ ${test_env} == "local" ];then
+      source $WORKSPACE/ci/cyclicTestTrigger.sh $HOST_IP
+      connect_host
+      #Waiting for ssh to be available for the host machine.
+      sleep 20
+      runLiveMigration ${test_env}
+      livemigration_result=$?
+   else
+      echo "Incorrect test environment for live migration"
+      exit 1
+   fi
+}
 
 function getTestParams {
    HOST_IP=$( setHostIP $test_type )
@@ -140,6 +160,11 @@ if [ ${test_type} == "verify" ];then
       done
       #Execution of packet forwarding test cases.
       packetForward
+      for envi in ${lm_env_verify[@]}
+      do
+         echo "Executing Live Migration on the node"
+         liveMigration ${envi}
+      done
    fi
    if [ ${cyclictest_result} -ne 0 ] ||  [ ${packetforward_result} -ne 0 ];then
       echo "Test case FAILED"
@@ -190,6 +215,21 @@ elif [ ${test_type} == "daily" ];then
             echo "Cyclictest case executed SUCCESSFULLY"
             test_exit 0
          fi
+   elif [ ${test_name} == "livemigration" ];then
+         for envi in ${lm_env_verify[@]}
+         do
+         echo "Executing Live Migration on the node"
+         liveMigration ${envi}
+         done
+         sudo ssh root@${HOST_IP} "rm -rf /root/workspace/*"
+         host_clean
+         if [ ${livemigration_result} -ne 0 ] ; then
+            echo "livemigration test case execution FAILED"
+            test_exit 1
+         else
+            echo "livemigration test case executed SUCCESSFULLY"
+            test_exit 0
+         fi
    fi
 elif [ ${test_type} == "merge" ];then
    echo "Test is not enabled for ${test_type}"
diff --git a/fuel-plugin/Dockerfile b/fuel-plugin/Dockerfile
deleted file mode 100644 (file)
index af8d1c0..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-FROM ubuntu:16.04
-
-RUN apt-get update -y && apt-get install -y sudo
-RUN echo "ALL ALL=NOPASSWD: ALL" > /etc/sudoers.d/open-sudo
-RUN chmod 0440 /etc/sudoers.d/open-sudo
diff --git a/fuel-plugin/LICENSE b/fuel-plugin/LICENSE
deleted file mode 100644 (file)
index e06d208..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   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.
-
diff --git a/fuel-plugin/README.md b/fuel-plugin/README.md
deleted file mode 100644 (file)
index 63ddc4e..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-KVM Plugin for Fuel
-================================
-
-KVM plugin
------------------------
-
-Overview
---------
-
-New fuel plugin fuel-plugin-kvm is to deploy KVM enhancements for NFV
-
-Requirements
-------------
-
-| Requirement                      | Version/Comment |
-|----------------------------------|-----------------|
-| Mirantis OpenStack compatibility | 9.0             |
-
-Recommendations
----------------
-
-None.
-
-Limitations
------------
-
-None.
-
-Build Guide
-===========
-
-Buiding system pre-requistes
-----------------------------
-1. Ubuntu 14.04 LTS desktop or server
-2. Minimum 4 CPU cores, 6 GB RAM, and 200 GB available hard drive space
-3. "VirtualBox" and "vagrant" installed
-
-Buid instruction
-----------------
-1. Clone the kvmfornfv repo from https://gerrit.opnfv.org/gerrit/kvmfornfv by
-   "git clone https://gerrit.opnfv.org/gerrit/kvmfornfv".
-2. You can modify the kernel code in kvmfornfv/kernel as you want.
-3. Go to kvmfornfv/fuel-plugin/vagrant, type "vagrant destroy -f; vagrant up;
-   vagarant destroy -f", the building will start.
-4. When the building completes, you should find the built fuel-plugin-kvm in
-   kvmfornfv/fuel-plugin/vagrant with the name as "fuel-plugin-kvm-0.9-0.9.0-1.noarch.rpm",
-   where "0.9-0.9.0-1" is the version information for this plugin, this version info
-   may be changed in future. The built plugin incules the changes you made.
-
-Installation Guide
-==================
-1. Move the built fuel-pluginn-kvm to the Fuel Master node with secure copy (scp):
-      scp fuel-plugin-kvm-0.9-0.9.0-1.noarch.rpm root@<the_Fuel_Master_node_IP address>:
-2. While logged in Fuel Masternode, install the KVM plugin by typing:
-        fuel plugins --install fuel-plugin-kvm-0.9-0.9.0-1.noarch.rpm
-3. Check if the plugin was installed successfully by typing "fuel plugins", the folowing
-   should appear:
-
-        id | name             | version | package_version | release
-        ---+------------------+---------+-----------------+--------------------
-        1  | fuel-plugin-kvm  | 0.9.0   | 4.0.0           | ubuntu (mitaka-9.0)
-4. Plugin is ready to use and can be enabled on the Settings tab of the Fuel web UI.
-
-
-User Guide
-==========
-
-KVM plugin configuration
----------------------------------------------
-1. Create a new environment with the Fuel UI wizard.
-2. Click on the Settings tab of the Fuel web UI.
-3. Scroll down the page, select the plugin checkbox.
-
-
-Testing
--------
-None.
-
-Known issues
-------------
-None.
-
-Contributors
-------------
-* davi.j.chou@intel.com, ruijing.guo@intel.comi, ling.y.yu@intel.com
diff --git a/fuel-plugin/build_kvm.sh b/fuel-plugin/build_kvm.sh
deleted file mode 100755 (executable)
index 40220b7..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-
-SRC=/root
-CONFIG="arch/x86/configs/opnfv.config"
-VERSION="1.0.OPNFV"
-
-quirks() {
-#
-# Apply out of tree patches
-#
-for i in $SRC/kvmfornfv/patches/$1/*.patch
-do
-    if [ -f "$i" ]
-    then
-        echo "Applying: $i"
-        patch -p1 <$i
-    fi
-done
-}
-
-apt-get update
-apt-get install -y git fakeroot build-essential ncurses-dev xz-utils kernel-package bc autoconf automake libtool python python-pip libssl-dev
-
-#
-# Build kernel in another directory, so some files (which are root writeable only) generated during kernel
-#   building wouldn't remain in the source directory mapped into Docker container
-#
-cp -r /kvmfornfv $SRC/.
-
-cd $SRC/kvmfornfv/
-quirks kernel
-
-cd kernel
-
-# Workaround build bug on Ubuntu 14.04
-cat <<EOF > arch/x86/boot/install.sh
-#!/bin/sh
-cp -a -- "\$2" "\$4/vmlinuz-\$1"
-EOF
-
-# Configure the kernel
-cp $CONFIG .config
-
-make oldconfig </dev/null
-
-# Build the kernel debs
-make-kpkg clean
-
-fakeroot make-kpkg --initrd --revision=$VERSION kernel_image kernel_headers -j$(nproc)
-
-cp $SRC/kvmfornfv/linux-headers*.deb /kvmfornfv/.
-cp $SRC/kvmfornfv/linux-image*.deb /kvmfornfv/.
diff --git a/fuel-plugin/deployment_scripts/puppet/manifests/kvm-install.pp b/fuel-plugin/deployment_scripts/puppet/manifests/kvm-install.pp
deleted file mode 100644 (file)
index 5f14f1a..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-$kvm_settings = hiera('fuel-plugin-kvm')
-
-case $::operatingsystem {
-  'Ubuntu': {
-    $version         = '4.4.50-rt62nfv'
-    $kernel_kit      = ["linux-headers-${version}", "linux-image-${version}"]
-    $kernel_src      = "/usr/src/linux-headers-${version}"
-    $kernel_src_link = "/lib/modules/${version}/build"
-
-    shellvar { 'GRUB_DEFAULT':
-      ensure => present,
-      target => '/etc/default/grub',
-      value  => "Advanced options for Ubuntu>Ubuntu, with Linux ${version}",
-      quoted => 'double',
-      notify => Exec['update_grub'],
-    }
-  }
-  default: {
-    fail("Unsupported operating system: ${::osfamily}/${::operatingsystem}")
-  }
-
-}
-
-if $kvm_settings['use_kvm'] {
-  $ensure_pkg  = '1.0.OPNFV'
-  $ensure_link = 'link'
-} else {
-  $ensure_pkg  = 'purged'
-  $ensure_link = 'absent'
-}
-
-exec { 'update_grub':
-  command     => '/usr/sbin/update-grub',
-  refreshonly => true,
-}
-
-package { $kernel_kit:
-  ensure => $ensure_pkg,
-  before => File[$kernel_src_link],
-}
-
-file { $kernel_src_link:
-  ensure => $ensure_link,
-  target => $kernel_src,
-}
diff --git a/fuel-plugin/deployment_scripts/puppet/modules/.gitkeep b/fuel-plugin/deployment_scripts/puppet/modules/.gitkeep
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/fuel-plugin/deployment_tasks.yaml b/fuel-plugin/deployment_tasks.yaml
deleted file mode 100644 (file)
index 94dce11..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-- id: kvm_install
-  type: puppet
-  version: 2.1.0
-  role: [compute]
-  requires: [pre_deployment_start]
-  required_for: [pre_deployment_end]
-  condition:
-    yaql_exp: &kvm changed($.get('fuel-plugin-kvm'))
-  parameters:
-    puppet_manifest: puppet/manifests/kvm-install.pp
-    puppet_modules: puppet/modules:/etc/puppet/modules
-    timeout: 300
-
-- id: kvm_node_reboot
-  type: reboot
-  version: 2.1.0
-  role: [compute]
-  requires: [kvm_install]
-  required_for: [pre_deployment_end]
-  condition:
-    yaql_exp: *kvm
-  parameters:
-    timeout: 900
diff --git a/fuel-plugin/environment_config.yaml b/fuel-plugin/environment_config.yaml
deleted file mode 100644 (file)
index 1c646d3..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-attributes:
-    use_kvm:
-      type: "checkbox"
-      weight: 20
-      value: false
-      label: "EXPERIMENTAL: KVM enhancements for NFV"
diff --git a/fuel-plugin/metadata.yaml b/fuel-plugin/metadata.yaml
deleted file mode 100644 (file)
index 5f7e42f..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# Plugin name
-name: fuel-plugin-kvm
-# Human-readable name for your plugin
-title: fuel-plugin-kvm
-# Plugin version
-version: '1.0.0'
-# Description
-description: 'This plugin provides to deploy kvm'
-# Required fuel version
-fuel_version: ['10.0']
-# Specify license of your plugin
-licenses: ['Apache License Version 2.0']
-# Specify author or company name
-authors: ['ling.y.yu@intel.com','ruijing.guo@intel.com']
-# A link to the plugin's page
-homepage: 'https://gerrit.opnfv.org/gerrit/kvmfornfv/fuel-plugin'
-# Specify a group which your plugin implements, possible options:
-# network, storage, storage::cinder, storage::glance, hypervisor
-groups: ['hypervisor']
-
-# The plugin is compatible with releases in the list
-releases:
-  - os: ubuntu
-    version: newton-10.0
-    mode: ['ha']
-    deployment_scripts_path: deployment_scripts/
-    repository_path: repositories/ubuntu
-
-# Version of plugin package
-package_version: '4.0.0'
-
-is_hotpluggable: false
diff --git a/fuel-plugin/pre_build_hook b/fuel-plugin/pre_build_hook
deleted file mode 100755 (executable)
index 549bc19..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-set -eux
-
-BUILD_FOR=${BUILD_FOR:-ubuntu}
-DIR="$(dirname `readlink -f $0`)"
-MODULES="${DIR}/deployment_scripts/puppet/modules"
-
-SHELLVAR_VERSION='2.2.1'
-AUGCORE_VERSION='2.1.3'
-
-SHELLVAR_URL="https://github.com/hercules-team/augeasproviders_shellvar/archive/${SHELLVAR_VERSION}.tar.gz"
-AUGCORE_URL="https://github.com/hercules-team/augeasproviders_core/archive/${AUGCORE_VERSION}.tar.gz"
-
-function build_pkg {
-  case $1 in
-    ubuntu)
-      rm -rf repositories/ubuntu; mkdir -p repositories/ubuntu
-      sudo docker build -t kvm .
-
-      # run /kvmfornfv/fuel-plugin/build_kvm.sh in docker
-      sudo docker run -v ${DIR}/..:/kvmfornfv -t  kvm /kvmfornfv/fuel-plugin/build_kvm.sh
-      # debug in console by the following command
-      # sudo docker run -v /kvmfornfv:/kvmfornfv -ti  kvm  /bin/bash
-      cp ${DIR}/../*.deb repositories/ubuntu
-    ;;
-    *) echo "Not supported system"; exit 1;;
-  esac
-}
-
-for system in $BUILD_FOR
-do
-  build_pkg $system
-done
-
-rm -rf ${MODULES}/*
-mkdir -p ${MODULES}/shellvar ${MODULES}/augcore
-
-wget -qO- ${SHELLVAR_URL} | tar -C ${MODULES}/shellvar --strip-components=1 -zxvf -
-wget -qO- ${AUGCORE_URL} | tar -C ${MODULES}/augcore --strip-components=1 -zxvf -
diff --git a/fuel-plugin/tasks.yaml b/fuel-plugin/tasks.yaml
deleted file mode 100644 (file)
index fe51488..0000000
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/fuel-plugin/vagrant/Vagrantfile b/fuel-plugin/vagrant/Vagrantfile
deleted file mode 100644 (file)
index b65433b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-
-# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
-VAGRANTFILE_API_VERSION = "2"
-
-Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
-
-  config.vm.box = "trusty-server-cloudimg-amd64-vagrant-disk1.box"
-  config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
-
-  config.vm.define "fuel" do | h |
-    h.vm.host_name = "fuel"
-    h.vm.provision :shell, :inline => "/vagrant/build_fuel_plugin.sh", privileged: false
-    h.vm.synced_folder "../..", "/kvmfornfv"
-    h.vm.provider :virtualbox do |v|
-      file_to_disk = "large_disk_file.vdi"
-      v.customize ["modifyvm", :id, "--memory", 4096]
-      v.customize ["modifyvm", :id, "--cpus", 4]
-      v.customize ['createhd', '--filename', file_to_disk, '--size', 500 * 1024]
-      v.customize ['storageattach', :id, '--storagectl', 'SATAController', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', file_to_disk ]
-    end
-  end
-end
diff --git a/fuel-plugin/vagrant/build_fuel_plugin.sh b/fuel-plugin/vagrant/build_fuel_plugin.sh
deleted file mode 100755 (executable)
index 58ea3ca..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-sudo apt-get update -y
-sudo apt-get install -y ruby-dev rubygems-integration python-pip rpm createrepo dpkg-dev libssl-dev
-sudo gem install fpm
-sudo pip install fuel-plugin-builder
-sudo apt-get install docker.io -y
-
-echo y | sudo mkfs.ext4 /dev/sdb
-sudo mount /dev/sdb /mnt
-sudo chown vagrant:vagrant /mnt
-
-cd /mnt
-# Will build fuel-plugin-kvm in guest VM local directory, not change host
-cp -r /kvmfornfv .
-cd kvmfornfv/fuel-plugin
-fpb --debug --build .
-# Copy the built fuel-plugin-kvm back to the host
-cp *.rpm /vagrant