diff options
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | resources/metric/nDPI.yaml | 76 | ||||
-rw-r--r-- | tests/integration/group_vars/all | 1 | ||||
-rw-r--r-- | tests/integration/run.yaml | 6 |
4 files changed, 86 insertions, 2 deletions
@@ -75,7 +75,8 @@ ChangeLog !/tests/data/**/* # integration data +/tests/integration/*.retry +/tests/integration/dump /tests/integration/hosts +/tests/integration/reports /tests/integration/ssh.cfg -/tests/integration/*.retry -/tests/integration/reports/* diff --git a/resources/metric/nDPI.yaml b/resources/metric/nDPI.yaml new file mode 100644 index 00000000..c73d367f --- /dev/null +++ b/resources/metric/nDPI.yaml @@ -0,0 +1,76 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + + +- name: prepare sample pcap file + get_url: + url: "https://build.opnfv.org/artifacts.opnfv.org/qtip/utilities/test.pcap" + dest: "{{ qtip_dump }}/localhost/{{ nDPI_file }}" + validate_certs: no # required when using proxy for https + run_once: yes + delegate_to: localhost + +- name: installing nDPI dependencies if CentOS + yum: + name: '{{ item }}' + state: present + when: ansible_os_family == "RedHat" + with_items: + - git + - gcc + - patch + - perl-Time-HiRes + - autofconf + - automake + - libpcap-devel libtool + +- name: installing nDPI dependencies if Ubuntu + apt: + name: build-essential + state: present + when: ansible_os_family == "Debian" + +- name: making nDPI temporary directory + file: + path: "{{ nDPI_cwd }}" + state: directory + +- name: clone nDPI + git: + repo: https://github.com/ntop/nDPI.git + dest: "{{ nDPI_cwd }}" + depth: 1 + +- name: build nDPI library + command: '{{ item }}' + with_items: + - ./autogen.sh + - ./configure + - make + args: + chdir: "{{ nDPI_cwd }}" + +- name: copy sample packet file + copy: + src: "{{ qtip_dump }}/localhost/{{ nDPI_file }}" + dest: "{{ nDPI_cwd }}/example/{{ nDPI_file }}" + +- name: + command: "./ndpiReader -i {{ nDPI_file }}" + args: + chdir: "{{ nDPI_cwd }}/example/" + register: nDPI_out + +- name: collect DPI metrics from nDPI + collect: + string: "{{ nDPI_out.stdout }}" + patterns: + - '^\s+nDPI throughput:.+?(?P<pps>\d+.\d+)\s.+\spps.+?(?P<bps>\d+.\d+)\s.+\/sec' + dump: 'nDPI.log' + register: dpi_metrics diff --git a/tests/integration/group_vars/all b/tests/integration/group_vars/all index 16a93f46..a84ab51f 100644 --- a/tests/integration/group_vars/all +++ b/tests/integration/group_vars/all @@ -1,3 +1,4 @@ qtip_resources: ../../resources qtip_reports: ./reports qtip_fixtures: ./fixtures +qtip_dump: ./dump diff --git a/tests/integration/run.yaml b/tests/integration/run.yaml index 7545a65e..99bee5ea 100644 --- a/tests/integration/run.yaml +++ b/tests/integration/run.yaml @@ -21,6 +21,12 @@ - name: ssl metrics include: "{{ qtip_resources }}/metric/openssl.yaml" tags: [ssl] + - name: DPI metrics + include: "{{ qtip_resources }}/metric/nDPI.yaml" + vars: + nDPI_cwd: "{{ ansible_env.HOME }}/qtip/nDPI" + nDPI_file: "dpi.pcap" + tags: [nDPI] - hosts: compute tasks: |