aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMofassir Arif <mofassir@gmail.com>2015-12-09 04:50:55 -0800
committerMofassir Arif <Mofassir_arif@dellteam.com>2015-12-16 01:45:38 -0800
commite51df601fe4a1bd22274e3da62659b1ed7b2c49b (patch)
tree66abbe6ea11fec7e027fab4481ae1cd9e44f054f
parentae9f53f8f00342627f6d0124e53a285438c1ca4e (diff)
Networking Testcase: Iperf Implemented
The ansible playbooks as well as the config files for the iperf throughput testing have been implemented. Some changes have been made to the driver function for the benchmarks. ansible now gets passed a json file. Change-Id: Ibf4c0210ab9f6cbf9896ca69bf2fb6bda8a9925d Signed-off-by: Mofassir Arif <mofassir@gmail.com>
-rw-r--r--.gitignore59
-rw-r--r--benchmarks/playbooks/dhrystone.yaml3
-rw-r--r--benchmarks/playbooks/dpi.yaml3
-rw-r--r--benchmarks/playbooks/info_script/info_collect.py104
-rw-r--r--benchmarks/playbooks/iperf.yaml87
-rw-r--r--benchmarks/playbooks/netperf.yaml74
-rw-r--r--benchmarks/playbooks/pktgen.yaml38
-rw-r--r--benchmarks/playbooks/ramspeedbench.yaml38
-rw-r--r--benchmarks/playbooks/result_transform/dpi/dpi_transform.py4
-rw-r--r--benchmarks/playbooks/result_transform/dpi/final_report.py20
-rw-r--r--benchmarks/playbooks/result_transform/ssl/ssl_transform.py16
-rw-r--r--benchmarks/playbooks/ssl.yaml19
-rw-r--r--benchmarks/playbooks/sys_info_pbook.yaml7
-rw-r--r--benchmarks/playbooks/whetstone.yaml3
-rw-r--r--func/__init__.pycbin145 -> 0 bytes
-rw-r--r--func/cli.py16
-rw-r--r--func/cli.pycbin2097 -> 0 bytes
-rw-r--r--func/create_zones.py25
-rw-r--r--func/create_zones.pycbin3912 -> 0 bytes
-rw-r--r--func/driver.py37
-rw-r--r--func/driver.pycbin1068 -> 0 bytes
-rw-r--r--func/env_setup.py27
-rw-r--r--func/env_setup.pycbin5113 -> 0 bytes
-rw-r--r--func/fetchimg.pycbin1073 -> 0 bytes
-rw-r--r--func/spawn_vm.py69
-rw-r--r--func/spawn_vm.pycbin8366 -> 0 bytes
-rw-r--r--func/validate_yaml.pycbin777 -> 0 bytes
-rw-r--r--results/INFO2
-rw-r--r--results/foo.txt0
-rw-r--r--test_cases/compute/dpi_parallel.yaml2
-rw-r--r--test_cases/network/iperf.yaml17
-rw-r--r--test_cases/network/iperf_topology_1.yaml43
-rw-r--r--test_cases/network/iperf_topology_2.yaml43
-rw-r--r--test_cases/network/iperf_topology_3.yaml60
-rw-r--r--test_cases/network/netperf.yaml42
-rw-r--r--test_cases/network/pktgen.yaml44
36 files changed, 806 insertions, 96 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..7d440988
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,59 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+env/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+*.egg-info/
+.installed.cfg
+*.egg
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*,cover
+.hypothesis/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
diff --git a/benchmarks/playbooks/dhrystone.yaml b/benchmarks/playbooks/dhrystone.yaml
index 8d5f04a9..34ccfd89 100644
--- a/benchmarks/playbooks/dhrystone.yaml
+++ b/benchmarks/playbooks/dhrystone.yaml
@@ -19,8 +19,11 @@
- name: make directory
shell: mkdir $HOME/qtip_result
- include: ./sys_info_pbook.yaml
+<<<<<<< HEAD
vars:
network: false
+=======
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
- name: Installing UnixBench dependencies if CentOS
shell: yum install git gcc patch perl-Time-HiRes -y
when: ansible_os_family == "RedHat"
diff --git a/benchmarks/playbooks/dpi.yaml b/benchmarks/playbooks/dpi.yaml
index c18b75ac..b2c87d35 100644
--- a/benchmarks/playbooks/dpi.yaml
+++ b/benchmarks/playbooks/dpi.yaml
@@ -19,8 +19,11 @@
- name: make qtip_result
shell: mkdir $HOME/qtip_result
- include: ./sys_info_pbook.yaml
+<<<<<<< HEAD
vars:
network: false
+=======
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
- name: Installing nDPI dependencies if CentOS
shell: yum install git gcc patch perl-Time-HiRes autofconf automake libpcap-devel libtool -y
when: ansible_os_family == "RedHat"
diff --git a/benchmarks/playbooks/info_script/info_collect.py b/benchmarks/playbooks/info_script/info_collect.py
index b352651e..6dbb51b3 100644
--- a/benchmarks/playbooks/info_script/info_collect.py
+++ b/benchmarks/playbooks/info_script/info_collect.py
@@ -3,6 +3,7 @@ import pickle
import time
import datetime
import json
+<<<<<<< HEAD
import sys
os.system('inxi -b -c0 -n > $PWD/est_2')
@@ -92,3 +93,106 @@ with open('./sys_info_temp','w+')as out_info:
with open('temp','w+') as result_json:
json.dump(Info_dict,result_json,indent=4,sort_keys=True)
+=======
+
+os.system('inxi -b -c0 -n > $PWD/est_2')
+est_ob = open("est_2", "r+")
+est_ob2 = open("est_1", "w+")
+in_string = est_ob.read().replace('\n', ' ')
+
+est_ob2.write(in_string)
+est_ob.close()
+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(
+ """inxi -c0 | grep -o -P '(?<=Mem~).*(?=HDD)' """).read().lstrip().rstrip()
+inxi_cpu = os.popen(
+ """cat $PWD/est_1 | grep -o -P '(?<=CPU).*(?=speed)' | cut -f2 -d':'""").read().lstrip().rstrip()
+#inxi_Speed=os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=max:).*(?=Graphics)' """).read().rstrip().lstrip()
+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()
+inxi_HD = os.popen(
+ """ cat $PWD/est_1 | grep -o -P '(?<=HDD Total Size:).*(?=Info:)' """).read().rstrip().lstrip()
+#inxi_system=os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Machine System:).*(?=product:)' """).read().rstrip().lstrip()
+inxi_product = os.popen(
+ """ cat $PWD/est_1 | grep -o -P '(?<=product:).*(?=Mobo:)' """).read().rstrip().lstrip()
+# print inxi_system
+
+
+Info_dict['1_Hostname'] = inxi_host
+Info_dict['2_Product'] = inxi_product
+Info_dict['3_OS Distribution'] = inxi_distro
+Info_dict['4_Kernel'] = inxi_kernel
+Info_dict['5_CPU'] = inxi_cpu
+Info_dict['6_Memory Usage'] = inxi_mem
+Info_dict['7_Disk usage'] = inxi_HD
+Info_dict['8_Network_Interfaces'] = {}
+
+tem_2 = """ cat $PWD/est_1 | grep -o -P '(?<=Network:).*(?=Info:)'"""
+print os.system(tem_2 + ' > Hello')
+i = int(os.popen(tem_2 + " | grep -o 'Card' | wc -l ").read())
+print i
+
+
+for x in range(1, i + 1):
+ tem = """ cat $PWD/est_1 | grep -o -P '(?<=Card-""" + str(
+ x) + """:).*(?=Card-""" + str(x + 1) + """)'"""
+ if i == 1:
+ tem = """ cat $PWD/est_1 | grep -o -P '(?<=Network:).*(?=Info:)'"""
+ inxi_card_1 = (
+ (os.popen(
+ tem +
+ " | grep -o -P '(?<=Card:).*(?=Drives:)'|sed 's/ *driver:.*//'").read().rstrip().lstrip()))
+ print inxi_card_1
+ Info_dict['8_Network_Interfaces']['Interface_' + str(x)] = {}
+ Info_dict['8_Network_Interfaces'][
+ 'Interface_' + str(x)]['1_Network_Card'] = inxi_card_1
+ inxi_card_2 = (
+ (os.popen(
+ tem +
+ "| grep -o -P '(?<=Card:).*(?=Drives:)'|sed -e 's/^.*IF: //'").read())).rstrip().lstrip()
+ Info_dict['8_Network_Interfaces'][
+ 'Interface_' + str(x)]['2_Interface_info'] = inxi_card_2
+ elif x < (i):
+ print "two"
+ #inxi_Card_temp=((os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Card-"""+str(x)+""":).*(?=Card-"""+str(x+1)+""")' """).read().rstrip().lstrip()))
+ inxi_card_1 = (
+ (os.popen(tem + "| sed 's/ *driver:.*//'").read().rstrip().lstrip()))
+ Info_dict['8_Network_Interfaces']['Interface_' + str(x)] = {}
+ Info_dict['8_Network_Interfaces'][
+ 'Interface_' + str(x)]['1_Network_Card'] = inxi_card_1
+ inxi_card_2 = (
+ (os.popen(tem + "|sed -e 's/^.*IF: //'").read())).rstrip().lstrip()
+ Info_dict['8_Network_Interfaces'][
+ 'Interface_' + str(x)]['2_Interface_info'] = inxi_card_2
+ elif x == i:
+ print "Three"
+ Info_dict['8_Network_Interfaces']['Interface_' + str(x)] = {}
+ inxi_card_1 = (
+ (os.popen(
+ """ cat $PWD/est_1 | grep -o -P '(?<=Card-""" +
+ str(x) +
+ """:).*(?=Drives:)'| sed 's/ *driver:.*//' """).read().rstrip().lstrip()))
+ Info_dict['8_Network_Interfaces'][
+ 'Interface_' + str(x)]['1_Network_Card'] = inxi_card_1
+ inxi_card_2 = (
+ (os.popen(
+ """ cat $PWD/est_1 | grep -o -P '(?<=Card-""" +
+ str(x) +
+ """:).*(?=Drives:)'| sed -e 's/^.*IF: //' """).read().rstrip().lstrip()))
+ Info_dict['8_Network_Interfaces'][
+ 'Interface_' + str(x)]['2_Interface_info'] = inxi_card_2
+ else:
+ print "No network cards"
+print Info_dict
+home_dir = str(os.popen("echo $HOME").read().rstrip())
+with open('./sys_info_temp', 'w+')as out_info:
+ pickle.dump(Info_dict, out_info)
+
+# json.dump(Info_dict, out_json, sort_keys=True,separators=(',',':'),indent=4)
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
diff --git a/benchmarks/playbooks/iperf.yaml b/benchmarks/playbooks/iperf.yaml
new file mode 100644
index 00000000..9d4d185c
--- /dev/null
+++ b/benchmarks/playbooks/iperf.yaml
@@ -0,0 +1,87 @@
+ - hosts: 127.0.0.1
+ connection: local
+ tasks:
+
+ - name: getting directory
+ shell: echo $PWD
+ register: qtip_dir
+ - name: making Iperf directory
+ file: path=../../{{Dest_dir}}/iperf state=directory
+ - name: making temporary iperf directory
+ file: path=../../{{Dest_dir}}/iperf/iperf_temp state=directory
+
+
+ - hosts: "{{role}}"
+ tasks:
+ - name: Rolename
+ set_fact:
+ rolename: "{{role}}"
+ when: role is defined
+ - name: Get Hostname
+ shell: echo $HOSTNAME
+ register: hostID
+ - name: echo
+ shell: echo index_var
+ - name: checking_home directory
+ shell: echo $HOME
+ register: home_dir
+ - name: cleaning
+ shell: rm -rf $HOME/iperf
+ - name: cleaning previous results
+ shell: rm -rf $HOME/qtip_result
+ - name: making Iperf temporary directory
+ shell: mkdir $HOME/iperf
+ - name: making results temporary directory
+ shell: mkdir $HOME/qtip_result
+ - include: ./sys_info_pbook.yaml
+ - name: Installing Epel-release when CentOS
+ shell: yum install epel-release -y
+ when: ansible_os_family == "RedHat"
+ - name: Getting Firewall entry number
+ shell: iptables -L INPUT --line-number | grep DROP | awk '{print $1}'
+ register: iptable_entry
+ ignore_errors: yes
+ - name: Removing entry number
+ shell: iptables -D INPUT {{iptable_entry.stdout}}
+ ignore_errors: yes
+ when: iptable_entry != ''
+ - name: Installing IPERF when Ubuntu
+ shell: apt-get install iperf3 -y
+ when: ansible_os_family == "Debian" and rolename == '1-server'
+ - name: Installing Iperf3
+ shell: yum install iperf3 -y
+ when: ansible_os_family == "RedHat"
+ - name: Running iperf on server
+ shell: iperf3 -s
+ async: 400
+ poll: 0
+ when: rolename == "1-server"
+ - name: Running Iperf on Host
+ shell: iperf3 -Z --{{protocol}} --time {{duration}} -b {{bandwidthGbps}}G -c {{item}} -J >> ./qtip_result/server{{hostID.stdout}}-{{item}}.json
+ ignore_errors: yes
+ with_items:
+ - "{{ip1}}"
+ - "{{ip2}}"
+ when: rolename == "2-host" and "{{ip2}}" != ''
+ - name: Running Iperf on Host
+ shell: iperf3 -Z --{{protocol}} --time {{duration}} -b {{bandwidthGbps}}G -c {{item}} -J >> ./qtip_result/server{{hostID.stdout}}-{{item}}.json
+ ignore_errors: yes
+ with_items:
+ - "{{ip1}}"
+ when: rolename == "2-host" and "{{ip2}}" == ''
+ - name: Files to Copy
+ shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.json") | cut -d'/' -f2
+ register: files_to_copy
+ - name: copy results
+ fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest=../../{{Dest_dir}}/iperf/iperf_temp
+ with_items: files_to_copy.stdout_lines
+ - hosts: 127.0.0.1
+ connection: local
+ tasks:
+ - name: Rolename
+ set_fact:
+ rolename: "{{role}}"
+ when: role is defined
+ - name: extracting_json
+ shell: ( find ../../{{Dest_dir}}/iperf/iperf_temp/ -name "*.json" | xargs cp -t ../../{{Dest_dir}}/iperf/)
+ when: rolename == "2-host"
diff --git a/benchmarks/playbooks/netperf.yaml b/benchmarks/playbooks/netperf.yaml
new file mode 100644
index 00000000..fb6fd18a
--- /dev/null
+++ b/benchmarks/playbooks/netperf.yaml
@@ -0,0 +1,74 @@
+ - hosts: 127.0.0.1
+ connection: local
+ tasks:
+
+ - name: getting directory
+ shell: echo $PWD
+ register: qtip_dir
+ - name: making Netperf directory
+ file: path=../../{{Dest_dir}}/netperf state=directory
+ - name: making temporary netperf directory
+ file: path=../../{{Dest_dir}}/netperf/netperf_temp state=directory
+
+
+ - hosts: "{{role}}"
+ tasks:
+ - name: Rolename
+ set_fact:
+ rolename: "{{role}}"
+ when: role is defined
+
+ - name: Get Hostname
+ shell: echo $HOSTNAME
+ register: hostID
+ - name: checking_home directory
+ shell: echo $HOME
+ register: home_dir
+ - name: cleaning
+ shell: rm -rf $HOME/netperf
+ - name: cleaning previous results
+ shell: rm -rf $HOME/qtip_result
+ - name: making netperf temporary directory
+ shell: mkdir $HOME/netperf
+ - name: making results temporary directory
+ shell: mkdir $HOME/qtip_result
+
+ - name: Fetching netperf
+ shell: wget ftp://ftp.netperf.org/netperf/netperf-2.7.0.tar.gz
+ when: ansible_os_family == "RedHat"
+ - name: Extracting Netperf
+ shell: tar -xvf netperf-2.7.0.tar.gz
+ - name: configuring netperf
+ shell: cd $HOME/netperf-2.7.0 && ./configure
+ - name: Making Netperf
+ shell: cd $HOME/netperf-2.7.0 && make
+ - name: Installing Netperf
+ shell: cd $HOME/netperf-2.7.0 && make install
+
+ - name: Running netperf on server
+ shell: /usr/local/bin/netserver -p 4000
+ when: rolename == "1-server"
+
+ - name: Running netperf on Host
+ shell: /usr/local/bin/netperf -H {{privateip1}} -p 4000 -l {{duration}} -t {{teststream}} -fG >> ./qtip_result/server{{hostID.stdout}}-{{item}}.json
+ ignore_errors: yes
+ with_items:
+ - "{{ip1}}"
+ when: rolename == "2-host" and "{{ip2}}" == ''
+
+ - name: Files to Copy
+ shell: (cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.json") | cut -d'/' -f2
+ register: files_to_copy
+ - name: copy results
+ fetch: src={{home_dir.stdout}}/qtip_result/{{item}} dest=../../{{Dest_dir}}/netperf/netperf_temp
+ with_items: files_to_copy.stdout_lines
+ - hosts: 127.0.0.1
+ connection: local
+ tasks:
+ - name: Rolename
+ set_fact:
+ rolename: "{{role}}"
+ when: role is defined
+ - name: extracting_json
+ shell: ( find ../../{{Dest_dir}}/netperf/netperf_temp/ -name "*.json" | xargs cp -t ../../{{Dest_dir}}/netperf/)
+ when: rolename == "2-host" \ No newline at end of file
diff --git a/benchmarks/playbooks/pktgen.yaml b/benchmarks/playbooks/pktgen.yaml
new file mode 100644
index 00000000..04a0066e
--- /dev/null
+++ b/benchmarks/playbooks/pktgen.yaml
@@ -0,0 +1,38 @@
+ - hosts: 127.0.0.1
+ connection: local
+ tasks:
+
+ - name: getting directory
+ shell: echo $PWD
+ register: qtip_dir
+ - name: making pktgen directory
+ file: path=../../{{Dest_dir}}/pktgen state=directory
+ - name: making temporary pktgen directory
+ file: path=../../{{Dest_dir}}/pktgen/pktgen_temp state=directory
+
+
+ - hosts: "{{role}}"
+ tasks:
+ - name: Rolename
+ set_fact:
+ rolename: "{{role}}"
+ when: role is defined
+
+ - name: IPTABLE Setup
+ shell: iptables -F
+ when: rolename == '1-server'
+ - name: iptables
+ shell: sudo iptables -A INPUT -p udp --dport 1000 -j DROP
+ when: rolename == '1-server'
+ - name: run pktgen
+ shell: bash pktgen.sh {{privateip1}} 1 {{packetsize}} {{duration}} >> .json
+ when: rolename == '2-host'
+ - hosts: "{{role}}"
+ tasks:
+ - name: Rolename
+ set_fact:
+ rolename: "{{role}}"
+ when: role is defined
+ - name: Get server packetsize
+ shell: iptables -L -vnx >> pktgenServer{{privateip1}}.txt
+ when: rolename == '1-server' \ No newline at end of file
diff --git a/benchmarks/playbooks/ramspeedbench.yaml b/benchmarks/playbooks/ramspeedbench.yaml
new file mode 100644
index 00000000..d8136b08
--- /dev/null
+++ b/benchmarks/playbooks/ramspeedbench.yaml
@@ -0,0 +1,38 @@
+
+ - hosts: "{{ role }}"
+
+ tasks:
+ - name: clean
+ shell: rm -rf /usr/bin/phoronix-test-suite
+ shell: rm -rf /usr/share/doc/phoronix-test-suite/
+ shell: rm -rf /usr/share/phoronix-test-suite
+ shell: rm -rf /root/photmp/
+ - name: clean previous results
+ file: path=/root/results path=absent
+ - name: make direc
+ file: path=/root/photmp/ state=directory
+ - name: Fetch Phornonix
+ shell: cd /root/photmp/ && wget https://www.dropbox.com/s/5kks513ozxy7vvs/phoronix-suite.tar.gz
+ - name: unarchive Phoronix
+ shell: cd /root/photmp/ && tar -zxvf phoronix-suite.tar.gz
+ - name: Phornonix Dependencies
+ shell: yum install php php-xml php-client php-process -y
+ - name: Install Phornonix
+ shell: cd /root/photmp/phoronix-test-suite-master/&&./install-sh
+ - name: batchSetup
+ shell: phoronix-test-suite batch-setup
+ - name: install
+ shell: phoronix-test-suite batch-install ramspeed
+ - name: run
+ shell: phoronix-test-suite batch-run ramspeed
+ - name: making directory
+ file: path=/root/results state=directory
+ - name: copying result to temp directory
+ shell: cp -r /var/lib/phoronix-test-suite/test-results/* /root/results/
+ - name: registering files
+ shell: (cd /root/results/; find . -maxdepth 1 -type f) | cut -d'/' -f2
+ register: files_to_copy
+ - name: copy results
+ fetch: src=/root/results/{{item}} dest={{Dest_dir}}/dhrystone
+ with_items: files_to_copy.stdout_lines
+
diff --git a/benchmarks/playbooks/result_transform/dpi/dpi_transform.py b/benchmarks/playbooks/result_transform/dpi/dpi_transform.py
index 89e4f187..2aa45757 100644
--- a/benchmarks/playbooks/result_transform/dpi/dpi_transform.py
+++ b/benchmarks/playbooks/result_transform/dpi/dpi_transform.py
@@ -47,4 +47,8 @@ result['DPI_benchmark(M pps)'] = round(dpi_result_pps, 3)
result['DPI_benchmark(Gb/s)'] = round(dpi_result_bps, 3)
with open('./result_temp', 'w+') as result_file:
pickle.dump(result, result_file)
+<<<<<<< HEAD
+=======
+print json.dumps(result, indent=4, sort_keys=True)
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
diff --git a/benchmarks/playbooks/result_transform/dpi/final_report.py b/benchmarks/playbooks/result_transform/dpi/final_report.py
new file mode 100644
index 00000000..be25daa8
--- /dev/null
+++ b/benchmarks/playbooks/result_transform/dpi/final_report.py
@@ -0,0 +1,20 @@
+import pickle
+import json
+import datetime
+import sys
+
+with open('/root/qtip_result/sys_info_temp', 'r') as sys_info_f:
+ sys_info_dict = pickle.load(sys_info_f)
+with open('/root/qtip_result/result_temp', 'r') as result_f:
+ result_dict = pickle.load(result_f)
+
+host_name = sys_info_dict['1_Hostname']
+benchmark_name = str(sys.argv[1])
+report_time_stamp = str(datetime.datetime.utcnow().isoformat())
+final_dict = {}
+final_dict['1 Time of Report'] = report_time_stamp
+final_dict['2 System Information'] = sys_info_dict
+final_dict['3 ' + benchmark_name + ' result'] = result_dict
+
+with open('/root/qtip_result/' + host_name + '-' + report_time_stamp + '.json', 'w+') as result_json:
+ json.dump(final_dict, result_json, indent=4, sort_keys=True)
diff --git a/benchmarks/playbooks/result_transform/ssl/ssl_transform.py b/benchmarks/playbooks/result_transform/ssl/ssl_transform.py
index 188eb3d5..575b94a0 100644
--- a/benchmarks/playbooks/result_transform/ssl/ssl_transform.py
+++ b/benchmarks/playbooks/result_transform/ssl/ssl_transform.py
@@ -35,7 +35,11 @@ aes_1024B = os.popen(
aes_8192B = os.popen(
"cat AES-128-CBC_dump | grep 'aes-128-cbc ' | awk '{print $6}' ").read().rstrip()
+<<<<<<< HEAD
+=======
+# def get_nova_client(self):
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
hostname = os.popen("hostname").read().rstrip()
time_stamp = str(datetime.datetime.utcnow().isoformat())
@@ -43,6 +47,13 @@ time_stamp = str(datetime.datetime.utcnow().isoformat())
os.system("mv RSA_dump " + hostname + "-" + time_stamp + ".log")
os.system("cat AES-128-CBC_dump >> " + hostname + "-" + time_stamp + ".log")
+<<<<<<< HEAD
+=======
+# if self._glance_client is None:
+## keystone = self.get_keystone_client()
+# nova = client.Client('2', token = keystone.auth_token)
+
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
result = {}
@@ -64,4 +75,9 @@ result['3. AES-128-cbc throughput']['5. 16 Bytes block (B/sec)'] = [aes_8192B]
with open('./result_temp', 'w+') as result_file:
pickle.dump(result, result_file)
+<<<<<<< HEAD
+=======
+# print json.dumps(result, indent=4, sort_keys=True)
+# print result.items()
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
diff --git a/benchmarks/playbooks/ssl.yaml b/benchmarks/playbooks/ssl.yaml
index 89020bd7..8b5b427b 100644
--- a/benchmarks/playbooks/ssl.yaml
+++ b/benchmarks/playbooks/ssl.yaml
@@ -2,9 +2,15 @@
connection: local
tasks:
- name: making ssl directory
+<<<<<<< HEAD
file: path={{Dest_dir}}/ssl state=directory
- name: making temporary ssl directory
file: path={{Dest_dir}}/ssl/ssl_temp state=directory
+=======
+ file: path=../../{{Dest_dir}}/ssl state=directory
+ - name: making temporary ssl directory
+ file: path=../../{{Dest_dir}}/ssl/ssl_temp state=directory
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
- hosts: "{{role}}"
@@ -22,8 +28,11 @@
- name: making results temporary directory
shell: mkdir $HOME/qtip_result
- include: ./sys_info_pbook.yaml
+<<<<<<< HEAD
vars:
network: false
+=======
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
- name: Installing OpenSSL dependencies when CentOS
shell: yum install git wget gcc patch perl-Time-HiRes autofconf automake libpcap-devel libtool -y
when: ansible_os_family == "RedHat"
@@ -74,6 +83,7 @@
connection: local
tasks:
- name: extracting_json
+<<<<<<< HEAD
shell: ( find {{Dest_dir}}/ssl/ssl_temp/ -name "*.json" | xargs cp -t {{Dest_dir}}/ssl/)
- name: making_logs_folder
shell: mkdir -p {{Dest_dir}}/ssl/logs
@@ -81,4 +91,13 @@
shell: ( find {{Dest_dir}}/ssl/ssl_temp/ -name "*.log" | xargs cp -t {{Dest_dir}}/ssl/logs)
- name: removing ssl_temp
shell: rm -rf {{Dest_dir}}/ssl/ssl_temp
+=======
+ shell: ( find ../../{{Dest_dir}}/ssl/ssl_temp/ -name "*.json" | xargs cp -t ../../{{Dest_dir}}/ssl/)
+ - name: making_logs_folder
+ shell: mkdir -p {{../../Dest_dir}}/ssl/logs
+ - name: extracting_log
+ shell: ( find {{../../Dest_dir}}/ssl/ssl_temp/ -name "*.log" | xargs cp -t {{../../Dest_dir}}/ssl/logs)
+ - name: removing ssl_temp
+ shell: rm -rf {{../../Dest_dir}}/ssl/ssl_temp
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
diff --git a/benchmarks/playbooks/sys_info_pbook.yaml b/benchmarks/playbooks/sys_info_pbook.yaml
index cc926b7e..9eca0bc3 100644
--- a/benchmarks/playbooks/sys_info_pbook.yaml
+++ b/benchmarks/playbooks/sys_info_pbook.yaml
@@ -7,6 +7,7 @@
- name: system info collection tool install when Ubuntu
shell: apt-get install inxi -y
when: ansible_os_family == "Debian"
+<<<<<<< HEAD
- name: Install ansible copy dependencies if remote host has selinux enabled
shell: yum install libselinux-python -y
when: ansible_os_family == "RedHat"
@@ -21,5 +22,11 @@
- name: collecting system information for network test cases
shell: cd $HOME/qtip_result && python info_collect.py n
when: network
+=======
+ - name: system_info script copy
+ copy: src=./info_script/info_collect.py dest={{home_dir.stdout}}/qtip_result/
+ - name: collecting_sys_info
+ shell: cd $HOME/qtip_result && python info_collect.py
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
diff --git a/benchmarks/playbooks/whetstone.yaml b/benchmarks/playbooks/whetstone.yaml
index c22ea433..71063815 100644
--- a/benchmarks/playbooks/whetstone.yaml
+++ b/benchmarks/playbooks/whetstone.yaml
@@ -20,8 +20,11 @@
- name: make directory
shell: mkdir $HOME/qtip_result
- include: ./sys_info_pbook.yaml
+<<<<<<< HEAD
vars:
network: false
+=======
+>>>>>>> 5a7dcc0... Networking testcases for QTIP Framework
- name: Installing UnixBench dependencies if CentOS
shell: yum install git gcc patch perl-Time-HiRes -y
when: ansible_os_family == "RedHat"
diff --git a/func/__init__.pyc b/func/__init__.pyc
deleted file mode 100644
index d217b489..00000000
--- a/func/__init__.pyc
+++ /dev/null
Binary files differ
diff --git a/func/cli.py b/func/cli.py
index 235040b5..33aacbcb 100644
--- a/func/cli.py
+++ b/func/cli.py
@@ -38,23 +38,19 @@ class cli():
sys.exit(0)
if (args.suite and args.benchmark):
obj = Env_setup()
- if os.path.isfile(
- './test_cases/' +
- args.suite +
- '/' +
- args.benchmark):
-
- [benchmark, roles, vm_info] = obj.parse(
- './test_cases/' + args.suite + '/' + args.benchmark)
+ if os.path.isfile('./test_cases/' + args.suite +
+ '/' + args.benchmark):
+ [benchmark, roles, vm_info, benchmark_details, pip] = obj.parse('./test_cases/' + args.suite
+ + '/' + args.benchmark)
+
if len(vm_info) != 0:
vmObj = SpawnVM(vm_info)
-
obj.callpingtest()
obj.callsshtest()
obj.updateAnsible()
dvr = Driver()
- dvr.drive_bench(benchmark, obj.roles_dict.items())
+ dvr.drive_bench(benchmark, obj.roles_dict.items(), benchmark_details, obj.ip_pw_dict.items())
else:
print (args.benchmark, ' is not a Template in the Directory - \
Enter a Valid file name. or use qtip.py -h for list')
diff --git a/func/cli.pyc b/func/cli.pyc
deleted file mode 100644
index 3a09e907..00000000
--- a/func/cli.pyc
+++ /dev/null
Binary files differ
diff --git a/func/create_zones.py b/func/create_zones.py
index 92ce43fe..86cfc23b 100644
--- a/func/create_zones.py
+++ b/func/create_zones.py
@@ -13,6 +13,7 @@ from keystoneclient.auth.identity import v2
from keystoneclient import session
from novaclient import client
import os
+import re
from collections import defaultdict
@@ -82,6 +83,11 @@ class create_zones:
nova.aggregates.remove_host(id, host)
nova.aggregates.delete(id)
+ def get_compute_num(self, computeName):
+
+ num = re.findall(r'\d+',computeName)
+ return (int(num[0])-1)
+
def create_agg(self, D):
nova = self._get_nova_client()
hyper_list = nova.hypervisors.list()
@@ -100,18 +106,19 @@ class create_zones:
zone_machine[k].append(' ')
for x in range(len(zone_machine)):
- if not self.check_aggregate(nova, hostnA[x]):
- agg_idA = nova.aggregates.create(hostnA[x], D[x])
- nova.aggregates.add_host(aggregate=agg_idA, host=hostnA[x])
+ compute_index = self.get_compute_num(D[x])
+ if not self.check_aggregate(nova, hostnA[compute_index]):
+ agg_idA = nova.aggregates.create(hostnA[compute_index], D[x])
+ nova.aggregates.add_host(aggregate=agg_idA, host=hostnA[compute_index])
else:
- id1 = self.get_aggregate_id(nova, hostnA[x])
- self.del_agg(nova, id1, hostnA[x])
- agg_idA = nova.aggregates.create(hostnA[x], D[x])
- id1 = self.get_aggregate_id(nova, hostnA[x])
+ id1 = self.get_aggregate_id(nova, hostnA[compute_index])
+ self.del_agg(nova, id1, hostnA[compute_index])
+ agg_idA = nova.aggregates.create(hostnA[compute_index], D[x])
+ id1 = self.get_aggregate_id(nova, hostnA[compute_index])
if not self.check_host_added_to_aggregate(
- nova, id1, hostnA[x]):
+ nova, id1, hostnA[compute_index]):
- nova.aggregates.add_host(aggregate=id1, host=hostnA[x])
+ nova.aggregates.add_host(aggregate=id1, host=hostnA[compute_index])
diff --git a/func/create_zones.pyc b/func/create_zones.pyc
deleted file mode 100644
index 4faf6abd..00000000
--- a/func/create_zones.pyc
+++ /dev/null
Binary files differ
diff --git a/func/driver.py b/func/driver.py
index 45ec3fa2..83e64a80 100644
--- a/func/driver.py
+++ b/func/driver.py
@@ -10,20 +10,41 @@
import os
-
+import json
+from collections import defaultdict
class Driver:
def __init__(self):
+
print "Class driver initialized\n"
+ self.dic_json = defaultdict()
- def drive_bench(self, benchmark, roles):
- result_dir = '$PWD/results'
+ def drive_bench(self, benchmark, roles, benchmark_detail= None, pip_dict = None):
+ roles= sorted(roles)
+ pip_dict = sorted(pip_dict)
+ result_dir = 'results'
benchmark_name = benchmark + '.yaml'
- print roles
+ self.dic_json['Dest_dir'] = str(result_dir)
+ self.dic_json['ip1']=''
+ self.dic_json['ip2']=''
+
+ for k,v in benchmark_detail:
+ self.dic_json[k]=v
for k, v in roles:
- print k
- run_play = 'ansible-playbook -s $PWD/benchmarks/playbooks/{0} --extra-vars "Dest_dir={1} role={2}" -vvv'.format(
- benchmark_name, result_dir, k)
-
+ self.dic_json['role']=k
+ index=1
+ if benchmark_detail != None:
+ for values in v:
+ if k == '1-server':
+ print values, 'saving IP'
+ self.dic_json['ip'+str(index)]= str(values)
+ self.dic_json['privateip'+str(index)] = pip_dict[0][1]
+ index= index+1
+ dic_json = json.dumps(dict(self.dic_json.items()))
+ print dic_json
+ run_play = 'ansible-playbook -s ./benchmarks/playbooks/{0} --extra-vars \'{1}\' -vvv'.format(benchmark_name, dic_json)
+# run_play = 'ansible-playbook -s $PWD/benchmarks/playbooks/{0} --extra-vars "Dest_dir={1} role={2}" -vvv'.format(
+# benchmark_name, result_dir, k)
status = os.system(run_play)
+
diff --git a/func/driver.pyc b/func/driver.pyc
deleted file mode 100644
index 0ad3c584..00000000
--- a/func/driver.pyc
+++ /dev/null
Binary files differ
diff --git a/func/env_setup.py b/func/env_setup.py
index 919df176..1db54564 100644
--- a/func/env_setup.py
+++ b/func/env_setup.py
@@ -7,10 +7,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-
-
-
-
import os
import sys
from collections import defaultdict
@@ -23,12 +19,13 @@ class Env_setup():
ip_pw_list = [] # IP and password, this will be used to ssh
roles_dict = defaultdict(list)
ip_pw_dict = defaultdict(list)
+ ip_pip_list = []
vm_parameters = defaultdict(list)
+ benchmark_details= defaultdict()
benchmark = ''
def __init__(self):
print '\nParsing class initiated\n'
-# obj1 = SpawnVM()
def writeTofile(self, role):
fname2 = open('/etc/ansible/hosts', 'w')
@@ -113,12 +110,17 @@ class Env_setup():
def GetVirtualMachineinfo(self, Virtualtag):
num = len(Virtualtag)
-
for x in range(num):
hostlabel = 'virtualmachine_' + str(x + 1)
for k, v in Virtualtag[hostlabel].iteritems():
self.vm_parameters[k].append(v)
+ def GetBenchmarkDetails(self, detail_dic):
+
+ print detail_dic
+ for k,v in detail_dic.items():
+ self.benchmark_details[k]= v
+
def parse(self, configfilepath):
try:
fname = open(configfilepath, 'r+')
@@ -131,12 +133,9 @@ class Env_setup():
self.GetVirtualMachineinfo(doc['Context']['Virtual_Machines'])
if doc['Context']['Host_Machines']:
self.GetHostMachineinfo(doc['Context']['Host_Machines'])
-
- # num = len(doc['Context']['Vir_Machines'])
- # for x in range(num):
- # lab = 'host_machine'+ str(x+1)
- # self.roles_ip_list.insert(x,(doc[lab]['role'],doc[lab]['ip']))
- # self.ip_pw_list.insert(x,(doc[lab]['ip'],doc[lab]['pw']))
+ if doc.get('Scenario',{}).get('benchmark_details',{}):
+ self.GetBenchmarkDetails(doc.get('Scenario',{}).get('benchmark_details',{}))
+
for k, v in self.roles_ip_list:
self.roles_dict[k].append(v)
for k, v in self.ip_pw_list:
@@ -144,7 +143,9 @@ class Env_setup():
return (
self.benchmark,
self.roles_dict.items(),
- self.vm_parameters)
+ self.vm_parameters,
+ self.benchmark_details.items(),
+ self.ip_pw_dict.items())
except KeyboardInterrupt:
fname.close()
print 'ConfigFile Closed: exiting!'
diff --git a/func/env_setup.pyc b/func/env_setup.pyc
deleted file mode 100644
index 0f9c1433..00000000
--- a/func/env_setup.pyc
+++ /dev/null
Binary files differ
diff --git a/func/fetchimg.pyc b/func/fetchimg.pyc
deleted file mode 100644
index 0c0b228d..00000000
--- a/func/fetchimg.pyc
+++ /dev/null
Binary files differ
diff --git a/func/spawn_vm.py b/func/spawn_vm.py
index a9dada2e..c1bacedc 100644
--- a/func/spawn_vm.py
+++ b/func/spawn_vm.py
@@ -21,8 +21,6 @@ import glanceclient
from novaclient import client
import time
import json
-
-
from func.create_zones import create_zones
@@ -81,17 +79,14 @@ class SpawnVM(Env_setup):
'type': 'string'
}
-
- Heat_Dic['resources'][
- 'public_port_' +
- str(x)] = {
- 'type': 'OS::Neutron::Port',
- 'properties': {
- 'network': {'get_resource': 'private_network'},
- 'security_groups': [{ 'get_resource': 'demo1_security_Group'}],
- 'fixed_ips': [
- {
- 'subnet_id': {'get_resource': 'private_subnet'}}]}}
+
+ Heat_Dic['resources']['public_port_' +str(x)] = {
+ 'type': 'OS::Neutron::Port',
+ 'properties': {
+ 'network': {'get_resource': 'private_network'},
+ 'security_groups': [{ 'get_resource': 'demo1_security_Group'}],
+ 'fixed_ips': [
+ {'subnet_id': {'get_resource': 'private_subnet'}}]}}
Heat_Dic['resources']['floating_ip_' + str(x)] = {
'type': 'OS::Neutron::FloatingIP',
@@ -108,11 +103,11 @@ class SpawnVM(Env_setup):
'type': 'OS::Nova::Server',
'properties': {
'image': img,
- 'networks':
- [{'port': {'get_resource': 'public_port_' + str(x)}}],
+ 'networks':[
+ {'port': {'get_resource': 'public_port_' + str(x)}}],
'flavor': flavor,
'availability_zone': avail_zone,
- 'name': 'QTIP_Instance_' + str(x),
+ 'name': 'instance' + str(x),
'key_name': {'get_resource': 'KeyPairSavePrivate'},
'user_data_format': 'RAW',
'user_data': scriptcmd}}
@@ -124,9 +119,15 @@ class SpawnVM(Env_setup):
'rules': [{
'protocol': 'tcp',
'port_range_min': 22,
- 'port_range_max': 22},
+ 'port_range_max': 5201},
+ {'protocol': 'udp',
+ 'port_range_min': 22,
+ 'port_range_max': 5201},
{'protocol': 'icmp'}]}}
-
+
+ Heat_Dic['outputs']['instance_PIP_' +str(x)] = {
+ 'description': 'IP address of the instance',
+ 'value': {'get_attr': ['my_instance_' + str(x), 'first_address']}}
Heat_Dic['outputs']['instance_ip_' +str(x)] = {
'description': 'IP address of the instance',
'value': {'get_attr': ['floating_ip_' + str(x), 'floating_ip_address']}}
@@ -205,10 +206,7 @@ class SpawnVM(Env_setup):
qtip_image = glance.images.upload(
qtip_image.id, open('./Temp_Img/QTIP_CentOS.qcow2'))
json_temp = json.dumps(Heat_template)
-# cluster_body = {
-# "stack_name": stackname,
-# "template": Heat_template
-# }
+
for checks in range(3):
for prev_stacks in heat.stacks.list():
@@ -219,12 +217,12 @@ class SpawnVM(Env_setup):
print '\nStack Creating Started\n'
- try:
- heat.stacks.create(stack_name=stackname, template=Heat_template)
-
- except:
- print 'Create Failed :( '
+ # try:
+ heat.stacks.create(stack_name=stackname, template=Heat_template)
+ #except:
+ #print 'Create Failed :( '
+
cluster_detail = heat.stacks.get(stackname)
while(cluster_detail.status != 'COMPLETE'):
if cluster_detail.status == 'IN_PROGRESS':
@@ -242,18 +240,17 @@ class SpawnVM(Env_setup):
if I['output_key'] == availabilityKey:
zone.insert(s,str(I['output_value']))
- s=s+1
-
+ s=s+1
for i in cluster_detail.outputs:
instanceKey = "instance_ip_" + str(vm + 1)
-
+ privateIPkey = 'instance_PIP_' + str(vm +1)
if i['output_key'] == instanceKey:
-
- Env_setup.roles_dict[vm_role_ip_dict['role'][
- vm]].append(str(i['output_value']))
-
- Env_setup.ip_pw_list.append(
- (str(i['output_value']),''))
+ Env_setup.roles_dict[vm_role_ip_dict['role'][vm]].append(
+ str(i['output_value']))
+ Env_setup.ip_pw_list.append((str(i['output_value']),''))
+
+ if i['output_key'] == privateIPkey:
+ Env_setup.ip_pw_dict[vm_role_ip_dict['role'][vm]]=str(i['output_value'])
if i['output_key'] == 'KeyPair_PublicKey':
sshkey = str(i['output_value'])
diff --git a/func/spawn_vm.pyc b/func/spawn_vm.pyc
deleted file mode 100644
index 8e6ce8f1..00000000
--- a/func/spawn_vm.pyc
+++ /dev/null
Binary files differ
diff --git a/func/validate_yaml.pyc b/func/validate_yaml.pyc
deleted file mode 100644
index 9a560316..00000000
--- a/func/validate_yaml.pyc
+++ /dev/null
Binary files differ
diff --git a/results/INFO b/results/INFO
deleted file mode 100644
index b97ca7e8..00000000
--- a/results/INFO
+++ /dev/null
@@ -1,2 +0,0 @@
-Results for QTIP will be stored in this directory
-QTIP result directory will be made configurable soon
diff --git a/results/foo.txt b/results/foo.txt
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/results/foo.txt
diff --git a/test_cases/compute/dpi_parallel.yaml b/test_cases/compute/dpi_parallel.yaml
index 5edb3968..01905f57 100644
--- a/test_cases/compute/dpi_parallel.yaml
+++ b/test_cases/compute/dpi_parallel.yaml
@@ -15,7 +15,7 @@ Context:
role: 1Run
flavor: m1.large
virtualmachine_2:
- availability_zone: compute2
+ availability_zone: compute4
OS_image: QTIP_CentOS
public_network: 'provider_network'
role: 1Run
diff --git a/test_cases/network/iperf.yaml b/test_cases/network/iperf.yaml
deleted file mode 100644
index 56c49e28..00000000
--- a/test_cases/network/iperf.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-scenario:
- benchmark: dpi
- ExecOrder1: vm_1
- ExecOrder2: vm_2
-
-Context:
- VirtualMachines:
- vm_1:
- availability_zone: compute1
- OS_image: centos7
- public_network: "provider_network"
- role: ExecOrder1
- vm_2:
- availability_zone: compute1
- OS_image: centos7
- public_network: "provider_network"
- role: ExecOrder2
diff --git a/test_cases/network/iperf_topology_1.yaml b/test_cases/network/iperf_topology_1.yaml
new file mode 100644
index 00000000..20a433a9
--- /dev/null
+++ b/test_cases/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: 10
+ protocol: udp
+ bandwidthGbps: 10
+
+Context:
+ Host_Machines:
+
+
+ Virtual_Machines:
+ virtualmachine_1:
+ availability_zone: compute2
+ 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: 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/network/iperf_topology_2.yaml b/test_cases/network/iperf_topology_2.yaml
new file mode 100644
index 00000000..4392f32b
--- /dev/null
+++ b/test_cases/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: 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: 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/network/iperf_topology_3.yaml b/test_cases/network/iperf_topology_3.yaml
new file mode 100644
index 00000000..9e7b73e7
--- /dev/null
+++ b/test_cases/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/network/netperf.yaml b/test_cases/network/netperf.yaml
new file mode 100644
index 00000000..60ee4a13
--- /dev/null
+++ b/test_cases/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: 'provider_network'
+ role: 1-server
+ flavor: m1.large
+
+ virtualmachine_2:
+ availability_zone: compute2
+ OS_image: QTIP_CentOS
+ public_network: 'provider_network'
+ 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/network/pktgen.yaml b/test_cases/network/pktgen.yaml
new file mode 100644
index 00000000..13fae68f
--- /dev/null
+++ b/test_cases/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:
+ '''
+