aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatej Klotton <mklotton@cisco.com>2017-02-17 13:18:43 +0100
committerMatej Klotton <mklotton@cisco.com>2017-02-23 09:40:46 +0100
commit8c465631f6029b174e6d2549e1305b5b4cb8b8de (patch)
tree6cee8cc79889c361dd006c24416a8abf492d2053
parentc5b285aebcfc93dcccf3285abbde672cf000e3cc (diff)
QemuUtil lib change to work with ubuntu and centos
- replace nc to socat for comunicating with qemu QGA - change disk type to use virtio driver - add check to bind only network interface for testpmd Change-Id: I19ab16cbd8fec1ec78263ccfb1309a144e5af845 Signed-off-by: Matej Klotton <mklotton@cisco.com>
-rwxr-xr-xbootstrap-centos.sh2
-rw-r--r--resources/libraries/python/QemuUtils.py26
-rw-r--r--resources/libraries/robot/performance.robot2
-rw-r--r--resources/tools/disk-image-builder/centos/CHANGELOG4
-rwxr-xr-xresources/tools/disk-image-builder/centos/run-listmaker.sh2
-rw-r--r--resources/tools/disk-image-builder/nested/CHANGELOG8
-rwxr-xr-xresources/tools/disk-image-builder/nested/image-patches/06-dpdk-support11
-rw-r--r--resources/tools/disk-image-builder/nested/image-patches/08-virtio-disk8
-rw-r--r--resources/tools/disk-image-builder/ubuntu/CHANGELOG4
-rwxr-xr-xresources/tools/disk-image-builder/ubuntu/run-listmaker.sh2
-rw-r--r--resources/tools/testbed-setup/playbooks/01-host-setup.yaml2
11 files changed, 54 insertions, 17 deletions
diff --git a/bootstrap-centos.sh b/bootstrap-centos.sh
index 0e5e664e2a..a57ae1723e 100755
--- a/bootstrap-centos.sh
+++ b/bootstrap-centos.sh
@@ -27,7 +27,7 @@ VIRL_SERVER_STATUS_FILE="status"
VIRL_SERVER_EXPECTED_STATUS="PRODUCTION"
VIRL_TOPOLOGY=double-ring-nested.centos7
-VIRL_RELEASE=csit-centos-7.3-1611_2017-02-14_1.3
+VIRL_RELEASE=csit-centos-7.3-1611_2017-02-20_1.3
SSH_OPTIONS="-i ${VIRL_PKEY} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes -o LogLevel=error"
diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py
index a4e14d2427..acc00de455 100644
--- a/resources/libraries/python/QemuUtils.py
+++ b/resources/libraries/python/QemuUtils.py
@@ -227,9 +227,10 @@ class QemuUtils(object):
response will contain the "error" keyword instead of "return".
"""
# To enter command mode, the qmp_capabilities command must be issued.
- qmp_cmd = 'echo "{ \\"execute\\": \\"qmp_capabilities\\" }' + \
- '{ \\"execute\\": \\"' + cmd + '\\" }" | sudo -S nc -U ' + \
- self.__QMP_SOCK
+ qmp_cmd = 'echo "{ \\"execute\\": \\"qmp_capabilities\\" }' \
+ '{ \\"execute\\": \\"' + cmd + \
+ '\\" }" | sudo -S socat - UNIX-CONNECT:' + self.__QMP_SOCK
+
(ret_code, stdout, stderr) = self._ssh.exec_command(qmp_cmd)
if int(ret_code) != 0:
logger.debug('QMP execute failed {0}'.format(stderr))
@@ -246,8 +247,9 @@ class QemuUtils(object):
def _qemu_qga_flush(self):
"""Flush the QGA parser state
"""
- qga_cmd = 'printf "\xFF" | sudo -S nc ' \
- '-q 1 -U ' + self.__QGA_SOCK
+ qga_cmd = '(printf "\xFF"; sleep 1) | sudo -S socat - UNIX-CONNECT:' + \
+ self.__QGA_SOCK
+ #TODO: probably need something else
(ret_code, stdout, stderr) = self._ssh.exec_command(qga_cmd)
if int(ret_code) != 0:
logger.debug('QGA execute failed {0}'.format(stderr))
@@ -267,8 +269,10 @@ class QemuUtils(object):
:param cmd: QGA command to execute.
:type cmd: str
"""
- qga_cmd = 'echo "{ \\"execute\\": \\"' + cmd + '\\" }" | sudo -S nc ' \
- '-q 1 -U ' + self.__QGA_SOCK
+ qga_cmd = '(echo "{ \\"execute\\": \\"' + \
+ cmd + \
+ '\\" }"; sleep 1) | sudo -S socat - UNIX-CONNECT:' + \
+ self.__QGA_SOCK
(ret_code, stdout, stderr) = self._ssh.exec_command(qga_cmd)
if int(ret_code) != 0:
logger.debug('QGA execute failed {0}'.format(stderr))
@@ -494,6 +498,9 @@ class QemuUtils(object):
# If 'huge_allocate' is set to true try to allocate as well.
self._huge_page_check(allocate=self._qemu_opt.get('huge_allocate'))
+ # Disk option
+ drive = '-drive file={},format=raw,cache=none,if=virtio'.format(
+ self._qemu_opt.get('disk_image'))
# Setup QMP via unix socket
qmp = '-qmp unix:{0},server,nowait'.format(self.__QMP_SOCK)
# Setup serial console
@@ -505,11 +512,12 @@ class QemuUtils(object):
'-device isa-serial,chardev=qga0'
# Graphic setup
graphic = '-monitor none -display none -vga none'
+
# Run QEMU
- cmd = '{0} {1} {2} {3} {4} -hda {5} {6} {7} {8} {9}'.format(
+ cmd = '{0} {1} {2} {3} {4} {5} {6} {7} {8} {9}'.format(
self.__QEMU_BIN, self._qemu_opt.get('smp'), mem, ssh_fwd,
self._qemu_opt.get('options'),
- self._qemu_opt.get('disk_image'), qmp, serial, qga, graphic)
+ drive, qmp, serial, qga, graphic)
(ret_code, _, stderr) = self._ssh.exec_command_sudo(cmd, timeout=300)
if int(ret_code) != 0:
logger.debug('QEMU start failed {0}'.format(stderr))
diff --git a/resources/libraries/robot/performance.robot b/resources/libraries/robot/performance.robot
index caee7be6e1..20f2f0b0b2 100644
--- a/resources/libraries/robot/performance.robot
+++ b/resources/libraries/robot/performance.robot
@@ -80,7 +80,7 @@
| | ...
| | Set Suite Variable | ${glob_loss_acceptance} | 0.5
| | Set Suite Variable | ${glob_loss_acceptance_type} | percentage
-| | Set Suite Variable | ${glob_vm_image} | /var/lib/vm/csit-nested-1.5.img
+| | Set Suite Variable | ${glob_vm_image} | /var/lib/vm/csit-nested-1.6.img
| 2-node circular Topology Variables Setup
| | [Documentation]
diff --git a/resources/tools/disk-image-builder/centos/CHANGELOG b/resources/tools/disk-image-builder/centos/CHANGELOG
index 0f78c07754..b2cb1b90d2 100644
--- a/resources/tools/disk-image-builder/centos/CHANGELOG
+++ b/resources/tools/disk-image-builder/centos/CHANGELOG
@@ -1,3 +1,7 @@
+## [1.3] - 2017-02-20
+
+Added socat and psmisc as vm testing dependency.
+
## [1.2] - 2017-01-24
Centos 7.3-1611 -- Add dhcp client to kickstart file.
diff --git a/resources/tools/disk-image-builder/centos/run-listmaker.sh b/resources/tools/disk-image-builder/centos/run-listmaker.sh
index 9b195873a9..0155d9c031 100755
--- a/resources/tools/disk-image-builder/centos/run-listmaker.sh
+++ b/resources/tools/disk-image-builder/centos/run-listmaker.sh
@@ -64,7 +64,7 @@ RPM_WANTLIST_INFRA="nfs-utils cloud-init pkgconfig yum-utils"
RPM_WANTLIST_CSIT="python-devel python-pip python-virtualenv python-setuptools python-pip openssl-devel git strongswan"
RPM_WANTLIST_VPP="dkms bridge-utils"
RPM_WANTLIST_TREX="zlib-devel unzip"
-RPM_WANTLIST_MISC="gperftools glusterfs glusterfs-api libiscsi libibverbs libpcap libpcap-devel pixman libpng pulseaudio-libs librados2 librbd1 librdmacm libseccomp spice-server libusb usbredir glusterfs-devel seavgabios-bin sgabios-bin ipxe-roms-qemu nss-devel seabios-bin"
+RPM_WANTLIST_MISC="socat psmisc gperftools glusterfs glusterfs-api libiscsi libibverbs libpcap libpcap-devel pixman libpng pulseaudio-libs librados2 librbd1 librdmacm libseccomp spice-server libusb usbredir glusterfs-devel seavgabios-bin sgabios-bin ipxe-roms-qemu nss-devel seabios-bin"
RPM_WANTLIST_NESTED="qemu-img-ev-2.3.0-31.el7_2.21.1.x86_64.rpm libcacard-ev-2.3.0-31.el7_2.21.1.x86_64.rpm libcacard-devel-ev-2.3.0-31.el7_2.21.1.x86_64.rpm qemu-kvm-ev-debuginfo-2.3.0-31.el7_2.21.1.x86_64.rpm qemu-kvm-tools-ev-2.3.0-31.el7_2.21.1.x86_64.rpm qemu-kvm-common-ev-2.3.0-31.el7_2.21.1.x86_64.rpm qemu-kvm-ev-2.3.0-31.el7_2.21.1.x86_64.rpm libcacard-tools-ev-2.3.0-31.el7_2.21.1.x86_64.rpm"
RPM_WANTLIST_JAVA="java-1.8.0-openjdk-headless java-1.8.0-openjdk-devel"
diff --git a/resources/tools/disk-image-builder/nested/CHANGELOG b/resources/tools/disk-image-builder/nested/CHANGELOG
index 50217e28c8..9901d1379d 100644
--- a/resources/tools/disk-image-builder/nested/CHANGELOG
+++ b/resources/tools/disk-image-builder/nested/CHANGELOG
@@ -1,3 +1,11 @@
+## [1.6] - 2017-02-20
+
+### Changes
+- replace /dev/sda to /dev/vda, to use with virtio disk driver
+- add noapic to bootloader's kernel line
+- bind igb_uio driver only to network device
+
+
## [1.5] - 2016-11-14
### Changes
diff --git a/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support b/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support
index 5990f0925b..2de4ad6962 100755
--- a/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support
+++ b/resources/tools/disk-image-builder/nested/image-patches/06-dpdk-support
@@ -46,10 +46,13 @@ echo 1af4 1000 > /sys/bus/pci/drivers/${TARGET_DRIVER}/new_id
#
for dev in $(find /sys/bus/pci/drivers/virtio-pci -type l -name '*:*:*.*' | sed -e 's/.*\///')
do
- echo Unbinding $dev from virtio-pci
- echo $dev > /sys/bus/pci/drivers/virtio-pci/unbind
- echo Binding $dev to ${TARGET_DRIVER}
- echo $dev > /sys/bus/pci/drivers/${TARGET_DRIVER}/bind
+ class=$(cat /sys/bus/pci/drivers/virtio-pci/${dev}/class)
+ if [ "$class" = "0x020000" ]; then
+ echo Unbinding $dev from virtio-pci
+ echo $dev > /sys/bus/pci/drivers/virtio-pci/unbind
+ echo Binding $dev to ${TARGET_DRIVER}
+ echo $dev > /sys/bus/pci/drivers/${TARGET_DRIVER}/bind
+ fi
done
# RCU and IRQ affinity
diff --git a/resources/tools/disk-image-builder/nested/image-patches/08-virtio-disk b/resources/tools/disk-image-builder/nested/image-patches/08-virtio-disk
new file mode 100644
index 0000000000..5ef2782d52
--- /dev/null
+++ b/resources/tools/disk-image-builder/nested/image-patches/08-virtio-disk
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+patch boot/grub/menu.lst <<"_EOF"
+17c17
+< kernel /boot/bzImage rw root=/dev/sda1 ipv6.disable=1 console=ttyS0,115200n8 isolcpus=1,2,3,4 nohz_full=1,2,3,4 rcu_nocbs=1,2,3,4 intel_pstate=disable
+---
+> kernel /boot/bzImage rw root=/dev/vda1 ipv6.disable=1 console=ttyS0,115200n8 isolcpus=1,2,3,4 nohz_full=1,2,3,4 rcu_nocbs=1,2,3,4 intel_pstate=disable noapic
+_EOF
diff --git a/resources/tools/disk-image-builder/ubuntu/CHANGELOG b/resources/tools/disk-image-builder/ubuntu/CHANGELOG
index 6b904ddf2f..01ab988664 100644
--- a/resources/tools/disk-image-builder/ubuntu/CHANGELOG
+++ b/resources/tools/disk-image-builder/ubuntu/CHANGELOG
@@ -1,3 +1,7 @@
+## [1.7] - 2017-02-20
+
+Added socat as vm testing dependency.
+
## [1.6] - 2016-12-19
Add cmake
diff --git a/resources/tools/disk-image-builder/ubuntu/run-listmaker.sh b/resources/tools/disk-image-builder/ubuntu/run-listmaker.sh
index 3b0a2e0123..acc1447976 100755
--- a/resources/tools/disk-image-builder/ubuntu/run-listmaker.sh
+++ b/resources/tools/disk-image-builder/ubuntu/run-listmaker.sh
@@ -66,7 +66,7 @@ APT_WANTLIST_CSIT="python-dev python-pip python-virtualenv git strongswan"
APT_WANTLIST_TLDK="libpcap0.8-dev libpcap-dev cmake"
APT_WANTLIST_VPP="dkms bridge-utils"
APT_WANTLIST_TREX="zlib1g-dev unzip"
-APT_WANTLIST_NESTED="qemu-system-x86"
+APT_WANTLIST_NESTED="socat qemu-system-x86"
APT_WANTLIST_JAVA="openjdk-8-jdk-headless"
#Docker is currently disabled due to issues with apt repositories retrieval
#APT_WANTLIST_DOCKER="docker-engine"
diff --git a/resources/tools/testbed-setup/playbooks/01-host-setup.yaml b/resources/tools/testbed-setup/playbooks/01-host-setup.yaml
index 3486df5a85..b660abb1b7 100644
--- a/resources/tools/testbed-setup/playbooks/01-host-setup.yaml
+++ b/resources/tools/testbed-setup/playbooks/01-host-setup.yaml
@@ -27,6 +27,8 @@
apt: name=crudini state=present
- name: install expect
apt: name=expect state=present
+ - name: install socat
+ apt: name=socat state=present
- name: install qemu
apt: name=qemu-system-x86 state=present
- hosts: virl