summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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:
+ '''
+