Skip to content

Commit

Permalink
[mlnx][fanout] simplify mlnx pfc storm on fanout functionality (#1182)
Browse files Browse the repository at this point in the history
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
  • Loading branch information
stepanblyschak authored and liat-grozovik committed Oct 29, 2019
1 parent 1d726e3 commit 2f2f25b
Show file tree
Hide file tree
Showing 10 changed files with 24 additions and 32 deletions.
4 changes: 4 additions & 0 deletions ansible/plugins/connection/switch.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,10 @@ def exec_command(self, *args, **kwargs):
elif self.sku == 'eos':
prompts = ['\$ ']

if self.sku in ('mlnx_os',):
# extend with default \u@\h:\w# for docker container prompts
prompts.extend(['%s@.*:.*#' % 'root'])

prompts.append(pexpect.EOF)

stdout = ""
Expand Down
4 changes: 2 additions & 2 deletions ansible/roles/fanout/tasks/mlnx/check_pfcwd_fanout.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
login: "{{ switch_login['MLNX-OS'] }}"

- set_fact:
dockers_running: "{{output.stdout|search(\"args *storm_args\")|bool}}"
dockers_installed: "{{output.stdout|search(\"pfc_storm\") and output.stdout|search(\"storm_args\")|bool}}"
dockers_installed: "{{output.stdout|search(\"pfc_storm\")}}"
dockers_running: "{{output.stdout|search(\"storm\")|bool}}"

- fail: msg="PFCWD dockers not installed"
when: not dockers_installed
Expand Down
2 changes: 1 addition & 1 deletion ansible/roles/fanout/tasks/mlnx/deploy_pfcwd_fanout.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
fanout_addr: "{{device_info['mgmtip']}}"
ansible_ssh_user: "{{fanout_root_user}}"
ansible_ssh_pass: "{{fanout_root_pass}}"
pfcwd_dockers: "['roles/test/files/mlnx/docker-tests-pfcgen/pfc_storm.tgz', 'roles/test/files/mlnx/docker-tests-saveargs/storm_args.tgz']"
pfcwd_dockers: "['roles/test/files/mlnx/docker-tests-pfcgen/pfc_storm.tgz']"
fanout_img_path: "/var/opt/tms/images/"

- name: Build containers to save storm arguments and to run storm
Expand Down
5 changes: 2 additions & 3 deletions ansible/roles/fanout/templates/mlnx_deploy_pfcwd_fanout.j2
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,5 @@ docker no shutdown
ping -c 5 8.8.8.8
docker label storm
docker load pfc_storm.tgz
docker load storm_args.tgz
docker start storm_args latest args init label storm privileged network sdk
docker start storm_args latest args now label storm privileged network sdk
docker start pfc_storm latest args init label storm privileged network sdk
docker start pfc_storm latest args now label storm privileged network sdk
2 changes: 1 addition & 1 deletion ansible/roles/test/files/mlnx/docker-tests-pfcgen/start.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/bash

/root/pfc_gen.py `cat /storm/args`
sleep inf

This file was deleted.

7 changes: 0 additions & 7 deletions ansible/roles/test/files/mlnx/docker-tests-saveargs/Makefile

This file was deleted.

This file was deleted.

15 changes: 7 additions & 8 deletions ansible/roles/test/templates/pfc_storm_mlnx.j2
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
{% set container_name = "storm" ~ "_" ~ (1).__lshift__(pfc_queue_index) ~ "_" ~ pfc_frames_number ~ "_" ~ pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_") ~ "_" ~ ansible_eth0_ipv4_addr | replace(".", "_") %}
{% set container_name = "storm" %}

enable
configure terminal
docker no start {{ container_name }}

docker exec {{ container_name }} /bin/bash
cd /root/
{% if (pfc_asym is defined) and (pfc_asym == True) %}
docker exec args "/root/save_args.sh -p {{pfc_queue_index}} -t 65535 -n {{pfc_frames_number}} -i {{pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_")}}"
{% if pfc_storm_defer_time is defined %} sleep {{pfc_storm_defer_time}} &&{% endif %} python {{pfc_gen_file}} -p {{pfc_queue_index}} -t 65535 -n {{pfc_frames_number}} -i {{pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_")}} &
{% else %}
docker exec args "/root/save_args.sh -p {{(1).__lshift__(pfc_queue_index)}} -t 65535 -n {{pfc_frames_number}} -i {{pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_")}} -r {{ansible_eth0_ipv4_addr}}"
{% if pfc_storm_defer_time is defined %} sleep {{pfc_storm_defer_time}} &&{% endif %} python {{pfc_gen_file}} -p {{(1).__lshift__(pfc_queue_index)}} -t 65535 -n {{pfc_frames_number}} -i {{pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_")}} -r {{ansible_eth0_ipv4_addr}} &
{% endif %}

ping -c 3 127.0.0.1
docker start pfc_storm latest {{ container_name }} now label storm privileged sdk network
ping -c 7 127.0.0.1
exit

exit
exit
11 changes: 7 additions & 4 deletions ansible/roles/test/templates/pfc_storm_stop_mlnx.j2
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
{% set container_name = "storm" ~ "_" ~ (1).__lshift__(pfc_queue_index) ~ "_" ~ pfc_frames_number ~ "_" ~ pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_") ~ "_" ~ ansible_eth0_ipv4_addr | replace(".", "_") %}

{% set container_name = "storm" %}
enable
configure terminal

docker no start {{ container_name }}
ping -c 7 127.0.0.1
docker exec {{ container_name }} /bin/bash
cd /root/

{% if pfc_storm_stop_defer_time is defined %} sleep {{pfc_storm_stop_defer_time}} &&{% endif %} pkill -f "python {{pfc_gen_file}} -p {{(1).__lshift__(pfc_queue_index)}} -t 65535 -n {{pfc_frames_number}} -i {{pfc_fanout_interface | replace("ernet 1/", "") | replace("/", "_")}} -r {{ansible_eth0_ipv4_addr}}" {% if pfc_storm_stop_defer_time is defined %}&{% endif %}

exit

exit
exit

0 comments on commit 2f2f25b

Please sign in to comment.