From cee993932735cf79621e66ded755e7ef2a6e03ca Mon Sep 17 00:00:00 2001 From: pmikus Date: Tue, 12 Jul 2016 16:33:17 +0100 Subject: [PATCH] CSIT-205 Update qemu install script - Update Qemu install script to only install if not present - Add option to force reinstall Qemu - Add Keyword to install Qemu on all DUTs Change-Id: Ic403c8749067878fe444d4d26ae21fd5d4781d3f Signed-off-by: pmikus --- resources/libraries/bash/qemu_build.sh | 47 +++++++++++++++++++++++++--------- resources/libraries/robot/qemu.robot | 7 +++++ 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/resources/libraries/bash/qemu_build.sh b/resources/libraries/bash/qemu_build.sh index 7b8ac41251..e151947543 100644 --- a/resources/libraries/bash/qemu_build.sh +++ b/resources/libraries/bash/qemu_build.sh @@ -12,34 +12,57 @@ # See the License for the specific language governing permissions and # limitations under the License. -QEMU_BUILD_DIR="/tmp/qemu-2.2.1" +QEMU_VERSION="qemu-2.2.1" + +QEMU_DOWNLOAD_REPO="http://wiki.qemu-project.org/download/" +QEMU_DOWNLOAD_PACKAGE="${QEMU_VERSION}.tar.bz2" +QEMU_PACKAGE_URL="${QEMU_DOWNLOAD_REPO}${QEMU_DOWNLOAD_PACKAGE}" QEMU_INSTALL_DIR="/opt/qemu" +if test "$(id -u)" -ne 0 +then + echo "Please use root or sudo to be able to install into: ${QEMU_INSTALL_DIR}" + exit 1 +fi + +WORKING_DIR=$(mktemp -d) +test $? -eq 0 || exit 1 + +cleanup () { + rm -r ${WORKING_DIR} +} + +trap cleanup EXIT + +if [[ "$@" == "--force" ]] +then + rm -rf ${QEMU_INSTALL_DIR} +else + test -d ${QEMU_INSTALL_DIR} && echo "Qemu already installed: ${QEMU_INSTALL_DIR}" && exit 0 +fi + echo echo Downloading QEMU source echo -sudo rm -rf ${QEMU_BUILD_DIR} -sudo rm -rf ${QEMU_INSTALL_DIR} -cd /tmp -wget -q http://wiki.qemu-project.org/download/qemu-2.2.1.tar.bz2 || exit +wget -P ${WORKING_DIR} -q ${QEMU_PACKAGE_URL} || exit +test $? -eq 0 || exit 1 echo echo Extracting QEMU echo -mkdir ${QEMU_BUILD_DIR} -tar --strip-components 1 -xjf qemu-2.2.1.tar.bz2 -C ${QEMU_BUILD_DIR} || exit -rm -f qemu-2.2.1.tar.bz2 +tar --strip-components 1 -xjf ${WORKING_DIR}/${QEMU_DOWNLOAD_PACKAGE} -C ${WORKING_DIR} || exit +test $? -eq 0 || exit 1 echo echo Building QEMU echo -cd ${QEMU_BUILD_DIR} -sudo mkdir ${QEMU_INSTALL_DIR} +cd ${WORKING_DIR} +mkdir ${QEMU_INSTALL_DIR} mkdir build cd build ../configure --target-list=x86_64-softmmu --prefix=${QEMU_INSTALL_DIR} || exit -make -j`nproc` || exit -sudo make install || exit +make -j`nproc` || exit 1 +make install || exit 1 echo echo QEMU ready diff --git a/resources/libraries/robot/qemu.robot b/resources/libraries/robot/qemu.robot index 171a9be5a3..a5dd0e6066 100644 --- a/resources/libraries/robot/qemu.robot +++ b/resources/libraries/robot/qemu.robot @@ -51,6 +51,13 @@ | | Build QEMU | ${node} | | Add Node to QEMU Build List | ${node} +| Build QEMU on all DUTs +| | [Documentation] | Build QEMU from sources on all DUTs. Nodes with successful +| | ... | QEMU build are stored in global variable list QEMU_BUILD +| | ${duts}= | Get Matches | ${nodes} | DUT* +| | :FOR | ${dut} | IN | @{duts} +| | | Build QEMU on Node | ${nodes['${dut}']} + | Stop and Clear QEMU | | [Documentation] | Stop QEMU, clear used sockets and close SSH connection | | ... | running on ${dut}, ${vm} is VM node info dictionary -- 2.16.6