From e51df601fe4a1bd22274e3da62659b1ed7b2c49b Mon Sep 17 00:00:00 2001 From: Mofassir Arif Date: Wed, 9 Dec 2015 04:50:55 -0800 Subject: [PATCH] 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 --- .gitignore | 59 ++++++++++++ benchmarks/playbooks/dhrystone.yaml | 3 + benchmarks/playbooks/dpi.yaml | 3 + benchmarks/playbooks/info_script/info_collect.py | 104 +++++++++++++++++++++ benchmarks/playbooks/iperf.yaml | 87 +++++++++++++++++ benchmarks/playbooks/netperf.yaml | 74 +++++++++++++++ benchmarks/playbooks/pktgen.yaml | 38 ++++++++ benchmarks/playbooks/ramspeedbench.yaml | 38 ++++++++ .../result_transform/dpi/dpi_transform.py | 4 + .../playbooks/result_transform/dpi/final_report.py | 20 ++++ .../result_transform/ssl/ssl_transform.py | 16 ++++ benchmarks/playbooks/ssl.yaml | 19 ++++ benchmarks/playbooks/sys_info_pbook.yaml | 7 ++ benchmarks/playbooks/whetstone.yaml | 3 + func/__init__.pyc | Bin 145 -> 0 bytes func/cli.py | 16 ++-- func/cli.pyc | Bin 2097 -> 0 bytes func/create_zones.py | 25 +++-- func/create_zones.pyc | Bin 3912 -> 0 bytes func/driver.py | 37 ++++++-- func/driver.pyc | Bin 1068 -> 0 bytes func/env_setup.py | 27 +++--- func/env_setup.pyc | Bin 5113 -> 0 bytes func/fetchimg.pyc | Bin 1073 -> 0 bytes func/spawn_vm.py | 69 +++++++------- func/spawn_vm.pyc | Bin 8366 -> 0 bytes func/validate_yaml.pyc | Bin 777 -> 0 bytes results/INFO | 2 - results/foo.txt | 0 test_cases/compute/dpi_parallel.yaml | 2 +- test_cases/network/iperf.yaml | 17 ---- test_cases/network/iperf_topology_1.yaml | 43 +++++++++ test_cases/network/iperf_topology_2.yaml | 43 +++++++++ test_cases/network/iperf_topology_3.yaml | 60 ++++++++++++ test_cases/network/netperf.yaml | 42 +++++++++ test_cases/network/pktgen.yaml | 44 +++++++++ 36 files changed, 806 insertions(+), 96 deletions(-) create mode 100644 .gitignore create mode 100644 benchmarks/playbooks/iperf.yaml create mode 100644 benchmarks/playbooks/netperf.yaml create mode 100644 benchmarks/playbooks/pktgen.yaml create mode 100644 benchmarks/playbooks/ramspeedbench.yaml create mode 100644 benchmarks/playbooks/result_transform/dpi/final_report.py delete mode 100644 func/__init__.pyc delete mode 100644 func/cli.pyc delete mode 100644 func/create_zones.pyc delete mode 100644 func/driver.pyc delete mode 100644 func/env_setup.pyc delete mode 100644 func/fetchimg.pyc delete mode 100644 func/spawn_vm.pyc delete mode 100644 func/validate_yaml.pyc delete mode 100644 results/INFO create mode 100644 results/foo.txt delete mode 100644 test_cases/network/iperf.yaml create mode 100644 test_cases/network/iperf_topology_1.yaml create mode 100644 test_cases/network/iperf_topology_2.yaml create mode 100644 test_cases/network/iperf_topology_3.yaml create mode 100644 test_cases/network/netperf.yaml create mode 100644 test_cases/network/pktgen.yaml 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 d217b48953ebbb0c001971c16098b58ac0d94726..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145 zcmZSn%*(Zj-#jdt0SXv_v;z7Sk8y60eKUq&3fN}tOa=+rtNx9dO9%eK-`454RH&82e<|JW!hyM zlR<~Peo{qO#raFeyyuzO`oTJWq=AoU z(&T}#CYw_a#uGU|XBjrrr163Vz9Yl|q>7o{C|D~_gmuTTiJCN`ABiZEsOu z&Uvu*AZ^ofr=LkD6~|<-OW{33pXMP3$cY;c zacP`(4O%BUtMD^g%*(u5Ivo_+U6uASKv&x6LI>#ai5c$5!I>`RNgmltbd<0cuU@`> z_xAL=UU1J7C-#~Y6`E?vnkYNIj`A$%JwU#SY?NjCV+XDh?f#8{5AtMy^naXDWgg0% zBp=8cF?*m=mfR@aP{l7O5oe_fbWtuZk|44d%Ul-@p9aH(#*i}_7!m^H)E|$WMitJ|KT5I^UaN5%O^C&ZMurL`F zPn7H9ptQjfb@1Mq>bN2;Nw6R&Gw23KWZ7}QA==~@b(lTcJm2{6ni1>z{CgaScdpS* z1Q2P4&~ekKE0|lzwj>4D)|OUU5>n-Hh3nsp8`B#cS8`c{Rpb)KP0b(^m!mZwz9^Y4 z#w;vM=2VB3DK0pSj&A`2h>7eu!pkbA=shpc%rZUZ2#Z+E?J^X0;(#qPjbUu&POQ-d z%yGaD2usx2LI?>9E0{RTe9BomX3KI=^iUrISmmK97Nwx8{M9TKzvGo1(2pP!enYEK zQs#P8R>fj9dP7M$(W_BjE+Rx@L(UR;GvfDXu`K2z>gAL+$x=uLj0?lZqy@ibtzO@I zqV~IO)mMjVR~^vYRb78i?RqWsm3OH2y`JJvSA9;%faz~kadCv9#3BsyGG1o19e+sz zANc-9(qlGvNJF|-%c~W0`HVSJ<9(W>;@Ht+efJ+%mj_2!aLJslGs(vUME{~urt%Mkzo 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 4faf6abde3bc69214db85dab80096c3cddd6b129..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3912 zcmb_fT~i!I6umwB0ZTwI2}v-Cu0-Sd70Q®t^UkeCPE#37NAs?^lhP6M;d&cbwq z#DXV$^>6qOeDYuE572XN?*fUIPs=jB-M4%C_C5F9+jlE}%}jmq+vh)YW%yUY_dPt0 zk`(_&a*@7~bt8u3Nb*Sf6|g!m1GviE!_)@wg{wtk4=5gQKiRG?ASOZDXe@X+=9Vo{$n8y{4TB zff639Ev2Wk{zfNSk8rQ_ZpY;$XT)3T<4)% z^ntH(7DGRWPO@!ZIFC^h%vVE`VzA#C3IZH_$JuTWueTClA)}U{f20O*Z{?hk8 z+gY*uOZ~w{2gsJmE(FePE%AG4W3T8godxjL&I?cLk|ZlKpCt3>JGwzk%`}V}&Ernt zQKMlWjqSnoDcPQs@_;_=0bE0ydNt_*%}9=cM&*p8s*>6nNnIrqXC#x9982{GTTMt0 zK4{1xCFUrS0(v8$N=mpzG^O=>W#O8g<_NrI0I!)9&UcEgRm(biek<84bI%tauO`dS zo<2&R#oy}Wp0j1q>D$rdv(*Q2d-=NuI=KS?e;SnOX!6PO>gw9#ctywF7M;Q;`Z8UN zou58vFSnm2`aV5H&28m>Ohn@v8$6=BKN;;#nhYEa262o1tQ-`ch;LdSYs7G3br>a_ zi0QBRJR0Q?18BT_xQMM2sDG7|Z$PeemdfnpRdXJn`Di{;j?f6&tQ`3gogqg=IdVsb zAcY8hTag}O5CnYfV340&w%V~ZkBcv$7T*~=gX*FV6<8v=yC`evNv_VQ zH&E?O^y0VJG}*k3Mz5|cZ7B&6QN2?C`woQ0F4W{EDCE?Gl&aKU{% z?svq0$mz%6keY^61`cspkxeBQJdY^BB@Rk49_w=OkVgj-2n|x7L9V;4QHfe%M6`t- z>aIu@Fl)dF5Do0(DD>{`KGgizYfzavc#D{?JijbQ6J+h-geOto1SI)Ng8Rr zj#130&{*Djv17~q%neExa$tos+^6gm2y_l}6zQ7qc6Mx$YW0FzYCr4R_+zdnldyr0 zN!Y-6E)TV5xOUQ1nIC`16?fR&M$;ng!Zpq-XGOEDUUzz|L~l86#b_v&wNmD9fu!H* zZe@klw5vvL>#0IUUe-fr=_lijAD(qsPD9T#jNC_P1o?u=cp6vOLUhGkiKcLs%|{F7 zlDTf0)l23wzAs_+LZtR8Ac@|>NutIkNq>;;O+haL)mDrST$0QU&JQ_HkB zhF=CTop=F{tfcR%Ej&=&u!P^C!&kVJ3Z6*O;rcn4Um7u`or;5bB3R3GgtWsxN|Gs 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 0ad3c5843c7cbbe8d4bf9a23bed44e505d19e2f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmb_a&2G~`5T3P@v<-z8frLODtir(;*9ECk4+J3^3B)0SRHAACtv2ySapRxVv#}Zy zpTe{7f;<4stlPq!t~|5j*_rQ~nO*nS-S&r{N1sPN@|HOCbc*Mci za?D9vq$uj$d&;R}dia=p$B9DpB1`4PS!`mJ#NTz)_URCO#xM<1sFQK+Vm}^{3MYB0 z!+e&F%kYzlXI))}X+9>rxR4j*K%9iUhvRuR3Tux2*}`m6vXo3F<$Xrul0l4I(p)Fc z!4`c+1{Gbou%c!icvLlDNUSK`_#AHKRhz_3;+NC 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 0f9c1433a9ea0040137f613a73be02e08b1a7c98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5113 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 diff --git a/func/validate_yaml.pyc b/func/validate_yaml.pyc deleted file mode 100644 index 9a560316d82056b098b57413b03206d3a8217954..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 zcmbtSO>fgc5S>lxv{)?yPE>I4p$DI8spkrn6p~a5K_pV8~HOY-rcee7c;lx`n=~+|gq_p1SWE`F$d1YLFU8=jArnI|t zlljBix^z)l7YgIOf5og_b+tAsuma zs)d`cvM<3dKA2T@i+46(x;$HLuV9TUI9{yliKMj71}Ryyf5A+xNJJtQd*XR*DYx2` zI#n7eLyU-&Wu=z|+;Io)KOyz*5o*R@p + '''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: + ''' + -- 2.16.6