From 57922dcb8e6497f02fdee9306494e932e25dcace Mon Sep 17 00:00:00 2001 From: Nauman_Ahad Date: Tue, 5 Jan 2016 21:01:17 +0500 Subject: QTIP Index calculation along with a script to run qtip from docker Calculation of Result Indices for 1. Compute suite 2. Storage suite 3. Network suite A script to run qtip from inside the docker container (for Jenkins Jobs) Resolved bugs with ssl_trasform.py, sys info collection on ubuntu and system information collection script Change-Id: Ic5abb3dbd0012cd2257b588b1b3067a6677b1f5d Signed-off-by: Nauman_Ahad --- benchmarks/playbooks/info_script/info_collect.py | 6 +- .../result_transform/ssl/ssl_transform.py | 20 +-- benchmarks/playbooks/sys_info_pbook.yaml | 2 +- data/fetch_os_creds.sh | 188 +++++++++++++++++++++ data/get_env_info.sh | 1 + data/qtip_creds.sh | 4 +- data/ref_results/.reference.json.swp | Bin 0 -> 12288 bytes data/ref_results/compute_benchmarks_indices.py | 142 ++++++++++++++++ data/ref_results/compute_suite.py | 22 +++ data/ref_results/generator_ref_json.py | 36 ++++ data/ref_results/network_benchmarks_indices.py | 28 +++ data/ref_results/network_suite.py | 22 +++ data/ref_results/reference.json | 35 ++++ data/ref_results/result_accum.py | 31 ++++ data/ref_results/storage_benchmarks_indices.py | 35 ++++ data/ref_results/storage_suite.py | 22 +++ docker/Dockerfile | 3 +- docker/run_qtip.sh | 17 ++ fetch_os_creds.sh | 171 ------------------- func/env_setup.py | 8 +- .../dell-us-testing-bm-1/compute/dhrystone_bm.yaml | 35 ++++ .../dell-us-testing-bm-1/compute/dhrystone_vm.yaml | 45 +++++ .../dell-us-testing-bm-1/compute/dpi_bm.yaml | 34 ++++ .../dell-us-testing-bm-1/compute/dpi_vm.yaml | 35 ++++ .../dell-us-testing-bm-1/compute/ssl_bm.yaml | 31 ++++ .../dell-us-testing-bm-1/compute/ssl_vm.yaml | 36 ++++ .../dell-us-testing-bm-1/compute/whetstone_bm.yaml | 34 ++++ .../dell-us-testing-bm-1/compute/whetstone_vm.yaml | 44 +++++ .../network/iperf_topology_1.yaml | 43 +++++ .../network/iperf_topology_2.yaml | 43 +++++ .../network/iperf_topology_3.yaml | 60 +++++++ .../dell-us-testing-bm-1/network/netperf.yaml | 42 +++++ .../dell-us-testing-bm-1/network/pktgen.yaml | 44 +++++ .../dell-us-testing-bm-1/storage/fio_bm.yaml | 39 +++++ .../dell-us-testing-bm-1/storage/fio_vm.yaml | 44 +++++ test_list/compute.txt | 10 +- test_list/storage.txt | 2 +- 37 files changed, 1219 insertions(+), 195 deletions(-) create mode 100755 data/fetch_os_creds.sh create mode 100644 data/ref_results/.reference.json.swp create mode 100644 data/ref_results/compute_benchmarks_indices.py create mode 100644 data/ref_results/compute_suite.py create mode 100644 data/ref_results/generator_ref_json.py create mode 100644 data/ref_results/network_benchmarks_indices.py create mode 100644 data/ref_results/network_suite.py create mode 100644 data/ref_results/reference.json create mode 100644 data/ref_results/result_accum.py create mode 100644 data/ref_results/storage_benchmarks_indices.py create mode 100644 data/ref_results/storage_suite.py create mode 100755 docker/run_qtip.sh delete mode 100755 fetch_os_creds.sh create mode 100644 test_cases/dell-us-testing-bm-1/compute/dhrystone_bm.yaml create mode 100644 test_cases/dell-us-testing-bm-1/compute/dhrystone_vm.yaml create mode 100644 test_cases/dell-us-testing-bm-1/compute/dpi_bm.yaml create mode 100644 test_cases/dell-us-testing-bm-1/compute/dpi_vm.yaml create mode 100644 test_cases/dell-us-testing-bm-1/compute/ssl_bm.yaml create mode 100644 test_cases/dell-us-testing-bm-1/compute/ssl_vm.yaml create mode 100644 test_cases/dell-us-testing-bm-1/compute/whetstone_bm.yaml create mode 100644 test_cases/dell-us-testing-bm-1/compute/whetstone_vm.yaml create mode 100644 test_cases/dell-us-testing-bm-1/network/iperf_topology_1.yaml create mode 100644 test_cases/dell-us-testing-bm-1/network/iperf_topology_2.yaml create mode 100644 test_cases/dell-us-testing-bm-1/network/iperf_topology_3.yaml create mode 100644 test_cases/dell-us-testing-bm-1/network/netperf.yaml create mode 100644 test_cases/dell-us-testing-bm-1/network/pktgen.yaml create mode 100644 test_cases/dell-us-testing-bm-1/storage/fio_bm.yaml create mode 100644 test_cases/dell-us-testing-bm-1/storage/fio_vm.yaml diff --git a/benchmarks/playbooks/info_script/info_collect.py b/benchmarks/playbooks/info_script/info_collect.py index b352651e..7e5544c0 100644 --- a/benchmarks/playbooks/info_script/info_collect.py +++ b/benchmarks/playbooks/info_script/info_collect.py @@ -17,7 +17,7 @@ est_ob2.close() Info_dict={}; inxi_host=os.popen("""cat $PWD/est_1 | grep -o -P '(?<=Host:).*(?=Kernel)' """).read().lstrip().rstrip() -inxi_mem=os.popen("""cat $PWD/est_1 | grep -o -P '(?<=Memory:).*(?=Init)' """).read().lstrip().rstrip() +inxi_mem=os.popen("""cat $PWD/est_1 | grep -o -P '(?<=Memory:).*(?=MB)' """).read().lstrip().rstrip()+"MB" inxi_cpu=os.popen("""cat $PWD/est_1 | grep -o -P '(?<=CPU).*(?=speed)' | cut -f2 -d':'""").read().lstrip().rstrip() inxi_distro=os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Distro:).*(?=Machine:)' """).read().rstrip().lstrip() inxi_kernel=os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Kernel:).*(?=Console:)' """).read().rstrip().lstrip() @@ -72,7 +72,7 @@ if (network_flag == 'n'): Info_dict['9_Network_Interfaces']['Interface_'+str(x)]['2_Interface_info']=inxi_card_2 else: print "No network cards" - os.system("bwm-ng -c 1 | grep -v '=' | grep -v 'iface' | grep -v '-' > bwm_dump") + os.system("bwm-ng -o plain -c 1 | grep -v '=' | grep -v 'iface' | grep -v '-' > bwm_dump") n_interface=int(os.popen(" cat bwm_dump | grep -v 'total' | wc -l ").read().rstrip()) interface={}; for x in range (1,n_interface): @@ -82,7 +82,7 @@ if (network_flag == 'n'): interface[str(interface_name)]['Tx (KB/s)']=os.popen(" cat bwm_dump | awk 'NR=="+str(x)+"' | awk '{print $4}' ").read().rstrip() interface[str(interface_name)]['Total (KB/s)']=os.popen(" cat bwm_dump | awk 'NR== "+str(x)+"' | awk '{print $6}' ").read().rstrip() - Info_dict['Interface I/O']=interface + Info_dict['10.Interface I/O']=interface print Info_dict diff --git a/benchmarks/playbooks/result_transform/ssl/ssl_transform.py b/benchmarks/playbooks/result_transform/ssl/ssl_transform.py index 20ca5cff..6e632251 100644 --- a/benchmarks/playbooks/result_transform/ssl/ssl_transform.py +++ b/benchmarks/playbooks/result_transform/ssl/ssl_transform.py @@ -48,18 +48,18 @@ os.system("cat AES-128-CBC_dump >> " + hostname + "-" + time_stamp + ".log") result = {} result['1. Version'] = [openssl_version] -result['2. RSA singatures'] = {} -result['2. RSA singatures']['1. 512 bits (sign/s)'] = [rsa_512_sps] -result['2. RSA singatures']['2. 1024 bits (sign/s)'] = [rsa_1024_sps] -result['2. RSA singatures']['3. 2048 bits (sign/s)'] = [rsa_2048_sps] -result['2. RSA singatures']['4. 4096 bits (sign/s)'] = [rsa_4096_sps] +result['2. RSA signatures'] = {} +result['2. RSA signatures']['1. 512 bits (sign/s)'] = rsa_512_sps +result['2. RSA signatures']['2. 1024 bits (sign/s)'] = rsa_1024_sps +result['2. RSA signatures']['3. 2048 bits (sign/s)'] = rsa_2048_sps +result['2. RSA signatures']['4. 4096 bits (sign/s)'] = rsa_4096_sps result['3. AES-128-cbc throughput'] = {} -result['3. AES-128-cbc throughput']['1. 16 Bytes block (B/sec)'] = [aes_16B] -result['3. AES-128-cbc throughput']['2. 64 Bytes block (B/sec)'] = [aes_64B] -result['3. AES-128-cbc throughput']['3. 256 Bytes block (B/sec)'] = [aes_256B] -result['3. AES-128-cbc throughput']['4. 1024 Bytes block (B/sec)'] = [aes_1024B] -result['3. AES-128-cbc throughput']['5. 16 Bytes block (B/sec)'] = [aes_8192B] +result['3. AES-128-cbc throughput']['1. 16 Bytes block (B/sec)'] = aes_16B +result['3. AES-128-cbc throughput']['2. 64 Bytes block (B/sec)'] = aes_64B +result['3. AES-128-cbc throughput']['3. 256 Bytes block (B/sec)'] = aes_256B +result['3. AES-128-cbc throughput']['4. 1024 Bytes block (B/sec)'] = aes_1024B +result['3. AES-128-cbc throughput']['5. 8192 Bytes block (B/sec)'] = aes_8192B with open('./result_temp', 'w+') as result_file: diff --git a/benchmarks/playbooks/sys_info_pbook.yaml b/benchmarks/playbooks/sys_info_pbook.yaml index cca6c941..b5415aad 100644 --- a/benchmarks/playbooks/sys_info_pbook.yaml +++ b/benchmarks/playbooks/sys_info_pbook.yaml @@ -5,7 +5,7 @@ shell: yum install inxi -y when: ansible_os_family == "RedHat" - name: system info collection tool install when Ubuntu - shell: apt-get install inxi -y + shell: apt-get update && apt-get install inxi -y when: ansible_os_family == "Debian" - name: Install ansible copy dependencies if remote host has selinux enabled shell: yum install libselinux-python -y diff --git a/data/fetch_os_creds.sh b/data/fetch_os_creds.sh new file mode 100755 index 00000000..3b493e14 --- /dev/null +++ b/data/fetch_os_creds.sh @@ -0,0 +1,188 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jose.lausuch@ericsson.com +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + + +usage() { + echo "usage: $0 -d -i -a " >&2 +} + +info () { + logger -s -t "fetch_os_creds.info" "$*" +} + + +error () { + logger -s -t "fetch_os_creds.error" "$*" + exit 1 +} + + +verify_connectivity() { + local ip=$1 + info "Verifying connectivity to $ip..." + for i in $(seq 0 10); do + if ping -c 1 -W 1 $ip > /dev/null; then + info "$ip is reachable!" + return 0 + fi + sleep 1 + done + error "Can not talk to $ip." +} + + + +#Get options +while getopts ":d:i:a:h:" optchar; do + case "${optchar}" in + d) dest_path=${OPTARG} ;; + i) installer_type=${OPTARG} ;; + a) installer_ip=${OPTARG} ;; + *) echo "Non-option argument: '-${OPTARG}'" >&2 + usage + exit 2 + ;; + esac +done + +# set vars from env if not provided by user as options +dest_path=${dest_path:-$HOME/opnfv-openrc.sh} +installer_type=${installer_type:-$INSTALLER_TYPE} +installer_ip=${installer_ip:-$INSTALLER_IP} + +if [ -z $dest_path ] || [ -z $installer_type ] || [ -z $installer_ip ]; then + usage + exit 2 +fi + +# Checking if destination path is valid +if [ -d $dest_path ]; then + error "Please provide the full destination path for the credentials file including the filename" +else + # Check if we can create the file (e.g. path is correct) + touch $dest_path || error "Cannot create the file specified. Check that the path is correct and run the script again." +fi + + +ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" + +# Start fetching the files +if [ "$installer_type" == "fuel" ]; then + #ip_fuel="10.20.0.2" + verify_connectivity $installer_ip + + # Check if controller is alive (online='True') + controller_ip=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \ + 'fuel node | grep controller | grep True | awk "{print \$10}" | tail -1') &> /dev/null + + if [ -z $controller_ip ]; then + error "The controller $controller_ip is not up. Please check that the POD is correctly deployed." + fi + + info "Fetching rc file from controller $controller_ip..." + sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \ + "scp $ssh_options ${controller_ip}:/root/openrc ." &> /dev/null + sshpass -p r00tme scp 2>/dev/null $ssh_options root@${installer_ip}:~/openrc $dest_path &> /dev/null + + #This file contains the mgmt keystone API, we need the public one for our rc file + admin_ip=$(cat $dest_path | grep "OS_AUTH_URL" | sed 's/^.*\=//' | sed "s/^\([\"']\)\(.*\)\1\$/\2/g" | sed s'/\/$//') + public_ip=$(sshpass -p r00tme ssh $ssh_options root@${installer_ip} \ + "ssh ${controller_ip} 'source openrc; keystone endpoint-list'" \ + | grep $admin_ip | sed 's/ /\n/g' | grep ^http | head -1) &> /dev/null + #| grep http | head -1 | cut -d '|' -f 4 | sed 's/v1\/.*/v1\//' | sed 's/ //g') &> /dev/null + #NOTE: this is super ugly sed 's/v1\/.*/v1\//'OS_AUTH_URL + # but sometimes the output of endpoint-list is like this: http://172.30.9.70:8004/v1/%(tenant_id)s + +elif [ "$installer_type" == "apex" ]; then + verify_connectivity $installer_ip + + # The credentials file is located in the Instack VM (192.0.2.1) + # NOTE: This might change for bare metal deployments + info "Fetching rc file from Instack VM $installer_ip..." + if [ -f /root/.ssh/id_rsa ]; then + chmod 600 /root/.ssh/id_rsa + fi + sudo scp $ssh_options root@$installer_ip:/home/stack/overcloudrc $dest_path + +elif [ "$installer_type" == "compass" ]; then + verify_connectivity $installer_ip + controller_ip=$(sshpass -p'root' ssh 2>/dev/null $ssh_options root@${installer_ip} \ + 'mysql -ucompass -pcompass -Dcompass -e"select * from cluster;"' \ + | awk -F"," '{for(i=1;i/dev/null $ssh_options root@${installer_ip} \ + "scp $ssh_options ${controller_ip}:/opt/admin-openrc.sh ." &> /dev/null + sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:~/admin-openrc.sh $dest_path &> /dev/null + echo 'export OS_REGION_NAME=regionOne' >> $dest_path + + info "This file contains the mgmt keystone API, we need the public one for our rc file" + admin_ip=$(cat $dest_path | grep "OS_AUTH_URL" | sed 's/^.*\=//' | sed "s/^\([\"']\)\(.*\)\1\$/\2/g" | sed s'/\/$//') + info "admin_ip: $admin_ip" + public_ip=$(sshpass -p root ssh $ssh_options root@${installer_ip} \ + "ssh ${controller_ip} 'source /opt/admin-openrc.sh; keystone endpoint-list'" \ + | grep $admin_ip | sed 's/ /\n/g' | grep ^http | head -1) + info "public_ip: $public_ip" + + +elif [ "$installer_type" == "joid" ]; then + # do nothing...for the moment + # we can either do a scp from the jumphost or use the -v option to transmit the param to the docker file + echo "Do nothing, creds will be provided through volume option at docker creation for joid" + +elif [ "$installer_type" == "foreman" ]; then + #ip_foreman="172.30.10.73" + controller="oscontroller1.opnfv.com" + verify_connectivity $installer_ip + + # Check if controller is alive (here is more difficult to get the ip from a command like "fuel node") + sshpass -p vagrant ssh $ssh_options root@${installer_ip} \ + "sshpass -p Op3nStack ssh $ssh_options root@${controller} 'ls'" &> /dev/null + if [ $? -ne 0 ]; then + error "The controller ${controller} is not up. Please check that the POD is correctly deployed." + fi + + info "Fetching openrc from a Foreman Controller '${controller}'..." + sshpass -p vagrant ssh $ssh_options root@${installer_ip} \ + "sshpass -p Op3nStack scp $ssh_options root@${controller}:~/keystonerc_admin ." &> /dev/null + sshpass -p vagrant scp $ssh_options root@${installer_ip}:~/keystonerc_admin $dest_path &> /dev/null + + #This file contains the mgmt keystone API, we need the public one for our rc file + admin_ip=$(cat $dest_path | grep "OS_AUTH_URL" | sed 's/^.*\=//' | sed "s/^\([\"']\)\(.*\)\1\$/\2/g" | sed s'/\/$//') + public_ip=$(sshpass -p vagrant ssh $ssh_options root@${installer_ip} \ + "sshpass -p Op3nStack ssh $ssh_options root@${controller} \ + 'source keystonerc_admin;keystone endpoint-list'" \ + | grep $admin_ip | sed 's/ /\n/g' | grep ^http | head -1) &> /dev/null + +else + error "Installer $installer is not supported by this script" +fi + + +if [ ! -f $dest_path ]; then + error "There has been an error retrieving the credentials" +fi + +if [ "$public_ip" != "" ]; then + info "Exchanging keystone public IP in rc file to $public_ip" + sed -i "/OS_AUTH_URL/c\export OS_AUTH_URL=\'$public_ip'" $dest_path +fi + + + +echo "-------- Credentials: --------" +cat $dest_path + +exit 0 diff --git a/data/get_env_info.sh b/data/get_env_info.sh index 98ca68a6..98ad6dd6 100755 --- a/data/get_env_info.sh +++ b/data/get_env_info.sh @@ -19,3 +19,4 @@ while getopts ":n:i:" optchar; do usage ;; esac done +./fetch_os_creds.sh -d opnfv-creds.sh diff --git a/data/qtip_creds.sh b/data/qtip_creds.sh index e2619d64..085e3a60 100755 --- a/data/qtip_creds.sh +++ b/data/qtip_creds.sh @@ -16,8 +16,8 @@ case "$INSTALLER_TYPE" in *) echo "Unkown installer $INSTALLER_TYPE specified";; esac - +echo $PWD sshoptions="-o StrictHostKeyChecking=no" -sshpass -p $PSWD scp $sshoptions QtipKey.pub root@$INSTALLER_IP:/root +sshpass -p $PSWD scp $sshoptions ./data/QtipKey.pub root@$INSTALLER_IP:/root sshpass -p $PSWD ssh $sshoptions root@$INSTALLER_IP "ssh-copy-id -i /root/QtipKey.pub root@$DEST_IP && rm -rf /root/QtipKey.pub" diff --git a/data/ref_results/.reference.json.swp b/data/ref_results/.reference.json.swp new file mode 100644 index 00000000..45891cdb Binary files /dev/null and b/data/ref_results/.reference.json.swp differ diff --git a/data/ref_results/compute_benchmarks_indices.py b/data/ref_results/compute_benchmarks_indices.py new file mode 100644 index 00000000..305b6b02 --- /dev/null +++ b/data/ref_results/compute_benchmarks_indices.py @@ -0,0 +1,142 @@ +import os +import json +from result_accum import result_concat as concat + + +def dpi_index (): + total=0 + dpi_dict=concat('../../results/dpi/') + for k,v in dpi_dict.iteritems(): + for i,j in dpi_dict[k].iteritems(): + if i=="3 DPI result": + raw_num=int(dpi_dict[k][i]["DPI_benchmark(Gb/s)"]) + total=total+raw_num + + l=len(dpi_dict) + with open ('./reference.json') as reference_file: + reference_djson=json.load(reference_file) + dpi_ref=reference_djson['compute']['dpi'] + dpi_index= float((total/l)/dpi_ref) + dpi_dict_i={}; + dpi_dict_i['1. Index']=dpi_index + dpi_dict_i['2. Results']=dpi_dict + return dpi_dict_i + +def dwstone_index (file_dir,benchmark): + total=0 + dwstone_dict=concat('../../results/'+file_dir+'/') + for k,v in dwstone_dict.iteritems(): + for i,j in dwstone_dict[k].iteritems(): + if i=="3 "+benchmark+" result": + for a,b in dwstone_dict[k][i].iteritems(): + if a=="2.Single CPU test": + raw_num=float(dwstone_dict[k][i][a]["2.Index score"]) + total=total+raw_num + + l= len(dwstone_dict) + + with open ('./reference.json') as reference_file: + reference_djson=json.load(reference_file) + dwstone_ref=reference_djson['compute'][file_dir] + + dwstone_index=float((total/l)/dwstone_ref) + dwstone_dict_i={}; + dwstone_dict_i['1. Index']=dwstone_index + dwstone_dict_i['2. Results']=dwstone_dict + return dwstone_dict_i + +def ssl_index (): + total_512rsa=0 + total_1024rsa=0 + total_2048rsa=0 + total_4096rsa=0 + + total_16aes=0 + total_64aes=0 + total_256aes=0 + total_1024aes=0 + total_8192aes=0 + + ssl_dict=concat('../../results/ssl/') + for k,v in ssl_dict.iteritems(): + for i,j in ssl_dict[k].iteritems(): + if i=="3 SSL result": + for a,b in ssl_dict[k][i].iteritems(): + if a=="2. RSA signatures": + raw_num_512rsa=float(ssl_dict[k][i][a]["1. 512 bits (sign/s)"]) + raw_num_1024rsa=float(ssl_dict[k][i][a]["2. 1024 bits (sign/s)"]) + raw_num_2048rsa=float(ssl_dict[k][i][a]["3. 2048 bits (sign/s)"]) + raw_num_4096rsa=float(ssl_dict[k][i][a]["4. 4096 bits (sign/s)"]) + total_512rsa=total_512rsa+raw_num_512rsa + total_1024rsa=total_512rsa+raw_num_1024rsa + total_2048rsa=total_2048rsa+raw_num_2048rsa + total_4096rsa=total_4096rsa+raw_num_4096rsa + elif a=="3. AES-128-cbc throughput": + raw_num_16aes=float(ssl_dict[k][i][a]["1. 16 Bytes block (B/sec)"][:-1])*1000 + raw_num_64aes=float(ssl_dict[k][i][a]["2. 64 Bytes block (B/sec)"][:-1])*1000 + raw_num_256aes=float(ssl_dict[k][i][a]["3. 256 Bytes block (B/sec)"][:-1])*1000 + raw_num_1024aes=float(ssl_dict[k][i][a]["4. 1024 Bytes block (B/sec)"][:-1])*1000 + raw_num_8192aes=float(ssl_dict[k][i][a]["5. 8192 Bytes block (B/sec)"][:-1])*1000 + total_16aes=raw_num_16aes+total_16aes + total_64aes=raw_num_64aes+total_64aes + total_256aes=raw_num_256aes+total_256aes + total_1024aes=raw_num_1024aes+total_1024aes + total_8192aes=raw_num_8192aes+total_8192aes + + with open ('./reference.json') as reference_file: + reference_djson=json.load(reference_file) + ssl_ref512rsa=reference_djson['compute']['ssl']['RSA']['512b'] + ssl_ref1024rsa=reference_djson['compute']['ssl']['RSA']['1024b'] + ssl_ref2048rsa=reference_djson['compute']['ssl']['RSA']['2048b'] + ssl_ref4096rsa=reference_djson['compute']['ssl']['RSA']['4096b'] + + + ssl_ref16aes=reference_djson['compute']['ssl']['AES']['16B'] + ssl_ref64aes=reference_djson['compute']['ssl']['AES']['64B'] + ssl_ref256aes=reference_djson['compute']['ssl']['AES']['256B'] + ssl_ref1024aes=reference_djson['compute']['ssl']['AES']['1024B'] + ssl_ref8192aes=reference_djson['compute']['ssl']['AES']['8192B'] + + + l=len(ssl_dict) + index_512rsa=float((total_512rsa/l)/ssl_ref512rsa) + index_1024rsa= float((total_1024rsa/l)/ssl_ref1024rsa) + index_2048= float((total_2048rsa/l)/ssl_ref2048rsa) + index_4096= float((total_4096rsa/l)/ssl_ref4096rsa) + + index_16aes=float((total_16aes/l)/ssl_ref16aes) + index_64aes=float((total_64aes/l)/ssl_ref64aes) + index_256aes=float((total_256aes/l)/ssl_ref256aes) + index_1024aes=float((total_1024aes/l)/ssl_ref1024aes) + index_8192aes=float((total_8192aes/l)/ssl_ref8192aes) + + index_sum= (index_512rsa+index_1024rsa+index_2048+index_4096+index_16aes+index_64aes+index_256aes+index_1024aes+index_8192aes) + ssl_index=float(index_sum/9) + ssl_dict_i={}; + ssl_dict_i['1. Index']=ssl_index + ssl_dict_i['2. Results']=ssl_dict + return ssl_dict_i + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/ref_results/compute_suite.py b/data/ref_results/compute_suite.py new file mode 100644 index 00000000..a57a4b04 --- /dev/null +++ b/data/ref_results/compute_suite.py @@ -0,0 +1,22 @@ +import json +import compute_benchmarks_indices as benchmark_indices + + +compute_dict={}; +compute_dict['DPI']=benchmark_indices.dpi_index() +compute_dict['Dhrystone']=benchmark_indices.dwstone_index('dhrystone','Dhrystone') +compute_dict['Whetstone']=benchmark_indices.dwstone_index('whetstone','Whetstone') +compute_dict['SSL']=benchmark_indices.ssl_index() + +compute_bench_list=['DPI','Dhrystone','Whetstone','SSL'] +temp=0 +for benchmark in compute_bench_list: + temp=temp+float(compute_dict[benchmark]['1. Index']) +compute_suite_index=temp/len(compute_bench_list) + +compute_dict_f={}; +compute_dict_f['1. Compute Index']=compute_suite_index +compute_dict_f['2. Compute suite results']=compute_dict +with open('../../results/compute_result.json', 'w+') as result_json: + json.dump(compute_dict_f, result_json, indent=4, sort_keys=True) + diff --git a/data/ref_results/generator_ref_json.py b/data/ref_results/generator_ref_json.py new file mode 100644 index 00000000..986ac61c --- /dev/null +++ b/data/ref_results/generator_ref_json.py @@ -0,0 +1,36 @@ +import os +import json + +dict_ref={}; +dict_ref['compute']={}; +dict_ref['compute']['dpi']=8.12 +dict_ref['compute']['whetstone']=859.1 +dict_ref['compute']['dhrystone']=3146.66 +dict_ref['compute']['ssl']={}; +dict_ref['compute']['ssl']['RSA']={}; +dict_ref['compute']['ssl']['AES']={}; +dict_ref['compute']['ssl']['RSA']['512b']=22148.9 +dict_ref['compute']['ssl']['RSA']['1024b']=7931.44 +dict_ref['compute']['ssl']['RSA']['2048b']=1544.3 +dict_ref['compute']['ssl']['RSA']['4096b']=161.92 + +dict_ref['compute']['ssl']['AES']['16B']=735490250 +dict_ref['compute']['ssl']['AES']['64B']=788429210 +dict_ref['compute']['ssl']['AES']['256B']=803323650 +dict_ref['compute']['ssl']['AES']['1024B']=808861020 +dict_ref['compute']['ssl']['AES']['8192B']=807701160 + + +dict_ref['storage']={}; +dict_ref['storage']['read']={}; +dict_ref['storage']['write']={}; +dict_ref['storage']['read']['IOPS']= 6995 +dict_ref['storage']['write']['IOPS']= 6990 + +dict_ref['network']={}; +dict_ref['network']['iperf']={}; +dict_ref['network']['iperf']['throughput received(b/s)']=9973180000.0 + +with open('reference.json', 'w+') as result_json: + json.dump(dict_ref, result_json, indent=4, sort_keys=True) + diff --git a/data/ref_results/network_benchmarks_indices.py b/data/ref_results/network_benchmarks_indices.py new file mode 100644 index 00000000..f841a65f --- /dev/null +++ b/data/ref_results/network_benchmarks_indices.py @@ -0,0 +1,28 @@ +import os +import json +from result_accum import result_concat as concat + +def iperf_index (): + total_r=0 + iperf_dict=concat('../../results/iperf/') + for k,v in iperf_dict.iteritems(): + for i,j in iperf_dict[k].iteritems(): + if i=="3 IPERF result": + for a,b in iperf_dict[k][i].iteritems(): + if a=="2. Bandwidth": + raw_num=iperf_dict[k][i][a]['2. throughput Received (b/s)'] + total_r=total_r+raw_num + + l= len(iperf_dict) + + with open ('./reference.json') as reference_file: + reference_djson=json.load(reference_file) + iperf_ref_r=reference_djson['network']['iperf']['throughput received(b/s)'] + + + iperf_index_r=float((total_r/l)/iperf_ref_r) + iperf_dict_i={}; + iperf_dict_i['1. Index']=iperf_index_r + iperf_dict_i['2. Results']=iperf_dict + return iperf_dict_i + diff --git a/data/ref_results/network_suite.py b/data/ref_results/network_suite.py new file mode 100644 index 00000000..df80b8b5 --- /dev/null +++ b/data/ref_results/network_suite.py @@ -0,0 +1,22 @@ +import json +import network_benchmarks_indices as benchmark_indices + + +network_dict={}; +network_dict['IPERF']=benchmark_indices.iperf_index() + + + + +network_bench_list=['IPERF'] +temp=0 +for benchmark in network_bench_list: + temp=temp+float(network_dict[benchmark]['1. Index']) +network_suite_index=temp/len(network_bench_list) + +network_dict_f={}; +network_dict_f['1. Network Index']=network_suite_index +network_dict_f['2. Network suite results']=network_dict +with open('../../results/network_result.json', 'w+') as result_json: + json.dump(network_dict_f, result_json, indent=4, sort_keys=True) + diff --git a/data/ref_results/reference.json b/data/ref_results/reference.json new file mode 100644 index 00000000..7ded5532 --- /dev/null +++ b/data/ref_results/reference.json @@ -0,0 +1,35 @@ +{ + "compute": { + "dhrystone": 3146.66, + "dpi": 8.12, + "ssl": { + "AES": { + "1024B": 808861020, + "16B": 735490250, + "256B": 803323650, + "64B": 788429210, + "8192B": 807701160 + }, + "RSA": { + "1024b": 7931.44, + "2048b": 1544.3, + "4096b": 161.92, + "512b": 22148.9 + } + }, + "whetstone": 859.1 + }, + "network": { + "iperf": { + "throughput received(b/s)": 9973180000.0 + } + }, + "storage": { + "read": { + "IOPS": 6995 + }, + "write": { + "IOPS": 6990 + } + } +} \ No newline at end of file diff --git a/data/ref_results/result_accum.py b/data/ref_results/result_accum.py new file mode 100644 index 00000000..4c600048 --- /dev/null +++ b/data/ref_results/result_accum.py @@ -0,0 +1,31 @@ +import os +import json + +def result_concat(targ_dir): + list_vm=[]; + list_bm=[]; + diction={}; + for file in os.listdir(targ_dir): + if file.endswith(".json"): + if file.startswith("instance"): + print str(file) + list_vm.append(file) + #echo "I am here" + else: + list_bm.append(file) + l=len(list_bm) + k=len(list_vm) + + for x in range (0,l): + file_t=list_bm[x] + with open (targ_dir+file_t) as result_file: + result_djson=json.load(result_file) + diction['Baremetal'+str(int(x+1))]=result_djson + + for x in range (0,k): + file_t=list_vm[x] + with open (targ_dir+file_t) as result_file: + result_djson=json.load(result_file) + diction['Virtual Machine '+str(x+1)]=result_djson + return diction + diff --git a/data/ref_results/storage_benchmarks_indices.py b/data/ref_results/storage_benchmarks_indices.py new file mode 100644 index 00000000..6114ad6b --- /dev/null +++ b/data/ref_results/storage_benchmarks_indices.py @@ -0,0 +1,35 @@ +import os +import json +from result_accum import result_concat as concat + +def fio_index (): + total_r=0 + total_w=0 + fio_dict=concat('../../results/fio/') + for k,v in fio_dict.iteritems(): + for i,j in fio_dict[k].iteritems(): + if i=="3 FIO result": + for a,b in fio_dict[k][i].iteritems(): + for c,d in fio_dict[k][i][a].iteritems(): + if c=='read': + raw_num=float(fio_dict[k][i][a][c]["IO/sec"]) + total_r=total_r+raw_num + elif c=='write': + raw_num=float(fio_dict[k][i][a][c]["IO/sec"]) + total_w=total_w+raw_num + + l= len(fio_dict) + + with open ('./reference.json') as reference_file: + reference_djson=json.load(reference_file) + fio_ref_r=reference_djson['storage']['read']['IOPS'] + fio_ref_w=reference_djson['storage']['write']['IOPS'] + + fio_index_r=float((total_r/l)/fio_ref_r) + fio_index_w=float((total_w/l)/fio_ref_w) + fio_index=float((fio_index_r+fio_index_w)/2) + fio_dict_i={}; + fio_dict_i['1. Index']=fio_index + fio_dict_i['2. Results']=fio_dict + return fio_dict_i + diff --git a/data/ref_results/storage_suite.py b/data/ref_results/storage_suite.py new file mode 100644 index 00000000..fe4e940c --- /dev/null +++ b/data/ref_results/storage_suite.py @@ -0,0 +1,22 @@ +import json +import storage_benchmarks_indices as benchmark_indices + + +storage_dict={}; +storage_dict['FIO']=benchmark_indices.fio_index() + + + + +storage_bench_list=['FIO'] +temp=0 +for benchmark in storage_bench_list: + temp=temp+float(storage_dict[benchmark]['1. Index']) +storage_suite_index=temp/len(storage_bench_list) + +storage_dict_f={}; +storage_dict_f['1. Storage Index']=storage_suite_index +storage_dict_f['2. Storage suite results']=storage_dict +with open('../../results/storage_result.json', 'w+') as result_json: + json.dump(storage_dict_f, result_json, indent=4, sort_keys=True) + diff --git a/docker/Dockerfile b/docker/Dockerfile index b0d512f8..0087689c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -10,7 +10,8 @@ LABEL version="0.1" description="OPNFV QTIP Docker container" -ENV repos_dir /home/opnfv/repos +ENV REPOS_DIR /home/opnfv/repos +ENV QTIP_DIR /home/opnfv/repos/qtip WORKDIR /home/opnfv diff --git a/docker/run_qtip.sh b/docker/run_qtip.sh new file mode 100755 index 00000000..dd3d322f --- /dev/null +++ b/docker/run_qtip.sh @@ -0,0 +1,17 @@ +#! /bin/bash + +cp ${REPOS_DIR}/releng/utils/fetch_os_creds.sh ${QTIP_DIR}/data/ +cd ${QTIP_DIR}/data && source get_env_info.sh -n ${INSTALLER_TYPE} -i ${INSTALLER_IP} +source ${QTIP_DIR}/data/opnfv-creds.sh +cd ${QTIP_DIR} && python qtip.py -l ${LAB} -f compute.txt +cd ${QTIP_DIR} && python qtip.py -l ${LAB} -f storage.txt +cd ${QTIP_DIR} && python qtip.py -l ${LAB} -f network.txt + +cd ${QTIP_DIR}/data/ref_results/ $$ python compute_suite.py +cd ${QTIP_DIR}/data/ref_results/ $$ python storage_suite.py +cd ${QTIP_DIR}/data/ref_results/ $$ python network_suite.py + + + + + diff --git a/fetch_os_creds.sh b/fetch_os_creds.sh deleted file mode 100755 index cefc8576..00000000 --- a/fetch_os_creds.sh +++ /dev/null @@ -1,171 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jose.lausuch@ericsson.com -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - - -usage() { - echo "usage: $0 -d -i -a " >&2 -} - -info () { - logger -s -t "fetch_os_creds.info" "$*" -} - - -error () { - logger -s -t "fetch_os_creds.error" "$*" - exit 1 -} - - -verify_connectivity() { - local ip=$1 - info "Verifying connectivity to $ip..." - for i in $(seq 0 10); do - if ping -c 1 -W 1 $ip > /dev/null; then - info "$ip is reachable!" - return 0 - fi - sleep 1 - done - error "Can not talk to $ip." -} - - - -#Get options -while getopts ":d:i:a:h:" optchar; do - case "${optchar}" in - d) dest_path=${OPTARG} ;; - i) installer_type=${OPTARG} ;; - a) installer_ip=${OPTARG} ;; - *) echo "Non-option argument: '-${OPTARG}'" >&2 - usage - exit 2 - ;; - esac -done - -# set vars from env if not provided by user as options -dest_path=${dest_path:-$HOME/opnfv-openrc.sh} -installer_type=${installer_type:-$INSTALLER_TYPE} -installer_ip=${installer_ip:-$INSTALLER_IP} - -if [ -z $dest_path ] || [ -z $installer_type ] || [ -z $installer_ip ]; then - usage - exit 2 -fi - -# Checking if destination path is valid -if [ -d $dest_path ]; then - error "Please provide the full destination path for the credentials file including the filename" -else - # Check if we can create the file (e.g. path is correct) - touch $dest_path || error "Cannot create the file specified. Check that the path is correct and run the script again." -fi - - -ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" - -# Start fetching the files -if [ "$installer_type" == "fuel" ]; then - #ip_fuel="10.20.0.2" - verify_connectivity $installer_ip - - # Check if controller is alive (online='True') - controller_ip=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \ - 'fuel node | grep controller | grep True | awk "{print \$10}" | tail -1') &> /dev/null - - if [ -z $controller_ip ]; then - error "The controller $controller_ip is not up. Please check that the POD is correctly deployed." - fi - - info "Fetching rc file from controller $controller_ip..." - sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${installer_ip} \ - "scp $ssh_options ${controller_ip}:/root/openrc ." &> /dev/null - sshpass -p r00tme scp 2>/dev/null $ssh_options root@${installer_ip}:~/openrc $dest_path &> /dev/null - - #This file contains the mgmt keystone API, we need the public one for our rc file - admin_ip=$(cat $dest_path | grep "OS_AUTH_URL" | sed 's/^.*\=//' | sed "s/^\([\"']\)\(.*\)\1\$/\2/g" | sed s'/\/$//') - public_ip=$(sshpass -p r00tme ssh $ssh_options root@${installer_ip} \ - "ssh ${controller_ip} 'source openrc; keystone endpoint-list'" \ - | grep $admin_ip | sed 's/ /\n/g' | grep ^http | head -1) &> /dev/null - #| grep http | head -1 | cut -d '|' -f 4 | sed 's/v1\/.*/v1\//' | sed 's/ //g') &> /dev/null - #NOTE: this is super ugly sed 's/v1\/.*/v1\//'OS_AUTH_URL - # but sometimes the output of endpoint-list is like this: http://172.30.9.70:8004/v1/%(tenant_id)s - - -elif [ "$installer_type" == "foreman" ]; then - #ip_foreman="172.30.10.73" - controller="oscontroller1.opnfv.com" - verify_connectivity $installer_ip - - # Check if controller is alive (here is more difficult to get the ip from a command like "fuel node") - sshpass -p vagrant ssh $ssh_options root@${installer_ip} \ - "sshpass -p Op3nStack ssh $ssh_options root@${controller} 'ls'" &> /dev/null - if [ $? -ne 0 ]; then - error "The controller ${controller} is not up. Please check that the POD is correctly deployed." - fi - - info "Fetching openrc from a Foreman Controller '${controller}'..." - sshpass -p vagrant ssh $ssh_options root@${installer_ip} \ - "sshpass -p Op3nStack scp $ssh_options root@${controller}:~/keystonerc_admin ." &> /dev/null - sshpass -p vagrant scp $ssh_options root@${installer_ip}:~/keystonerc_admin $dest_path &> /dev/null - - #This file contains the mgmt keystone API, we need the public one for our rc file - admin_ip=$(cat $dest_path | grep "OS_AUTH_URL" | sed 's/^.*\=//' | sed "s/^\([\"']\)\(.*\)\1\$/\2/g" | sed s'/\/$//') - public_ip=$(sshpass -p vagrant ssh $ssh_options root@${installer_ip} \ - "sshpass -p Op3nStack ssh $ssh_options root@${controller} \ - 'source keystonerc_admin;keystone endpoint-list'" \ - | grep $admin_ip | sed 's/ /\n/g' | grep ^http | head -1) &> /dev/null - -elif [ "$installer_type" == "compass" ]; then - #ip_compass="10.1.0.12" - verify_connectivity $installer_ip - - # controller_ip='10.1.0.222' - controller_ip=$(sshpass -p'root' ssh 2>/dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@10.1.0.12 \ - 'mysql -ucompass -pcompass -Dcompass -e"select package_config from cluster;"' \ - | awk -F"," '{for(i=1;i/dev/null $ssh_options root@${installer_ip} \ - "scp $ssh_options ${controller_ip}:/opt/admin-openrc.sh ." &> /dev/null - sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:~/admin-openrc.sh $dest_path &> /dev/null - echo 'export OS_REGION_NAME=regionOne' >> $dest_path - - info "This file contains the mgmt keystone API, we need the public one for our rc file" - admin_ip=$(cat $dest_path | grep "OS_AUTH_URL" | sed 's/^.*\=//' | sed "s/^\([\"']\)\(.*\)\1\$/\2/g" | sed s'/\/$//') - info "admin_ip: $admin_ip" - public_ip=$(sshpass -p root ssh $ssh_options root@${installer_ip} \ - "ssh ${controller_ip} 'source /opt/admin-openrc.sh; keystone endpoint-list'" \ - | grep $admin_ip | sed 's/ /\n/g' | grep ^http | head -1) - info "public_ip: $public_ip" - -else - error "Installer $installer is not supported by this script" -fi - - - -if [ "$public_ip" == "" ]; then - error "Cannot retrieve the public IP from keystone" -fi - -info "Keystone public IP is $public_ip" -sed -i "/OS_AUTH_URL/c\export OS_AUTH_URL=\'$public_ip'" $dest_path - -echo "-------- Credentials: --------" -cat $dest_path - -exit 0 diff --git a/func/env_setup.py b/func/env_setup.py index a888046c..c0e1b539 100644 --- a/func/env_setup.py +++ b/func/env_setup.py @@ -57,15 +57,15 @@ class Env_setup(): ssh_c = 'ssh-keyscan {0} >> ~/.ssh/known_hosts'.format(k) - #os.system(ssh_c) - ssh_cmd = 'expect ./data/ssh_exch.exp {0} {1}'.format(ipvar, pwvar) + os.system(ssh_c) + ssh_cmd = './data/qtip_creds.sh {0}'.format(ipvar) print ssh_cmd res = os.system(ssh_cmd) for infinity in range(100): try : ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - ssh.connect(k , username = 'root', password = v) + ssh.connect(k , key_filename= './data/QtipKey') stdin, stdout, stderr = ssh.exec_command('ls') print('SSH successful') break @@ -79,7 +79,7 @@ class Env_setup(): time.sleep(3) os.system(ssh_c) - for infinity in range(100): + for infinity in range(10): try : ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) diff --git a/test_cases/dell-us-testing-bm-1/compute/dhrystone_bm.yaml b/test_cases/dell-us-testing-bm-1/compute/dhrystone_bm.yaml new file mode 100644 index 00000000..022cf5ee --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/compute/dhrystone_bm.yaml @@ -0,0 +1,35 @@ + +Scenario: + benchmark: dhrystone + host: machine_1, machine_2 + server: + +Context: + Host_Machines: + machine_1: + ip: 10.20.0.4 + pw: + role: host + machine_2: + ip: 10.20.0.5 + pw: + role: host + + Virtual_Machines: + + +Test_Description: + Test_category: "Compute" + Benchmark: "dhrystone" + Overview: > + ''' This test will run the dhrystone benchmark in parallel on machine_1 and machine_2.\n + if you wish to add a virtual machine add the following information under the Virtual_Machine tag + + virtualmachine_1: + availability_zone: + public_network: + OS_image: + flavor: + role: ''' + + diff --git a/test_cases/dell-us-testing-bm-1/compute/dhrystone_vm.yaml b/test_cases/dell-us-testing-bm-1/compute/dhrystone_vm.yaml new file mode 100644 index 00000000..c14399b1 --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/compute/dhrystone_vm.yaml @@ -0,0 +1,45 @@ +Scenario: + benchmark: dhrystone + host: virtualmachine_1, virtualmachine_2 + server: blakc + +Context: + Host_Machines: + + Virtual_Machines: + virtualmachine_1: + availability_zone: compute1 + public_network: 'net04_ext' + OS_image: QTIP_CentOS + flavor: m1.large + role: host + virtualmachine_2: + availability_zone: compute2 + public_network: 'net04_ext' + OS_image: QTIP_CentOS + flavor: m1.large + role: host + +Test_Description: + Test_category: "Compute" + Benchmark: "dhrystone" + Overview: > + '''This test will run the dhrystone benchmark in parallel on machine_1 and machine_2.\n + if you wish to add a virtual machine add the following information under the Virtual_Machine tag + machine_1: + ip: 172.18.0.16 + pw: Op3nStack + role: host + machine_2: + ip: 172.18.0.15 + pw: Op3nStack + role: host + + virtualmachine_1: + availability_zone: + public_network: + OS_image: + flavor: + role: + ''' + diff --git a/test_cases/dell-us-testing-bm-1/compute/dpi_bm.yaml b/test_cases/dell-us-testing-bm-1/compute/dpi_bm.yaml new file mode 100644 index 00000000..27b6d863 --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/compute/dpi_bm.yaml @@ -0,0 +1,34 @@ +Scenario: + benchmark: dpi + host: machine_1,machine_2 + +Context: + Host_Machines: + machine_1: + ip: 172.18.0.17 + pw: Op3nStack + role: 1host + machine_2: + ip: 172.18.0.16 + pw: Op3nStack + role: 1host + Virtual_Machines: +Test_Description: + Test_category: "Compute" + Benchmark: "dpi" + Overview: > + '''This test will run the DPI benchmark in serial on virutalmachine_1 and virtualmachine_2.\n + if you wish to add a host machine add the following information under the Host_Machine tag + virtualmachine_2: + availability_zone: compute1 + OS_image: QTIP_CentOS + public_network: 'provider_network' + + role: 1host + flavor: m1.large + machine_1: + ip: + pw: + role: + ''' + diff --git a/test_cases/dell-us-testing-bm-1/compute/dpi_vm.yaml b/test_cases/dell-us-testing-bm-1/compute/dpi_vm.yaml new file mode 100644 index 00000000..8a157e7a --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/compute/dpi_vm.yaml @@ -0,0 +1,35 @@ +Scenario: + benchmark: dpi + 1Run : virtualmachine_1, virtualmachine_2 + +Context: + Host_Machines: + + + Virtual_Machines: + virtualmachine_1: + availability_zone: compute1 + OS_image: QTIP_CentOS + public_network: 'net04_ext' + role: 1Run + flavor: m1.large + virtualmachine_2: + availability_zone: compute4 + OS_image: QTIP_CentOS + public_network: 'net04_ext' + role: 1Run + flavor: m1.large + +Test_Description: + Test_category: "Compute" + Benchmark: "dpi" + Overview: > + '''This test will run the DPI benchmark in parallel on virutalmachine_1 and virtualmachine_2.\n + if you wish to add a host machine add the following information under the Host_Machine tag + + machine_1: + ip: + pw: + role: + ''' + diff --git a/test_cases/dell-us-testing-bm-1/compute/ssl_bm.yaml b/test_cases/dell-us-testing-bm-1/compute/ssl_bm.yaml new file mode 100644 index 00000000..bded6d2d --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/compute/ssl_bm.yaml @@ -0,0 +1,31 @@ +Scenario: + benchmark: ssl + 1Run: machine_1,machine_2 + +Context: + Host_Machines: + machine_1: + ip: 10.20.0.4 + pw: + role: 1Run + machine_2: + ip: 10.20.0.5 + pw: + role: 1Run + Virtual_Machines: + + +Test_Description: + Test_category: "Compute" + Benchmark: "ssl" + Overview: > + '''This test will run the SSL benchmark in parallel on machine_1 and machine_1. + If you wish to add a virtual machine add the following information under the Virtual_Machine tag + + virtualmachine_1: + availability_zone: + public_network: + OS_image: + flavor: + role: + ''' diff --git a/test_cases/dell-us-testing-bm-1/compute/ssl_vm.yaml b/test_cases/dell-us-testing-bm-1/compute/ssl_vm.yaml new file mode 100644 index 00000000..cbacf088 --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/compute/ssl_vm.yaml @@ -0,0 +1,36 @@ +Scenario: + benchmark: ssl + host: virtualmachine_1, virtualmachine_2 + +Context: + Host_Machines: + + Virtual_Machines: + virtualmachine_1: + availability_zone: compute1 + public_network: 'net04_ext' + OS_image: 'QTIP_CentOS' + flavor: 'm1.large' + role: host + virtualmachine_2: + availability_zone: compute2 + public_network: 'net04_ext' + OS_image: 'QTIP_CentOS' + flavor: 'm1.large' + role: host + + +Test_Description: + Test_category: "Compute" + Benchmark: "ssl" + Overview: > + '''This test will run the SSL benchmark in parallel on virtualmachine_1 and machine_1.\n + if you wish to add a virtual machine add the following information under the Virtual_Machine tag + + virtualmachine_1: + availability_zone: + public_network: + OS_image: + flavor: + role: + ''' diff --git a/test_cases/dell-us-testing-bm-1/compute/whetstone_bm.yaml b/test_cases/dell-us-testing-bm-1/compute/whetstone_bm.yaml new file mode 100644 index 00000000..136ac2b0 --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/compute/whetstone_bm.yaml @@ -0,0 +1,34 @@ + +Scenario: + benchmark: whetstone + host: machine_1, machine_2 + + +Context: + Host_Machines: + machine_1: + ip: 10.20.0.4 + pw: + role: host + machine_2: + ip: 10.20.0.5 + pw: + role: host + Virtual_Machines: + + + +Test_Description: + Test_category: "Compute" + Benchmark: "whetstone" + Overview: > + ''' This test will run the whetstone benchmark in parallel on machine_1 and machine_2.\n + if you wish to add a baremetal machine add the following information under the Virtual_Machine tag + + machine_3: + ip: + pw: + role: + ''' + + diff --git a/test_cases/dell-us-testing-bm-1/compute/whetstone_vm.yaml b/test_cases/dell-us-testing-bm-1/compute/whetstone_vm.yaml new file mode 100644 index 00000000..17928fa1 --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/compute/whetstone_vm.yaml @@ -0,0 +1,44 @@ +Scenario: + benchmark: whetstone + host: virtualmachine_1, virtualmachine_1 + server: + +Context: + Host_Machines: + + Virtual_Machines: + virtualmachine_1: + availability_zone: compute1 + public_network: 'net04_ext' + OS_image: QTIP_CentOS + flavor: m1.large + role: host + virtualmachine_2: + availability_zone: compute2 + public_network: 'net04_ext' + OS_image: QTIP_CentOS + flavor: m1.large + role: host + + +Test_Description: + Test_category: "Compute" + Benchmark: "dhrystone" + Overview: > + '''This test will run the whetstone benchmark in parallel on machine_1 and machine_2.\n + if you wish to add a virtual machine add the following information under the Virtual_Machine tag + virtualmachine_1: + availability_zone: nova + public_network: 'net04_ext' + OS_image: QTIP_CentOS + flavor: m1.large + role: host + + virtualmachine_1: + availability_zone: + public_network: + OS_image: + flavor: + role: + ''' + diff --git a/test_cases/dell-us-testing-bm-1/network/iperf_topology_1.yaml b/test_cases/dell-us-testing-bm-1/network/iperf_topology_1.yaml new file mode 100644 index 00000000..18eba8ac --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/network/iperf_topology_1.yaml @@ -0,0 +1,43 @@ +Scenario: + benchmark: iperf + topology: Client and Server on ONE compute + server : virtualmachine_1 + client: virtualmachine_2 + benchmark_details: + duration: 20 + protocol: tcp + bandwidthGbps: 10 + +Context: + Host_Machines: + + + Virtual_Machines: + virtualmachine_1: + availability_zone: compute1 + OS_image: QTIP_CentOS + public_network: 'net04_ext' + role: 1-server + flavor: m1.large + + virtualmachine_2: + availability_zone: compute1 + OS_image: QTIP_CentOS + public_network: 'net04_ext' + role: 2-host + flavor: m1.large + +Test_Description: + Test_category: "network" + Benchmark: "iperf" + Overview: > + '''This test will run the IPERF benchmark on virutalmachine_1 and virtualmachine_2. On the\n + same compute node + if you wish to add a host machine add the following information under the Host_Machine tag + + machine_1: + ip: + pw: + role: + ''' + diff --git a/test_cases/dell-us-testing-bm-1/network/iperf_topology_2.yaml b/test_cases/dell-us-testing-bm-1/network/iperf_topology_2.yaml new file mode 100644 index 00000000..301a9916 --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/network/iperf_topology_2.yaml @@ -0,0 +1,43 @@ +Scenario: + benchmark: iperf + topology: Client and Server on different Compute nodes + server: virtualmachine_1 + client: virtualmachine_2 + benchmark_details: + duration: 20 + protocol: tcp + bandwidthGbps: 10 + +Context: + Host_Machines: + + + Virtual_Machines: + virtualmachine_1: + availability_zone: compute1 + OS_image: QTIP_CentOS + public_network: 'net04_ext' + role: 1-server + flavor: m1.large + + virtualmachine_2: + availability_zone: compute2 + OS_image: QTIP_CentOS + public_network: 'net04_ext' + role: 2-host + flavor: m1.large + +Test_Description: + Test_category: "network" + Benchmark: "iperf" + Overview: > + '''This test will run the IPERF benchmark on virutalmachine_1 and virtualmachine_2. On the\n + same compute node + if you wish to add a host machine add the following information under the Host_Machine tag + + machine_1: + ip: + pw: + role: + ''' + diff --git a/test_cases/dell-us-testing-bm-1/network/iperf_topology_3.yaml b/test_cases/dell-us-testing-bm-1/network/iperf_topology_3.yaml new file mode 100644 index 00000000..9e7b73e7 --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/network/iperf_topology_3.yaml @@ -0,0 +1,60 @@ +Scenario: + benchmark: iperf + topology: 2 Client on one compute and 2 servers on another machine + 1Run : virtualmachine_1, virtualmachine_2 + 2Run: + benchmark_details: + duration: 20 + protocol: udp + bandwidthGbps: 1 + +Context: + Host_Machines: + + + Virtual_Machines: + virtualmachine_1: + availability_zone: compute1 + OS_image: QTIP_CentOS + public_network: 'provider_network' + role: 1-server + flavor: m1.large + + virtualmachine_2: + availability_zone: compute2 + OS_image: QTIP_CentOS + public_network: 'provider_network' + role: 1-server + flavor: m1.large + + virtualmachine_3: + availability_zone: compute3 + OS_image: QTIP_CentOS + public_network: 'provider_network' + role: 1-server + flavor: m1.large + + virtualmachine_4: + availability_zone: compute4 + OS_image: QTIP_CentOS + public_network: 'provider_network' + role: 1-server + flavor: m1.large + + + + +Test_Description: + Test_category: "network" + Benchmark: "iperf" + Overview: > + '''This test will run the IPERF benchmark on virutalmachine_1 and virtualmachine_2. On the\n + same compute node + if you wish to add a host machine add the following information under the Host_Machine tag + + machine_1: + ip: + pw: + role: + ''' + diff --git a/test_cases/dell-us-testing-bm-1/network/netperf.yaml b/test_cases/dell-us-testing-bm-1/network/netperf.yaml new file mode 100644 index 00000000..267b288d --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/network/netperf.yaml @@ -0,0 +1,42 @@ +Scenario: + benchmark: netperf + topology: Client and Server on ONE compute + server : virtualmachine_1 + client: virtualmachine_2 + benchmark_details: + duration: 10 + teststream: udp_stream + +Context: + Host_Machines: + + + Virtual_Machines: + virtualmachine_1: + availability_zone: compute2 + OS_image: QTIP_CentOS + public_network: 'net04_ext' + role: 1-server + flavor: m1.large + + virtualmachine_2: + availability_zone: compute2 + OS_image: QTIP_CentOS + public_network: 'net04_ext' + role: 2-host + flavor: m1.large + +Test_Description: + Test_category: "network" + Benchmark: "netperf" + Overview: > + '''This test will run the NETPERF benchmark on virutalmachine_1 and virtualmachine_2. On the\n + same compute node + if you wish to add a host machine add the following information under the Host_Machine tag + + machine_1: + ip: + pw: + role: + ''' + diff --git a/test_cases/dell-us-testing-bm-1/network/pktgen.yaml b/test_cases/dell-us-testing-bm-1/network/pktgen.yaml new file mode 100644 index 00000000..13fae68f --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/network/pktgen.yaml @@ -0,0 +1,44 @@ +Scenario: + benchmark: pktgen + topology: Client and Server on ONE compute + server : virtualmachine_1 + client: virtualmachine_2 + benchmark_details: + duration: "10" + packetsize: "64" + ipaddr: "10.10.17.4" + numberofports: "10" + +Context: + Host_Machines: + + + Virtual_Machines: + virtualmachine_1: + availability_zone: compute2 + OS_image: pktgenready + public_network: 'provider_network' + role: 1-server + flavor: m1.large + + virtualmachine_2: + availability_zone: compute2 + OS_image: pktgenready + public_network: 'provider_network' + role: 2-host + flavor: m1.large + +Test_Description: + Test_category: "network" + Benchmark: "iperf" + Overview: > + '''This test will run the IPERF benchmark on virutalmachine_1 and virtualmachine_2. On the\n + same compute node + if you wish to add a host machine add the following information under the Host_Machine tag + + machine_1: + ip: + pw: + role: + ''' + diff --git a/test_cases/dell-us-testing-bm-1/storage/fio_bm.yaml b/test_cases/dell-us-testing-bm-1/storage/fio_bm.yaml new file mode 100644 index 00000000..4778c385 --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/storage/fio_bm.yaml @@ -0,0 +1,39 @@ +Scenario: + benchmark: fio + host: machine_1, machine_2 + server: blakc + +Context: + Host_Machines: + machine_1: + ip: 10.20.0.7 + pw: r00tme + role: host + machine_2: + ip: 10.20.0.6 + pw: r00tme + role: host + + + Virtual_Machines: + + +Test_Description: + Test_category: "Storage" + Benchmark: "FIO" + Overview: > + '''This test will run the FIO benchmark in parallel on host machines "machine_1" and "machine_2".\n + The fio job specifications can be found in qtip/benchmarks/fio_jobs/test_job. + The job conists of an fio load of: + 1.50% rand read 50% rand write + 2.Asynch engine + 3.Direct IO. + 4.Queing depth of 2 + + if you wish to add another machine add the following information under the Host_Machines tag + machine_3: + ip: 172.18.0.16 + pw: Op3nStack + role: host + ''' + diff --git a/test_cases/dell-us-testing-bm-1/storage/fio_vm.yaml b/test_cases/dell-us-testing-bm-1/storage/fio_vm.yaml new file mode 100644 index 00000000..dcd27252 --- /dev/null +++ b/test_cases/dell-us-testing-bm-1/storage/fio_vm.yaml @@ -0,0 +1,44 @@ +Scenario: + benchmark: fio + host: machine_1, machine_2 + server: blakc + +Context: + Host_Machines: + + Virtual_Machines: + virtualmachine_1: + availability_zone: compute1 + public_network: 'net04_ext' + OS_image: QTIP_CentOS + flavor: m1.large + role: host + virtualmachine_2: + availability_zone: compute2 + public_network: 'net04_ext' + OS_image: QTIP_CentOS + flavor: m1.large + role: host + +Test_Description: + Test_category: "Storage" + Benchmark: "FIO" + Overview: > + '''This test will run the FIO benchmark in parallel on virtualmachine_1 and virtualmachine_2.\n + The fio job specifications can be found in qtip/benchmarks/fio_jobs/test_job. + The job conists of an fio load of: + 1.50% rand read 50% rand write + 2.Asynch engine + 3.Direct IO. + 4.Queing depth of 2 + + if you wish to add a virtual machine add the following information under the Virtual_Machine tag + + virtualmachine_3: + availability_zone: + public_network: + OS_image: + flavor: + role: + ''' + diff --git a/test_list/compute.txt b/test_list/compute.txt index 30d904e3..044d8de6 100644 --- a/test_list/compute.txt +++ b/test_list/compute.txt @@ -1,2 +1,8 @@ -dpi_parallel.yaml -ssl_parallel.yaml +dhrystone_bm.yaml +dhrystone_vm.yaml +whetstone_bm.yaml +whetstone_vm.yaml +ssl_bm.yaml +ssl_vm.yaml +dpi_bm.yaml +dpi_vm.yaml diff --git a/test_list/storage.txt b/test_list/storage.txt index fdca37e5..266d399e 100644 --- a/test_list/storage.txt +++ b/test_list/storage.txt @@ -1,2 +1,2 @@ -fio_baremetal.yaml +fio_bm.yaml fio_vm.yaml -- cgit 1.2.3-korg