diff options
Diffstat (limited to 'resources/tools/wrk')
-rw-r--r-- | resources/tools/wrk/wrk.py | 35 | ||||
-rwxr-xr-x | resources/tools/wrk/wrk_utils.sh | 64 |
2 files changed, 16 insertions, 83 deletions
diff --git a/resources/tools/wrk/wrk.py b/resources/tools/wrk/wrk.py index 43355b99fb..b7989b8852 100644 --- a/resources/tools/wrk/wrk.py +++ b/resources/tools/wrk/wrk.py @@ -57,13 +57,13 @@ REGEX_LATENCY_DIST = \ REGEX_NUM = r"(\d*\.*\d*)(\D*)" -def install_wrk(tg_node): - """Install wrk on the TG node. +def check_wrk(tg_node): + """Check if wrk is installed on the TG node. :param tg_node: Traffic generator node. :type tg_node: dict :raises: RuntimeError if the given node is not a TG node or if the - installation fails. + command is not availble. """ if tg_node['type'] != NodeType.TG: @@ -74,33 +74,10 @@ def install_wrk(tg_node): ret, _, _ = ssh.exec_command( "sudo -E " - "sh -c '{0}/resources/tools/wrk/wrk_utils.sh install false'". - format(Constants.REMOTE_FW_DIR), timeout=1800) + "sh -c '{0}/resources/tools/wrk/wrk_utils.sh installed'". + format(Constants.REMOTE_FW_DIR)) if int(ret) != 0: - raise RuntimeError('Installation of wrk on TG node failed.') - - -def destroy_wrk(tg_node): - """Destroy wrk on the TG node. - - :param tg_node: Traffic generator node. - :type tg_node: dict - :raises: RuntimeError if the given node is not a TG node or the removal of - wrk failed. - """ - - if tg_node['type'] != NodeType.TG: - raise RuntimeError('Node type is not a TG.') - - ssh = SSH() - ssh.connect(tg_node) - - ret, _, _ = ssh.exec_command( - "sudo -E " - "sh -c '{0}/resources/tools/wrk/wrk_utils.sh destroy'". - format(Constants.REMOTE_FW_DIR), timeout=1800) - if int(ret) != 0: - raise RuntimeError('Removal of wrk from the TG node failed.') + raise RuntimeError('WRK is not installed on TG node.') def run_wrk(tg_node, profile_name, tg_numa, test_type, warm_up=False): diff --git a/resources/tools/wrk/wrk_utils.sh b/resources/tools/wrk/wrk_utils.sh index 2b9f6cf296..1c77fea731 100755 --- a/resources/tools/wrk/wrk_utils.sh +++ b/resources/tools/wrk/wrk_utils.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright (c) 2018 Cisco and/or its affiliates. +# Copyright (c) 2019 Cisco and/or its affiliates. # 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: @@ -14,59 +14,19 @@ set -x -WRK_VERSION="4.0.2" -WRK_TAR=${WRK_VERSION}".tar.gz" -WRK_DWNLD_PATH="https://github.com/wg/wrk/archive" -WRK_TARGET="/opt" -WRK_INSTALL_DIR=${WRK_TARGET}/wrk-${WRK_VERSION} +function wrk_utils.installed { -function wrk_utils.install { - # Install wrk + # Check if the WRK utility is installed. Fail if not installed. - # Directory for wrk: - dir=${1} - # Force the installation: - force=${2:-false} + # Returns: + # - 0 - If command is installed. + # - 1 - If command is not installed. - # Check if wrk is installed: - if [ "${force}" = true ]; then - wrk_utils.destroy - else - which wrk - if [ $? -eq 0 ]; then - test -d ${dir}/${WRK_INSTALL_DIR} && echo "WRK already installed: ${dir}/${WRK_INSTALL_DIR}" && exit 0 - fi - fi - - # Install pre-requisites: - apt-get update - apt-get install build-essential libssl-dev -y - - # Remove previous installation: - wrk_utils.destroy - - # Change the directory: - cd ${WRK_TARGET} + set -exuo pipefail - # Get the specified version: - wget ${WRK_DWNLD_PATH}/${WRK_TAR} - tar xzf ${WRK_TAR} - rm ${WRK_TAR} - cd ${WRK_INSTALL_DIR} - - # Build the wrk: - make - - # Move the executable to somewhere in the PATH: - cp wrk /usr/local/bin + command -v wrk } -function wrk_utils.destroy { - # Remove wrk - - sudo rm /usr/local/bin/wrk || true - sudo rm -rf ${WRK_INSTALL_DIR} || true -} function wrk_utils.traffic_1_url_1_core { # Send traffic @@ -271,12 +231,8 @@ function wrk_utils.traffic_n_urls_m_cores { args=("$@") case ${1} in - install) - force=${2} - wrk_utils.install ${force} - ;; - destroy) - wrk_utils.destroy + installed) + wrk_utils.installed ;; traffic_1_url_1_core) wrk_utils.traffic_1_url_1_core "${args[@]:1}" |