aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpmikus <pmikus@cisco.com>2016-07-12 16:33:17 +0100
committerPeter Mikus <pmikus@cisco.com>2016-07-13 13:12:32 +0000
commitcee993932735cf79621e66ded755e7ef2a6e03ca (patch)
treebbf9414e0a7c223ffe501fc402fa580a4155c3b0
parent5aa9925436c3ca40e9af9d353245674f631d440d (diff)
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 <pmikus@cisco.com>
-rw-r--r--resources/libraries/bash/qemu_build.sh47
-rw-r--r--resources/libraries/robot/qemu.robot7
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