diff options
-rw-r--r-- | fuel-plugin/deployment_scripts/puppet/manifests/yardstick-install.pp | 3 | ||||
-rwxr-xr-x | nsb_setup.sh | 11 | ||||
-rw-r--r-- | tests/unit/benchmark/scenarios/compute/memload_sample_output.txt | 4 | ||||
-rw-r--r-- | tests/unit/benchmark/scenarios/compute/test_memload.py | 47 | ||||
-rwxr-xr-x | tools/ubuntu-server-cloudimg-dpdk-modify.sh | 19 | ||||
-rwxr-xr-x | tools/ubuntu-server-cloudimg-modify.sh | 31 | ||||
-rw-r--r-- | yardstick/benchmark/scenarios/compute/memload.py | 10 | ||||
-rw-r--r-- | yardstick/common/openstack_utils.py | 21 | ||||
-rw-r--r-- | yardstick/orchestrator/heat.py | 5 |
9 files changed, 84 insertions, 67 deletions
diff --git a/fuel-plugin/deployment_scripts/puppet/manifests/yardstick-install.pp b/fuel-plugin/deployment_scripts/puppet/manifests/yardstick-install.pp index e69371141..3741bacf2 100644 --- a/fuel-plugin/deployment_scripts/puppet/manifests/yardstick-install.pp +++ b/fuel-plugin/deployment_scripts/puppet/manifests/yardstick-install.pp @@ -1,5 +1,4 @@ -$fuel_settings = parseyaml(file('/etc/astute.yaml')) -$master_ip = $::fuel_settings['master_ip'] +$master_ip = hiera('master_ip') $access_hash = hiera_hash('access', {}) $admin_tenant = $access_hash['tenant'] diff --git a/nsb_setup.sh b/nsb_setup.sh index e77ffbe44..332c0345c 100755 --- a/nsb_setup.sh +++ b/nsb_setup.sh @@ -28,7 +28,8 @@ if [ "$(whoami)" != "root" ]; then fi INSTALL_BIN_PATH="/opt/nsb_bin" -TREX_DOWNLOAD="https://trex-tgn.cisco.com/trex/release/v2.20.tar.gz" +TREX_VERSION="v2.20" +TREX_DOWNLOAD="https://trex-tgn.cisco.com/trex/release/$TREX_VERSION.tar.gz" DPDK_DOWNLOAD="http://dpdk.org/browse/dpdk/snapshot/dpdk-16.07.zip" VIRTUAL_VENV="$INSTALL_BIN_PATH/yardstick_venv" @@ -82,7 +83,7 @@ install_trex() { TREX_DIR=$INSTALL_BIN_PATH/trex/scripts if [ -d "$TREX_DIR" ]; then - echo "Trex v2.05already installed. Make sure it contains PYTHONPATH which is required to run TRex" + echo "Trex v2.20 already installed. Make sure it contains PYTHONPATH which is required to run TRex" else echo "Build TRex and installing Trex TG in $INSTALL_BIN_PATH/trex" rm -rf ${TREX_DOWNLOAD##*/} @@ -93,8 +94,8 @@ install_trex() pushd . rm -rf trex mkdir -p trex - mv v2.05 trex/scripts - rm -rf v2.05.tar.gz + mv $TREX_VERSION trex/scripts + rm -rf $TREX_VERSION.tar.gz cd trex/scripts/ko/src/ make make install @@ -182,7 +183,7 @@ install_dpdk() push_nsb_binary() { - if [ ! -d "$INSTALL_BIN_PATH/trex" ]; then + if [ ! -d "$INSTALL_BIN_PATH/trex/scripts" ]; then cp -fr "$REPO_DIR/trex" "$INSTALL_BIN_PATH" fi rm -rf "$REPO_DIR/trex" diff --git a/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt b/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt index c23917ff7..1793e2f10 100644 --- a/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt +++ b/tests/unit/benchmark/scenarios/compute/memload_sample_output.txt @@ -1,5 +1,3 @@ - total used free shared buffers cached + total used free shared buff/cache available Mem: 263753976 76737332 187016644 2844 853528 67252400 --/+ buffers/cache: 8631404 255122572 Swap: 268029948 0 268029948 - diff --git a/tests/unit/benchmark/scenarios/compute/test_memload.py b/tests/unit/benchmark/scenarios/compute/test_memload.py index 76625ef11..ede3309c2 100644 --- a/tests/unit/benchmark/scenarios/compute/test_memload.py +++ b/tests/unit/benchmark/scenarios/compute/test_memload.py @@ -74,18 +74,33 @@ class MEMLoadTestCase(unittest.TestCase): output = self._read_file("memload_sample_output.txt") mock_ssh.SSH().execute.return_value = (0, output, '') result = m._get_mem_usage() - expected_result = {"max": {"used": 76737332, "cached": 67252400, - "free": 187016644, "shared": 2844, - "total": 263753976, "buffers": 853528}, - "average": {"used": 76737332, "cached": 67252400, - "free": 187016644, "shared": 2844, - "total": 263753976, "buffers": 853528}, - "free": {"memory0": {"used": "76737332", - "cached": "67252400", - "free": "187016644", - "shared": "2844", - "total": "263753976", - "buffers": "853528"}}} + expected_result = { + "max": { + 'shared': 2844, + 'buff/cache': 853528, + 'total': 263753976, + 'free': 187016644, + 'used': 76737332 + }, + "average": { + 'shared': 2844, + 'buff/cache': 853528, + 'total': 263753976, + 'free': 187016644, + 'used': 76737332 + }, + "free": { + "memory0": { + "used": "76737332", + "buff/cache": "853528", + "free": "187016644", + "shared": "2844", + "total": "263753976", + "available": "67252400" + } + } + } + self.assertEqual(result, expected_result) def _read_file(self, filename): @@ -94,3 +109,11 @@ class MEMLoadTestCase(unittest.TestCase): with open(output) as f: sample_output = f.read() return sample_output + + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tools/ubuntu-server-cloudimg-dpdk-modify.sh b/tools/ubuntu-server-cloudimg-dpdk-modify.sh index 9a3857ee3..847c5053c 100755 --- a/tools/ubuntu-server-cloudimg-dpdk-modify.sh +++ b/tools/ubuntu-server-cloudimg-dpdk-modify.sh @@ -59,7 +59,7 @@ chpasswd: { expire: False } ssh_pwauth: True EOF -linuxheadersversion=`echo ls boot/vmlinuz* | cut -d- -f2-` +linuxheadersversion=$(echo ls boot/vmlinuz* | cut -d- -f2-) apt-get update apt-get install -y \ @@ -80,22 +80,25 @@ apt-get install -y \ rt-tests \ stress \ sysstat \ - linux-headers-$linuxheadersversion \ + linux-headers-"${linuxheadersversion}" \ libpcap-dev \ lua5.2 git clone http://dpdk.org/git/dpdk git clone http://dpdk.org/git/apps/pktgen-dpdk -git clone https://github.com/kdlucas/byte-unixbench.git /opt/tempT -make --directory /opt/tempT/UnixBench/ +CLONE_DEST=/opt/tempT +# remove before cloning +rm -rf -- "${CLONE_DEST}" +git clone https://github.com/kdlucas/byte-unixbench.git "${CLONE_DEST}" +make --directory "${CLONE_DEST}/UnixBench/" -git clone https://github.com/beefyamoeba5/ramspeed.git /opt/tempT/RAMspeed -cd /opt/tempT/RAMspeed/ramspeed-2.6.0 +git clone https://github.com/beefyamoeba5/ramspeed.git "${CLONE_DEST}/RAMspeed" +cd "${CLONE_DEST}/RAMspeed/ramspeed-2.6.0" mkdir temp bash build.sh -git clone https://github.com/beefyamoeba5/cachestat.git /opt/tempT/Cachestat +git clone https://github.com/beefyamoeba5/cachestat.git "${CLONE_DEST}"/Cachestat # restore symlink -ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf +ln -sfrT /run/resolvconf/resolv.conf /etc/resolv.conf diff --git a/tools/ubuntu-server-cloudimg-modify.sh b/tools/ubuntu-server-cloudimg-modify.sh index ce320a205..fb2ae3fe8 100755 --- a/tools/ubuntu-server-cloudimg-modify.sh +++ b/tools/ubuntu-server-cloudimg-modify.sh @@ -24,7 +24,7 @@ if [ $# -eq 1 ]; then fi # iperf3 only available for trusty in backports -if [ grep -q trusty /etc/apt/sources.list ]; then +if grep -q trusty /etc/apt/sources.list ; then if [ "${YARD_IMG_ARCH}" = "arm64" ]; then echo "deb [arch=${YARD_IMG_ARCH}] http://ports.ubuntu.com/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list else @@ -48,7 +48,7 @@ EOF apt-get update if [[ "${YARD_IMG_ARCH}" = "arm64" && "$release" = "vivid" ]]; then apt-get install -y \ - linux-headers-$(echo $CLOUD_KERNEL_VERSION | cut -d'-' -f3,4,5) \ + linux-headers-"$(echo ${CLOUD_KERNEL_VERSION} | cut -d'-' -f3,4,5)" \ unzip #resize root partition (/dev/vdb1) It is supposed to be default but the image is booted differently for arm64 cat <<EOF >/etc/cloud/cloud.cfg.d/15_growpart.cfg @@ -76,36 +76,41 @@ apt-get install -y \ stress \ sysstat +CLONE_DEST=/opt/tempT + +# remove before cloning +rm -rf -- "${CLONE_DEST}" + if [[ "${YARD_IMG_ARCH}" = "arm64" && "$release" = "vivid" ]]; then wget https://github.com/kdlucas/byte-unixbench/archive/master.zip unzip master.zip && rm master.zip - mkdir /opt/tempT - mv byte-unixbench-master/UnixBench /opt/tempT + mkdir "${CLONE_DEST}" + mv byte-unixbench-master/UnixBench "${CLONE_DEST}" sed -i -e 's/OPTON += -march=native -mtune=native/OPTON += -march=armv8-a -mtune=generic/g' \ - -e 's/OPTON += -march=native/OPTON += -march=armv8-a/g' /opt/tempT/UnixBench/Makefile + -e 's/OPTON += -march=native/OPTON += -march=armv8-a/g' "${CLONE_DEST}/UnixBench/Makefile" else - git clone https://github.com/kdlucas/byte-unixbench.git /opt/tempT + git clone https://github.com/kdlucas/byte-unixbench.git "${CLONE_DEST}" fi -make --directory /opt/tempT/UnixBench/ +make --directory "${CLONE_DEST}/UnixBench/" if [ "${YARD_IMG_ARCH}" = "arm64" ]; then wget https://github.com/beefyamoeba5/ramspeed/archive/master.zip unzip master.zip && rm master.zip - mkdir /opt/tempT/RAMspeed - mv ramspeed-master/* /opt/tempT/RAMspeed/ + mkdir "${CLONE_DEST}/RAMspeed" + mv ramspeed-master/* "${CLONE_DEST}/RAMspeed/" else - git clone https://github.com/beefyamoeba5/ramspeed.git /opt/tempT/RAMspeed + git clone https://github.com/beefyamoeba5/ramspeed.git "${CLONE_DEST}/RAMspeed" fi -cd /opt/tempT/RAMspeed/ramspeed-2.6.0 +cd "${CLONE_DEST}/RAMspeed/ramspeed-2.6.0" mkdir temp bash build.sh if [[ "${YARD_IMG_ARCH}" = "arm64" && "$release" = "vivid" ]]; then wget https://github.com/beefyamoeba5/cachestat/archive/master.zip unzip master.zip && rm master.zip - mv cachestat-master/cachestat /opt/tempT + mv cachestat-master/cachestat "${CLONE_DEST}" else - git clone https://github.com/beefyamoeba5/cachestat.git /opt/tempT/Cachestat + git clone https://github.com/beefyamoeba5/cachestat.git "${CLONE_DEST}/Cachestat" fi # restore symlink diff --git a/yardstick/benchmark/scenarios/compute/memload.py b/yardstick/benchmark/scenarios/compute/memload.py index 35528d4ef..2ef5a6302 100644 --- a/yardstick/benchmark/scenarios/compute/memload.py +++ b/yardstick/benchmark/scenarios/compute/memload.py @@ -74,10 +74,10 @@ class MEMLoad(base.Scenario): fields = [] free = {} ite = 0 - average = {'total': 0, 'used': 0, 'free': 0, 'cached': 0, 'shared': 0, - 'buffers': 0} - maximum = {'total': 0, 'used': 0, 'free': 0, 'cached': 0, 'shared': 0, - 'buffers': 0} + average = {'total': 0, 'used': 0, 'free': 0, 'buff/cache': 0, + 'shared': 0} + maximum = {'total': 0, 'used': 0, 'free': 0, 'buff/cache': 0, + 'shared': 0} for row in result.split('\n'): line = row.split() @@ -111,7 +111,7 @@ class MEMLoad(base.Scenario): interval = options.get("interval", 1) count = options.get("count", 1) - cmd = "free -s %s -c %s" % (interval, count) + cmd = "free -c '%s' -s '%s'" % (count, interval) result = self._execute_command(cmd) filtrated_result = self._filtrate_result(result) diff --git a/yardstick/common/openstack_utils.py b/yardstick/common/openstack_utils.py index aa369b896..2df8fa565 100644 --- a/yardstick/common/openstack_utils.py +++ b/yardstick/common/openstack_utils.py @@ -62,20 +62,6 @@ def get_credentials(): "project_domain_name": os.getenv('OS_PROJECT_DOMAIN_NAME') }) - cacert = os.environ.get("OS_CACERT") - - if cacert is not None: - # each openstack client uses differnt kwargs for this - creds.update({"cacert": cacert, - "ca_cert": cacert, - "https_ca_cert": cacert, - "https_cacert": cacert, - "ca_file": cacert}) - creds.update({"insecure": "True", "https_insecure": "True"}) - if not os.path.isfile(cacert): - log.info("WARNING: The 'OS_CACERT' environment variable is set \ - to %s but the file does not exist.", cacert) - return creds @@ -88,7 +74,12 @@ def get_session_auth(): def get_session(): auth = get_session_auth() - return session.Session(auth=auth) + try: + cacert = os.environ['OS_CACERT'] + except KeyError: + return session.Session(auth=auth) + else: + return session.Session(auth=auth, verify=cacert) def get_endpoint(service_type, endpoint_type='publicURL'): diff --git a/yardstick/orchestrator/heat.py b/yardstick/orchestrator/heat.py index 500776e0e..49126f661 100644 --- a/yardstick/orchestrator/heat.py +++ b/yardstick/orchestrator/heat.py @@ -21,7 +21,6 @@ import time import heatclient import pkg_resources -from oslo_serialization import jsonutils from oslo_utils import encodeutils import yardstick.common.openstack_utils as op_utils @@ -453,11 +452,9 @@ class HeatTemplate(HeatObject): stack = HeatStack(self.name) heat = self._get_heat_client() - json_template = jsonutils.dump_as_bytes( - self._template) start_time = time.time() stack.uuid = self.uuid = heat.stacks.create( - stack_name=self.name, template=json_template, + stack_name=self.name, template=self._template, parameters=self.heat_parameters)['stack']['id'] status = self.status() |