summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xci/cyclicTestTrigger.sh33
-rwxr-xr-xci/envs/host-run-livemigration.sh108
-rwxr-xr-xci/envs/setup_ovsdpdk.sh100
-rwxr-xr-xci/test_kvmfornfv.sh40
-rw-r--r--fuel-plugin/Dockerfile7
-rw-r--r--fuel-plugin/LICENSE202
-rw-r--r--fuel-plugin/README.md85
-rwxr-xr-xfuel-plugin/build_kvm.sh52
-rw-r--r--fuel-plugin/deployment_scripts/puppet/manifests/kvm-install.pp45
-rw-r--r--fuel-plugin/deployment_scripts/puppet/modules/.gitkeep0
-rw-r--r--fuel-plugin/deployment_tasks.yaml23
-rw-r--r--fuel-plugin/environment_config.yaml6
-rw-r--r--fuel-plugin/metadata.yaml32
-rwxr-xr-xfuel-plugin/pre_build_hook40
-rw-r--r--fuel-plugin/tasks.yaml1
-rw-r--r--fuel-plugin/vagrant/Vagrantfile24
-rwxr-xr-xfuel-plugin/vagrant/build_fuel_plugin.sh18
17 files changed, 278 insertions, 538 deletions
diff --git a/ci/cyclicTestTrigger.sh b/ci/cyclicTestTrigger.sh
index 7f606b0b6..4bb8fe5d4 100755
--- a/ci/cyclicTestTrigger.sh
+++ b/ci/cyclicTestTrigger.sh
@@ -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
index 000000000..a089ad482
--- /dev/null
+++ b/ci/envs/host-run-livemigration.sh
@@ -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
index 000000000..bd26dfbf6
--- /dev/null
+++ b/ci/envs/setup_ovsdpdk.sh
@@ -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
diff --git a/ci/test_kvmfornfv.sh b/ci/test_kvmfornfv.sh
index 850ba4ead..874dc9864 100755
--- a/ci/test_kvmfornfv.sh
+++ b/ci/test_kvmfornfv.sh
@@ -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
index af8d1c0eb..000000000
--- a/fuel-plugin/Dockerfile
+++ /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
index e06d20818..000000000
--- a/fuel-plugin/LICENSE
+++ /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
index 63ddc4eb9..000000000
--- a/fuel-plugin/README.md
+++ /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
index 40220b7b0..000000000
--- a/fuel-plugin/build_kvm.sh
+++ /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
index 5f14f1a9f..000000000
--- a/fuel-plugin/deployment_scripts/puppet/manifests/kvm-install.pp
+++ /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
index e69de29bb..000000000
--- a/fuel-plugin/deployment_scripts/puppet/modules/.gitkeep
+++ /dev/null
diff --git a/fuel-plugin/deployment_tasks.yaml b/fuel-plugin/deployment_tasks.yaml
deleted file mode 100644
index 94dce117a..000000000
--- a/fuel-plugin/deployment_tasks.yaml
+++ /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
index 1c646d37a..000000000
--- a/fuel-plugin/environment_config.yaml
+++ /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
index 5f7e42f03..000000000
--- a/fuel-plugin/metadata.yaml
+++ /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
index 549bc19ff..000000000
--- a/fuel-plugin/pre_build_hook
+++ /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
index fe51488c7..000000000
--- a/fuel-plugin/tasks.yaml
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/fuel-plugin/vagrant/Vagrantfile b/fuel-plugin/vagrant/Vagrantfile
deleted file mode 100644
index b65433b49..000000000
--- a/fuel-plugin/vagrant/Vagrantfile
+++ /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
index 58ea3ca33..000000000
--- a/fuel-plugin/vagrant/build_fuel_plugin.sh
+++ /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